之前研究过Nucleus,最近因为想了解下其他RTOS的机制,所以特意从网上找了些其他RTOS的代码来看,其中也包括ThreadX的代码。于是便 发现了一个很有意思的事情。什么有意思的事情呢,呵呵,Nucleus的代码和ThreadX的代码太类似了。虽然作者刻意的用文件,函数,参数的命名来 干扰我们的实现,但是仍然可以很清晰的发现两个代码的相似之处。我这人比较八卦,于是想,是不是哪个工程师跳槽了,导致这样的事情呢。后来才发现,两个代 码里面,都有William E. Lamie这位老兄,上网一查,原来这位老兄是Nucleus的创始人也是ThreadX的创始人。难怪 在Nucleus的后期版本里面,都看不到这位老兄的身影了。
寻遍搜索,把两个系统的历史简单描述下,Nucleus从1.0版本发展到1.3版本后, 被Mentor收购,Mentor将Nucleus的版本修改为1.11后继续发展,而这位老兄另立公司,重新开发ThreadX,最初采用的版本是 3.0,现在已经发展到了5.X。这样就比较清楚了,敢情William E. Lamie耍了个小聪明,卖了一个壳子给Mentor,自己换了个马甲,继续干活收钱。不过ThreadX和Nucleus虽然大体结构和大部分机制相 似,但是William E. Lamie还是做了很多变化的,因为本人刚研究ThreadX,所以不能给大家一个清晰的例举,等稍后再写一篇详细的分析吧。
其实这样对大家来说也有一个好处。因为Nucleus操作系统没有任何书籍,只有Internal和Refrence可以看。如果你想了解作者的思路和一 些机制思想,以及使用Nucleus需要注意的地方,基本上没有任何文字的东西可以指导你。但是ThreadX不一样,作者在User Guide之外,还写了三本书(列在最后)来描述这个系统,指导如何使用好这个系统。然后呢,这两个系统这么接近,又是出自同一个作者,你当然可以用这三 本书里面看到的知识,来分析Nucleus的系统。这也不失为一条深入研究Nucleus的通道。虽然有些曲折,但你别无他法。