导读:一般车载的操作系统都是微内核,因为其安全和可靠及可扩展,成为嵌入式车载的首选。那么本文带你了解一下什么是微内核。
操作系统用来管理系统资源的,而内核是操作系统的核心部分,它还充当计算机的应用程序和硬件之间的桥梁。它是启动时(after the Bootloader)加载的第一个程序。
1 CPU运行的内核模式和用户模式
某些指令只有在内核模式下才能执行,这些指令称为特权指令。They allow the implementation of special operations whose execution by the user program could interface with the functioning of the operating system or activity of another user program.例如,管理内存保护的指令。
- 操作系统在内核中执行时将 CPU 置于内核模式,因此该内核可以执行一些特殊操作。
- 当用户程序正在执行时,操作系统将 CPU 置于用户模式,因此用户程序无法与操作系统程序交互。
- 用户级指令不需要特殊权限。Example are ADD,PUSH,etc.
从用户模式到内核模式的转换
CPU运行的模式可以扩展到两个以上,它需要more than a single mode bit CPUs that support virtualization use one of these extra bits to indicate when the virtual machine manager, VMM, is in control of the system。VMM 比普通用户程序有更多的权限,但没有kernel那么多。
系统调用通常以软件中断的形式实现,这会导致中断处理程序将控制权转移到适当的中断处理程序【该处理程序是操作系统的一部分】,在进程中将模式位切换到内核模式。中断处理程序准确检查产生了哪个中断,检查附加参数(通常通过寄存器传递)是否合适,然后调用适当的内核服务例程来处理系统调用请求的服务。
用户程序尝试执行非法指令(特权或不存在的指令),或访问禁止的内存区域,也会产生软件中断,被中断处理程序捕获,控制权转移到操作系统,操作系统发出适当的错误消息,可能会将数据转储到日志(核心)文件以供以后分析,然后终止有问题的程序。
2 什么是微内核
微内核是内核的分类之一。作为一个内核,它管理所有系统资源。但是在微内核中,用户服务和内核服务是在不同的地址空间中实现的。用户服务保存在用户地址空间,内核服务保存在内核地址空间,这样也减少了内核的大小和操作系统的大小。
img
它提供最少的进程和内存管理服务。客户端程序/应用程序与运行在用户地址空间的服务之间的通信是通过消息传递建立的。操作系统不受影响,因为用户服务和内核服务是隔离的,因此如果任何用户服务失败,它不会影响内核服务。因此,它增加了微内核的优势之一。它很容易扩展,即如果要添加任何新服务,它们将被添加到用户地址空间,因此不需要在内核空间中进行修改。它还具有便携性、安全性和可靠性。
3 微内核架构
由于内核是操作系统的核心部分,所以它只用于处理最重要的服务。因此在这个架构中,只有最重要的服务在内核中,其余的操作系统服务在系统应用程序中。因此,用户能够与系统应用程序中的那些不那么重要的服务进行交互。微内核单独负责操作系统中最重要的服务,例如:
- 进程间通信
- 内存管理
- CPU调度
4 微内核的优势
- 该内核的体系结构很小且孤立,因此可以更好地运行。
- 系统的扩展更容易,它只是简单地添加到系统应用程序中而不干扰内核。