内核是管理系统资源的操作系统的核心部分。它还充当计算机应用程序和硬件之间的桥梁。它是启动时最先加载的程序之一(在引导加载程序之后)。
CPU运行的内核模式和用户模式
CPU 只有在内核模式下才能执行某些指令。这些指令称为特权指令。它们允许执行由用户程序执行的特殊操作,可以与操作系统的功能或另一个用户程序的活动进行交互。例如,管理内存保护的指令。
- 操作系统在内核中执行时将 CPU 置于内核模式,以便内核可以执行某些特殊操作。
- 当用户程序正在执行时,操作系统将 CPU 置于用户模式,因此用户程序无法与操作系统程序交互。
- 用户级指令不需要特殊权限。示例是 ADD、PUSH 等。
模式的概念可以扩展到两个以上,需要一个以上的模式位,支持虚拟化的 CPU 使用这些额外位之一来指示虚拟机管理器 VMM 何时控制系统。 VMM 拥有比普通用户程序更多的权限,但没有完整内核那么多。
系统调用通常以软件中断的形式实现,这会导致硬件的中断处理程序将控制转移到适当的中断处理程序,它是操作系统的一部分,在此过程中将模式位切换到内核模式。中断处理程序准确地检查产生了哪个中断,如果合适的话检查附加参数(通常通过寄存器传递),然后调用适当的内核服务例程来处理系统调用请求的服务。
用户程序试图执行非法指令(特权或不存在的指令),或访问禁止的内存区域,也会产生软件中断,这些中断被中断处理程序捕获并将控制权转移给操作系统,操作系统会发出相应的错误消息,可能将数据转储到日志(核心)文件以供以后分析,然后终止违规程序。
什么是微内核?
微内核是内核的分类之一。作为内核,它管理所有系统资源。但是在微内核中,用户服务和内核服务是在不同的地址空间中实现的。用户服务保存在用户地址空间,内核服务保存在内核地址空间,这样也减少了内核的大小和操作系统的大小。
它提供最少的进程和内存管理服务。客户端程序/应用程序和运行在用户地址空间的服务之间的通信是通过消息传递建立的,降低了微内核的执行速度。操作系统不受影响,因为用户服务和内核服务是隔离的,因此如果任何用户服务失败,它不会影响内核服务。因此,它增加了微内核的优势之一。它很容易扩展,即如果要添加任何新服务,它们将被添加到用户地址空间,因此不需要在内核空间中进行修改。它还具有便携性、安全性和可靠性。
微内核架构——
由于内核是操作系统的核心部分,因此它仅用于处理最重要的服务。因此在这种架构中,只有最重要的服务在内核中,其余的操作系统服务在系统应用程序中。因此,用户能够在系统应用程序中与那些不那么重要的服务进行交互。而微内核全权负责操作系统最重要的服务,它们的命名如下:
- 进程间通信
- 内存管理
- CPU 调度
微内核的优势——
- 这个内核的架构是小型和孤立的,因此它可以发挥更好的函数。
- 系统的扩展更容易,只需在系统应用程序中添加,而不会干扰内核。
Eclipse IDE是微内核架构的一个很好的例子。
阅读下一篇 – 单片内核和与微内核的主要区别