所有包含 tag ‘qnx’ 的文章
Neutrino 要见光
圣者 QNX 渡过了 River。他在逆流中走了整整的一夜。现在他结实的身体象一块岩石一般矗立在水面上,左肩上扛着一个娇弱而沉重的孩子。圣者 QNX 倚在一株拔起的松树上;松树屈曲了,他的脊骨也屈曲了。那些看着他出发的人都说他渡不过的。他们长时间的嘲弄他,笑他。随后,黑夜来了。他们厌倦了。此刻 QNX 已经走得那么,再也听不见留在岸上的人的叫喊。在激流澎湃中,他只听见孩子的平静的声音,——他用小手抓着巨人额上的一绺头发,嘴里老喊着:“走罢!”——他便走着,伛着背,眼睛向着前面,老望着黑洞洞的对岸,削壁慢慢的显出白色来了。
早祷的钟声突然响了,无数的钟声一下子都惊醒了。天又黎明!黑沉沉的危崖后面,看不见的太阳在金色的天空升起。快要倒下来的 QNX 终于到了彼岸。于是他对孩子说:
“咱们到了!唉,你多重啊!孩子,你究竟是谁呢?”
孩子回答说:
“我是即将 open source 的 Neutrino。”
----------------
QNX 深吸一口气,回头看看过去的旧时代,轻声说,我们把 Neutrino open source。
他们今天表态,Neutrino 将开放源代码,并计划和外部开发者交互。
第一阶段发布的代码包括 QNX Neutrino microkernel, 基本 C library, 一些常见嵌入式平台用的 BSP。理论上大家最感兴趣的自然是 Neutrino 内核,codename 我记得是 photon。因为 C lib 和 BSP 要么不会有太多花头,要么花钱可以买到,甚至要么通常会作为添头奉送,所以,内核可能是最有兴趣的部分--当然,这不是说 c lib 和 BSP 不重要,BSP 其实相当重要,只是,内核嘛第一确实花钱都不好买到,第二,符合中国人的技术处女情节,看见内核 code 才觉得自己不吃亏。
现在代码已经可以从他们的 subversion repo 里拉出来,不过匿名访问尚不支持,要先在 QNX Developer Community (myQNX) 上建个帐号才行。
另外,他们那档子基于 Eclipse 的 Momentics IDE 仍然要钱。
其实我不太确定看到我这篇文章的哥们里有多少了解 QNX 以及它意味着什么,几年前,在我的印象里我都恨不得说,你是电 你是光 你是唯一的神话,你过去的多年是个传奇,你有如雷贯耳的名声和备受尊敬的技术/市场地位。QNX 是圈里的神仙(之一),除了因为悠久著名的 Neutrino 外,还因为加拿大优哉游哉的日子而被人羡慕。在 GreenHills 或者 MontaVista 出来捣乱之前,和 WindRiver 等分享总额看上去不算大不过人均收入颇高的嵌入式市场,闷声发大财谁不喜欢。QNX 最著名的用户包括 Cisco,DaimlerChrysler, General Electric, Lockheed Martin 等,Cisco 的不少高端产品都用 Neutrino。如今世道不像从前,惺惺相惜的对手 WindRiver 被 GreenHills 啃了不少肉,还要应付嵌入式 Linux 的侵蚀,甚至自己都开始凑热闹做 Linux 了。多年前,关于 QNX 的那个故事是一张软盘内包括的图形环境,可以拨号上网,有浏览器……当然,从技术角度看,Neutrino 最响亮的名声来自,有那么讽刺的,无人有机会查验的 micro kernel 和 message passing 设计与实现。
尚不清楚会不会开放“完整的 Neutrino” --包括 Phonton 内核,协议栈,GUI,POSIX code 等等在内。不过不管如何,如果 OpenSolaris 是大餐,Neutrino 至少是不错的甜点。
和 OpenSolaris 做法类似的是 Neutrino 的授权方式。PR 里说,外部开发者可以选择将自己的修改回馈给 QNX 社区,也可以保留权力 private and proprietary。当然,不要混淆的是,code 虽然可以自由免费地访问,商业产品使用 Neutrino 的 royalty 费用是没有被免除的,这也是除了比如 Nucleus+ 之外的大多数商用嵌入式系统的盈利做法。
open source 看来终是局势不利者,力量弱小者转换方位,改善形式的做法。
最后鸣谢 罗曼·罗兰 :)))
[tags]qnx, os, neutrino, photon, operating system, embedded, software, rtos[/tags]
Tags: embedded, neutrino, operating-system, os, photon, qnx, rtos, software, Technology
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]
Tags: l4, mach, microkernel, mimix, os, os-x, qnx, Technology








