Linux 内核中一体化内核及微内核部分思想
1、linux 内核模式
Linux is a monolithic kernel; that is, the Linux kernel executes in a single address space
entirely in kernel mode. Linux, however, borrows much of the good from microkernels: Linux
boasts a modular design, the capability to preempt itself (called kernel preemption), support
for kernel threads, and the capability to dynamically load separate binaries (kernel modules)
into the kernel image. Conversely, Linux has none of the performance-sapping features that
curse microkernel design: Everything runs in kernel mode, with direct function invocation—
not message passing—the modus of communication. Nonetheless, Linux is modular,
threaded, and the kernel itself is schedulable. Pragmatism wins again.
个人翻译版:
linux 内核是一体化内核,就是说,在内核模式下,linux内核执行在一个单独的地址空间。然而,linux
也借鉴了微内核设计中一些好的思想,比如:拥有模块化设计,支持内核抢占,支持内核线程,支持动态
加载内核模块到内核映像。相反,linux没有采用微内核中那些破坏性能的特性,比如:所有进程运行于
内核模式且所有函数可以直接调用而不是通过消息传递的方式。仅管如此,linux内核是模块化的,多线程的
且内核自身是可调度的。实用主义又一些赢得了胜利。