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