Microkernel
这几周发现常去的一些网站上关于 microkernel 的话题不约而同地热了几分,甚是奇怪,莫非部分原因是最近 Apple 老是跳来跳去?
说详细一点,好像也确实也是从OS X,进而 Mach 牵扯出来的话题,故事的大背景有旷日持久的论战和纠葛不清的业界实践,这本身就算一出戏,何况还有像 Linus vs. Tanenbaum 这样的蒙太奇桥段。
OSNews 上 Diego Calleja 有篇文章 Why Monolithic Kernels Aren’t the End of the World ,对应 Thom Holwerda 的 Why I Like Microkernels,两篇文章都不是技术性很强的讨论。鄙人同意前者,因为强调恪守 microkernel 的框框的结果是至今没有没有一个可以令人信服的实现,我自己的观点一直是,不能实现的理想等于没有理想--也是基于同一个道理,我觉得 Google 进入中国采取的“顺从”措施可以理解--有时候革命并不总是好过改良,要取得进步也不意味着不能妥协。搬到现在我说的话题里,就是:是不是好的设计跟是 microkernel 还是 monolithic kernel 没有血统关系。Microkernel 所“固有(?)”的优势比如安全,稳定,模块化和易维护,并不是 monolithic 就不可企及的特性,而糟糕的设计同样可以让 microkernel 变成一无是处的四不像。有的人花20年时间用口水证明 monolithic kernel 不会有好的设计,另有一些人则用 20 年的时间动手来改进 Solaris 和 Linux 内核的结构,你觉得哪种做法更有建设性?现在已经有 kernel module,有FUSE,有 user-space driver framework 等等一系列尝试,加上 udev, klibc 或者 libusb 等等试验,Linux 正把一部分功能移到用户空间,当然,我们恐怕永远看不到一个最终变成了 microkernel 的 Linux 内核,不过不断前进,在实践中检验,这总是好的。
相比之下,microkernel 在业界的实践并不总是像理论研究的时候说得那般简单而又有优势,而且有时候人们的“以为”和实际实现常常有差别。
Mach,Minix,L4 ,QNX --什么?Symbian OS ?鬼才知道--可能是 microkernel 在业界比较 solid 的事实存在。不过我们看看,Avie Tevanian 领导下的 Apple 也没有死板地把僵硬的概念引入 OS X,就像 ADC 在 Porting UNIX/Linux Applications to Mac OS X 里那样说的“The kernel is not a pure microkernel implementation, since the address space is shared with the BSD portion of the kernel and the I/O Kit.”;Hurd 可能是唯一一个构建在 L4(come on,nano-kernel?)上的接近产品的作品,可是连它自己都还没有得到大规模使用的机会;QNX ?我们怎么证明一个 closed source 的东西,Nucleus,说得和做的是一样的呢?
最后一个想法是,沿用并改良 legacy 本身也是一种极大的创新,这种行为并不因为没有使用 microkernel 就显得落后或者不好不酷不牛X,其需要的聪明才智和付出的努力并不亚于考察 microkernel 是否可用以及把 microkernel 移植到现有系统中。另外嘛,其更大的积极意义还在于对已付出的社会资源的节约。
我自己当然尊重并总是欣喜地关注各种探讨和实践,这些过程总能丰富知识,带来闪光的新想法进而带动现实世界的发展--只要不变成口水仗和毫无意义的指责这指责那就好。我们期待能和 Mach 这样的例子一样,涌现更多的好玩故事或者传奇:项目的 lead developer,Richard Rashid 1991年加入 Microsoft,在很多 Microsoft Research 的top-level 位置上待过,另外就是前面提到的 Avie Tevanian。
最后还有一个是 Apple Matters:How Long Will Apple Keep the MACH Microkernel? 这篇文章显得过于幼稚,漏洞多到像小马哥的风衣,权且一笑 ;-)
[tags]os, microkernel, os x, mach, qnx, mimix, l4[/tags]
4 Human Visitors Responded to “Microkernel”
如果您没注册 Gravatar 的服务,这里会随机选择一张 Flickr 或者 JPG Magazine 的照片作为您的头像哟~~ 已注册了 Gravatar?那自然,您的头像正常显示。A random picture from Flickr or JPG Magazine will be used as your avatar if you haven't registered Gravatar or use a fake email.
1 Gentlemen Mentioned “Microkernel”
Leave a Reply
如果您没注册 Gravatar 的服务,这里会随机选择一张 Flickr 或者 JPG Magazine 的照片作为您的头像哟~~ 已注册了 Gravatar?那自然,您的头像正常显示。A random picture from Flickr or JPG Magazine will be used as your avatar if you haven't registered Gravatar or use a fake email.









虽然自己的工作方向与操作系统没有关系,不过也多少了解一些微内核和巨核(嘿嘿,自造)的斗争。
写的非常有深度,也同意刀枪blue的观点,与其坐而言,不如起而行。
微内核在实际产品上的失败,不仅仅是因为一个legacy沿用的原因,设计者过于固执、学究气也是重要原因之一吧。
这本身就算一处戏
这本身就算一出戏
笔误?初中语文?
见笑,一出戏,已更正
不过似乎据说hurd这个怪物又要换芯了…GNU还真是…