QNX Neutrino RTOS (以下简称"QNX")所用的开发环境和支持的嵌入设备使用同一个微内核,就是说你在PC上调通的程序,可以直接用在手机上,因为两者都是用QNX操作系统。
Neutrino的优点
QNX是真正的微内核设计。单内核把所有的功能,驱动,文件系统都放在内核空间,微内核则放在用户空间。微内核的优点:比如,不用重启系统就可以重启文件系统;驱动坏了别的部分正常使用,因为内核不受影响。QNX因为微内核设计,基本不用重启。
微内核也有缺点,否则linux为何用单内核?下面是个很棒的比方,用中国话说,微内核有只见树木,不见森林的缺点:
"Thinking that microkernels may enhance computational performance can stem but from a typical myopic analysis: indeed, at every place where functionality is implemented, things look locally simpler and more efficient. Now, if you look at the whole picture, and sum the local effects of microkernel design all over the place, it is obvious that the global effect is complexity and bloat in as much as the design was followed, i.e. at every server barrier. For an analogy, take a big heavy beef, chop it into small morsels, wrap those morsels within hygienic plastic bags, and link those bags with strings; whereas each morsel is much smaller than the original beef, the end-result will be heavier than the beef by the weight of the plastic and string, in a ratio inversely proportional to the small size of chops (i.e. the more someone boasts about the local simplicity achieved by his microkernel, the more global complexity he has actually added with regard to similar design without microkernel)."
可见,微内核设计不可避免会变得庞大臃肿(内核是小了,可被剔除到内核之外的各部分互相通信的开销增加了很多),所以一般的微内核系统速度不会太快。
QNX克服了这个缺点。Unix使用同步系统调用。Mach(Gnu Hurd的微内核)和minix模仿了这些做法。QNX则使用异步的系统调用。
文章中还提到了Andy Tanenbaum (creator of Minix) and Linus Torvalds (creator of the Linux kernel)关于微内核和单内核的论战。很著名的舌战,原文里有连接。
后面的内容无非是如何下载,如何安装,GUI和应用程序,硬件支持介绍等等。因为相当于广告,就不翻译了。值得一提的是,qnx支持eclipse。