什么是内核以及不同类型的内核?
内核是操作系统的重要组成部分。内核是在我们启动系统时,引导加载程序之后加载的第一个程序。内核驻留在内存中,直到操作系统关闭。
内核提供用户与系统硬件组件之间的接口。当一个进程向内核发出请求时,这被称为系统调用。
功能
内核的功能如下:
进程管理
访问计算机资源
设备管理
内存管理
中断处理
I/O 通信
文件系统...等等。
访问计算机资源 - 内核访问各种计算机资源,例如 CPU、I/O 设备和其他资源。内核位于用户和系统资源之间,以建立通信。
资源管理 - 内核以一种方式在各种进程之间共享资源,以便每个进程都能统一访问这些资源。
内存管理 - 通常内存管理由内核完成,因为每个进程都需要一些内存空间,并且必须为其执行分配和释放内存。
设备管理 - 内核管理系统中连接的由进程使用的外围设备的分配。
内核类型
内核的不同类型如下:
单内核
在单内核中,用户服务和内核服务都实现于同一个内存空间中。这样做会增加内核的大小,同时也会增加操作系统的大小。由于没有独立的用户空间和内核空间,因此进程在单内核中的执行速度会更快。
优点
单内核的优点如下:
它通过系统调用提供 CPU 调度、内存调度、文件管理。
由于没有独立的空间,因此进程的执行速度很快。
缺点
单内核的缺点如下:
- 如果服务失败,则系统也会发生故障。
- 如果尝试添加新服务,则需要修改整个操作系统。
微内核
微内核与单内核不同。它略有不同,因为在微内核中,用户服务和内核服务实现于不同的空间中。由于分别使用用户空间和内核空间,因此它减少了内核的大小,进而减少了操作系统的大小。
由于我们为用户和内核服务使用不同的空间,因此应用程序和服务之间的通信借助消息解析完成,因此降低了执行速度。
微内核的优点是可以随时轻松添加新服务。
微内核的缺点是这里我们分别使用用户空间和内核空间。因此,它们之间的通信可能会降低整体执行时间。
混合内核
它是单内核和微内核的组合。它利用了单内核的速度和微内核的模块化。
混合内核是微内核,在内核空间中包含一些非必要的代码,以便代码比在用户空间中运行更快。因此,某些服务(如网络堆栈或文件系统)在内核空间中运行以减少性能开销,但它仍然在用户空间中将内核代码作为服务器运行。
纳内核
顾名思义,内核的完整代码非常小,这意味着在硬件特权模式下执行的代码非常小。术语“纳内核”用于解释内核支持纳秒级时钟分辨率。
外核
外核是由麻省理工学院并行和分布式操作系统小组开发的一种操作系统内核。在这种类型的内核中,资源保护与管理分离,从而允许我们执行特定于应用程序的自定义。
在外核中,没有强制抽象,这是使其与单内核和微内核不同的特性。但其缺点是设计复杂。外核的设计非常复杂。