(转)内核的概念

来源:互联网 发布:手机淘宝兼职怎么做 编辑:程序博客网 时间:2024/04/30 05:02
 首先,我们要知道的是,内核是软件,而不是硬件,更不是我们通常所说的CPU。
       内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为单内核和双内核以及微内核。严格地说,内核并不是计算机系统中必要的组成部分。
       内核,是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、内核体系结构、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
       linux内核就像人的心脏,灵魂,指挥中心。内核以独占的方式执行最底层任务,保证系统正常运行。协调多个并发进程,管理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等。

      操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。


内核版本指的是,相应软件内核在历次修改或增加相应的功能后的版本编号。

       在linux系统中,内核为用户程序提供了两个方面的支持。其一是系统调用接口,即中断调用int 0X80;另一方面是通过开发环境库函数或内核进行信息交流。不过内核库函数仅供内核创建的任务0和任务1使用,它们最终还是去调用系统调用。因此内核对所有用户程序或进程实际只提供系统调用这一种统一的接口。lib/目录下内核库函数代码的实现方法与基本C函数libc中类似函数的实现方法基本相同,为了使用内核资源,最终都是通过内核内嵌汇编代码调用了内核系统调用功能。
       系统调用主要提供给系统软件编程或者用于库函数的实现。而一般用户开发的程序则是通过调用libc等库函数来访问资源。这些库中的函数或资源通常被称为应用程序编程接口(API)。其中定义了应用程序使用的一组标准编程接口。通过调用这些库中的程序,应用程序代码能够完成各种常用工作,例如,打开和关闭对文件或设备的访问,进行科学计算、出错处理以及访问组和用户标识号ID等系统信息。
       在Unix类操作系统中,使用最为普遍的是基于POSIX标准的API接口。linux当然也例外。API与系统调用的区别在于,为了实现某一应用程序接口标准,例如POSIX,其中的API可以与每一个系统调用对应,也可能由几个系统调用的功能共同实现。当然某些POSIX标准的主体界面,应用程序不用管它与系统调用之间到底存在什么关系。无论操作系统提供的系统调用有多大的区别,只要它遵循同一个API标准,那么应用程序就在这些操作系统之间具有可移植性。

       系统调用是内核与外界接口的最高层。在内核中,每个系统调用都有一个序列号,并且常以宏的形式实现。应用程序不应该直接使用系统调用,因为这样的话,程序的移植性就不好了。因此目前linux标准库和许多其他标准都不允许直接访问系统系统调用宏。

0 0