JeeStudy 发表于 2020-4-10 23:52:21

操作系统概念 - 微内核

    随着UNIX操作系统的扩充,内核变得更大且更难以管理。在20世纪80年代中期,卡内基-梅隆大学的研究人员开发了一个称为 Mach 的操作系统,该系统采用微内核(microkemel)技术来模块化内核。采用这种方法的操作系统结构将所有非基本部分从内核中移走,并将它们作为系统程序或用户程序来实现。这样得到更小的内核。关于哪些服务应保留在内核内,而哪些服务应在用户空间内实现,并没有定论。不过,微内核通常包括最小的进程和内存管理以及通信功能。
    微内核的主要功能是提供客户程序和运行在用户空间的各种服务之间进行通信的能力。通信以消息传递的形式提供。例如,如果客户程序希望访问一个文件,那么它必须与文件服务器进行交互。 客户程序和服务决不会直接交互,而是通过微内核的消息传递来通信。
    微内核方法的好处之一是便于扩充操作系统。 所有新服务可以在用户空间增加,因而并不需要修改内核。当内核确实需要修改时,所做的改变也会很小,因为微内核本身很小。这样的操作系统很容易从一种硬件平台设计移植到另一种硬件平台设计。由于绝大多数服务是作为用户进程而不是作为内核进程来运行的,因此微内核也就提供了更好的安全性和可靠性。如果一个服务出错,那么操作系统其它部分并不受影响。
    许多现代操作系统使用了微内核方法。Tru64 UNIX(前身是Digital UNIX)向用户提供了UNIX 接口,但是它是用 Mach 内核来实现的。Mach 内核将UNIX系统调用映射成为适当用户层服务的消息。
    苹果Mac OS X操作系统采用一种混合结构。Mac OS X(也被称为 Darwin)采用分层技术构建操作系统, 其中一层包括 Mach 微内核。
    Mac OS X 上层包括应用环境和一组向应用程序提供图形界面的服务。下层是内核环境,主要包括 Mach 微内核和 BSD 内核。Mach提供内存管理,支持远程过程调用(RPC)和进程间通信(IPC)工具,包括消息传递和线程调度。而BSD提供了BSD命令行界面,支持网络和文件系统,以及 POSIX API 实现,包括Pthreads。 除 Mach 和 BSD 外,内核环境为设备驱动程序的开发和动态加载模块(Mac OS X 中指的是内核扩展(kernel extension))提供一个I/O 工具。应用和公共服务可以直接使用Mach或BSD方法。




页: [1]
查看完整版本: 操作系统概念 - 微内核