2019年5月18日 星期六

什么是内核?

       当计算机启动时,计算机要经历一系列的动作,这些动作构成引导过程。该过程的最后一个动作是启动一个非常复杂的程序,这个程序称为内核(kernel)。
       内核的作用是控制计算机,充当操作系统的核心。由于这一点,所以内核总是一直运行。实际上,除非关闭了计算机系统,否则内核会一直运行。通过这种方式,内核一直可用,并在需要时提供基本的服务。
       内核是操作系统的核心,它非常重要。需要花时间来理解。
尽管内核的本质可能操作系统的不同而有所区别,但是内核提供的基本服务,在各个操作系统之间基本相同,这些服务包括:
1.内存管理(虚拟内存管理,包括分页)
2.进程管理(进行创建、终止、调度)
3.进程间通信(本地、网络)
4.输入/输出(通过设备驱动程序,即实现与物理设备实际通信的程序)
5.文件管理
6.安全和访问控制
7.网络访问(如TCP/IP)
如果您对这些术语不太了解也没关系,最关键的事情就是知道内核是操作系统最重要的部分。稍候我们就会明白,Linux 和其他类型Unix之间的主要区别就是Linux使用了一个特殊内核,该内核与其他Unix内核都有所不同。
内核有许多类型,但是它们基本可以分为两大类,规模较大的一类称为单内核(monolithic kernel),规模较小的一类称为微内核(Microkernel)。
单内核由一个非常庞大的程序构成,该程序自身可以完成所有的事情。微内核是一个非常小的程序,只能执行最基本的任务。为了执行其他功能,微内核要调用其他程序,这些程序称为服务器(server)。
单内核的优点是它的速度比较快:所有的事情都在一个单独的程序中完成,这样将比较高效。但是单内核的缺点是规模较大而且使用不便,从而使这类内核难以设计和维护。
微内核比较慢,这是因为它必须调用服务器来完成它的大部分工作,这样效率就不高。但是因为采用了模块化设计,所以微内核易于程序员的理解,而且针对新系统修改微内核也比较快。微内核还有一个优点,即相比于单内核,它们更易于定制。
例如,假设您要为移动电话或者机器人创建一个操作系统。存储空间非常珍贵,因此一个小规模的内核要比大规模的内核好。另外对于特殊的设备来说,可能不需要单内核的全部功能。在这种情况下,一个微内核加上精挑细选的服务器就是最佳的选择。
在创建新的操作系统时,设计人员可以从中进行选择。他们可以使用一个大型的单内核,也可以使用一个小型的拥有最少服务器的微内核。大多数Unix系统使用某种类型的单内核。但是,正如我们即将看到的,一些Unix(如Macintosh Unix, 称为OS X)使用的是微内核。
       
名称含义:
内核
想象一个坚果。坚果的外壳是一个硬壳。坚果的里面是柔软、可食用的种子,从生物学上讲,称里面这部分为果仁(Kernel)。因此,如果希望更加准确,就可以这样说,当我们吃坚果时,我们敲破果壳,吃里面的果仁。
如果我们将Unix看作一个坚果,那么里面的就是果仁(Kernel),外面的就是壳。
刚才讨论的内核,就是所谓的操作系统核心。shell就是“围绕”在内核周围的一种特殊类型程序(命令处理器)的名称,它充当我们与系统交互的个人界面。

沒有留言:

張貼留言