在大多数计算机操作系统中,内核是中心组件。它是用户、应用程序和计算机硬件之间的桥梁,它也是允许计算机同时处理多个用户和多个任务的机制,内核的分类可分为单内核和双内核以及微内核。
内核管理计算机的所有系统资源,这包括长期存储、中央处理器(CPU)、短期内存以及输入和输出设备。当应用程序需要这些资源之一时,内核将使资源可用并完成请求。
这种对资源的处理使得操作系统既可以是多用户的,也可以是多任务的。操作系统实际上不会一次执行多个任务。相反,内核切换任务的速度如此之快,以至于计算机似乎在执行多个任务,内核还负责确保一个用户或进程使用的资源不会违反另一个用户或进程的请求。
有两种主要的内核类型:单内核和微内核。单内核采用一种资源管理的监督方法,其中所有的操作系统服务都在同一个地址空间(称为内核空间)中运行。一些单内核可以加载和卸载可执行模块。这扩展了操作系统的功能,同时仍然保持在内核空间中每次运行的最少代码量。
微内核只运行少量的操作系统服务,比如内核空间中的内存管理、线程管理和进程间通信。所有其他服务,如设备驱动程序、用户界面和文件管理,都在用户空间中运,微内核有效地减少了在内核模式下运行的代码量。
混合内核是单内核和微内核的组合,大多数操作系统的系统服务都在内核空间中运行,就像一个独立的内核。还有其他服务,如文件系统和窗口系统,在用户空间中运行。
其他的内核类型是nanokernel和exokernel,nanokernel使用设备驱动程序来处理几乎所有的服务,exokernel使用程序来分配物理资源。