|
Hurd+ ( Mach or L4 )== Linux
看下面的解释
首先hurd的名字
`Hurd' stands for `Hird of Unix-Replacing Daemons'
`Hird' stands for `Hurd of Interfaces Representing Depth'.
所以这是世界上第一个mutual recursive acronym-相互递归略缩语
从这个名字里我们就能看出来一些hurd的实质
hurd就是一群daemon,或者叫server
每一个server实现单一内核的某个subsystem,比如文件系统,网络协议
每个server是一个独立的进程,运行于微内核之上
微内核,顾名思义,就是很小的内核。本身作不了什么事情,它存在意义在于为了让它上面的server可以运行并且相互通信。所以要使用微内核,一定要有类似hurd这样能够真正提供操作系统内核功能的东西。所以hurd也不是唯一的选择,L4Linux就是用Linux来顶替hurd应该扮演的角色。不过L4Linux显然不可能是未来的终极发展目标,只是实验目的。
微内核的例子有Mach和L4,其中L4被称为第二代微内核
Hurd项目一开始想自己写微内核,后来使用Mach,现在正在往L4上移植
不要以为移植很容易(这一点在linuxforum.net上曾有个很激烈的讨论),因为L4和Mach的实现有很大差异,不是改个API就可以的
有实验证实,即使是L4Linux运行效率仍然要低于Native Linux。
可以google这个文件--ukernel-performance.pdf
微内核架构的本质决定了微内核加servers不可能快过单一内核
因为单一内核里本来很简单的同一地址空间内部的function call在微内核+server的架构里要通过运行于不同地址空间的不同进程之间的IPC(inter process communication)来实现,效率当然会低。
不过微内核在未来或者特定环境下应该有它的价值,比如网络集群,多核CPU/多CPU等等 |
|