扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年2月8日
关键字:
1992年,你声称Linux是过时的系统;15年后,人们正在他们的64位x86芯片上运行Linux,你还这样认为吗?
我仍然认为它的基本结构,它对基本设计不佳,使用单体内核也不是个好主意。在工业和商业嵌入式系统中,人们正转而使用微核。它必须正常运转。
在正常运转不那么重要的桌面和一些服务器系统中,这些单体系统比较流行;但在必须保证正常运行的系统中,它已经不那么普及了。很早以前我就看到这一点。
Linus拥有一个优秀、干净的微核,他本能够以此为基础,建立一个更好的微核,这是我对他不满的地方。当你利用一件产品,对它做出改进,而不是使它更糟时,科学才会取得进步。
我想他本应该创造一个更好的微核,那样就很不错!但他只有20岁,经验还不够丰富;他只是一个孩子,他的开发方式也不一样。
去年我们听说GUN/HURD将再次改用微核。你认为我们会看到最终GUN/HURD发布吗?
问他们!市场上有许多优秀的微核,有L4,有MINIX,我不知道他们在做什么。
我认为那些人并不和我一样,希望制造一款优良的产品,他们背后有着纯粹的意识形态动机。
我曾经和[Richard] Stallman讨论,我们谈到自由软件这个主题,当我从他的观点错误的使用这个名词时,他冲我大发脾气。
自由软件是你拥有源代码,并且你能用它做你想做的事情的软件;它是使用Berkeley许可还是GPL,这并不重要。重要的是你拥有源代码,并且能够自由应用它。
他大为恼火,说:“许可才是最重要的事情!”而我反驳道:“不,软件、源代码最重要;而许可的细节是次要的。”
关键是你发布源代码,其他人按照你的希望在合理的条件下使用它、修改它,这些条件的确切本质并不那么重要。他只是有些恼怒。
我想在代码的重要性方面,Linus和我持同样的观点——重要的是发布代码,实际的许可并不是关键。他不喜欢GPLv3,这点和我不同,这并没什么。我喜欢Berkeley许可,但我尊重他的选择。对我来说这不重要。
你在文章中写道,微核是你能够使用的工具之一。你认为OS提供商还可以使用哪些工具呢?
Singularity是微软的一个非常有趣的开发项目,他们在一个单独的地址空间用类型安全语言从头编写了整个系统。他们创造了Sing#这门新语言,它由C#派生而来,它具备一切功能,像Java一样,你不能用p= random & *p=0,它不允许这样的语法。
这是一种类型安全的语言,你的操作受到很大限制,所有的组件在同样的地址空间通过这些你称作的“所谓管道”彼此交互。
每个管道有一个协议,协议用正式的语言描述——你给这种类型的某人发送一条消息,他们返回一个A、B或C给你,诸如此类。
你必须用正式的语言编写这一切内容,这样系统就能进行验证,知道你在做该做的事情,因为你已经正式指定那个管道上的协议。
因此他们能够非常接近地推出一个可以查证的正确系统,因为他们迫使你用语言说明这些管道使用什么协议。
这是一个非常有趣的开发项目,他们已使它开始运作,这是一个有趣的方法。它不与Windows兼容,也不与Unix兼容,不与现有的任何系统兼容,对他们而言,这会是一个营销问题。
但他们已经证明能够解决这个问题,这是一种方法。在虚拟机上它们有一定的潜力,但我认为这是一个笨拙的方法,在单独的虚拟机上运行所有驱动程序。使用一个过程就可以了,不必要使用全部的机器。
华盛顿大学的Nooks方法,把它们包装起来,将所有应用程序集中在内核。将它们进行包装,使得操作系统和驱动程序的所有交互操作都经达Nooks层,在这里接受检查,确保一切正常运行。如果你做了不该做的事情,Nooks层会发现并做出标记——这是另一种方法。
还有许多人在研究其它方法;我不会说这是唯一的方法,但我认为这可能是一个非常不错的方法。
最后一个问题,在设计与微核系统兼容的程序时,开发人员应记住哪些事情?
坚持使用POSIX界面——在某种程序上,几乎所有微核都以桌面为对象,支持POSIX界面。
使用ANSI标准C——不要使用GUN或gcc或其它任何扩展。坚持ANSI C,坚持POSIX界面和其它标准。坚持标准。
微核和其它大多数系统支持标准。当你使用其它人的奇怪扩展,嵌入式汇编代码或其它事物时,你就会误入歧途。
如果你坚持根据语言、库、操作系统调用使用标准,你开发的系统就很可能会得到普及。
使用那些古怪的扩展对你没有益处。
责任编辑:张琎
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者