操作系统内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。
内核(kernel)是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。
一个内核不是一套完整的操作系统,它负责管理系统的进程、中断、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。内核是操作系统最重要的一个部分,同时也是最底层的一个部分。它是沟通计算机硬件和软件之间的桥梁。一方面,内核直接和硬件底层打交道,任务调度、访问内存和其他硬件、读写文件等最底层操作都由内核完成,另外一方面它将一些重要功能开放为系统调用,供操作系统上层调用使用。
按照设计架构来分类的话,内核可以分成宏内核和微内核两大类
宏内核就是一个大的内核,内核的所有功能全部包括进去,这样做会导致一个问题,那就是一旦内核某个部分出现问题,内核整个就会崩溃。但是这样做也有好处,那就是因为所有东西都在一个内核,没有模块间通讯和用户态切换的问题,因此宏内核的性能很不错。Linux内核就是一个典型的宏内核。
与此对应的就是微内核,微内核的设计理念就是模块化,将不同的功能模块放到不同的进程中去运行。这样做的好处就是内核每个模块单独设计编码,某个模块出现问题,整个内核同样可以运行。不过微内核同样也有问题,因为不同的功能放到了不同的模块中,模块间的通讯反倒成了一个大问题。
所以又有了混合内核的概念,就是按照微内核的理念来设计,但是把一些常用的功能放到内核态以减少用户态和内核态切换的问题。Windows的NT内核就是混合内核。