如何把qnx移植到一种新的32位RISC类型CPU上?

可否给予一个简单的过程讲解?谢谢

你是说Port到QNX完全不支持的CPU Core上去? 没有Kernel Source,完全不可能。

唐先的意思是说,如果要QNX移植到一款新式的RISC CPU上,必须要有QNX KERNEL支持的CPU CORE,也就是说,该CPU 的指令结构QNX必须要支持,比如说,ARM7TDMI,ARM9TDMI等等,其他如CACHE,CORPROCESS,INTERRUPT,TIMER等等,都可以不一样,关键是QNX必须技持其指令结构,QNX必须要有一个支持该款CPU的KERNEL,并有其相应的指令编译器.唐先生,我理解的对吗?

唐先的意思是说,如果要QNX移植到一款新式的RISC CPU上,必须要有QNX KERNEL支持的CPU CORE,也就是说,该CPU 的指令结构QNX必须要支持,比如说,ARM7TDMI,ARM9TDMI等等,其他如CACHE,CORPROCESS,INTERRUPT,TIMER等等,都可以不一样,关键是QNX必须技持其指令结构,QNX必须要有一个支持该款CPU的KERNEL,并有其相应的指令编译器.唐先生,我理解的对吗?

是。QNX的kernel在启动之前,有个叫startup的程序。它向Kernel提供了处理cache, interrupt, ram等所要的函数。Kernel将来通过调用这些函数来完成控制。Startup的源程序是提供给用户的。

当然,也有可能新出的ARM现有的Kernel需要一定修改才行的,这时候,用户本身就无法对应了。所以还是case by case。

不过,如果你要移植QNX去Sparc,那没有Kernel Source,恐怕就没有可能性了。

也就是说,QNX公司不能提供对非常规指令集处理器的支持喽?

不知道你的“非常规指令集”是什么意思。如果是说RISC的话,QNX系统在很多Power PC的RISC处理器上运行啊。

我们用“SPARC”做例子吧,我只是说用户本身是没有办法自己做的。QNX公司不是“不能”支持SPARC,只是在使用QNX的用户当中(QNX的主要市场是嵌入式系统),没有足够的用户要求支持SPARC。

换一句话说,如果有那一个用户说,“我可以提供xxx数量的钱,请QNX公司把他们的系统移植到SPARC上去“的话,这也不是不可能实现的。:smiley:

的确是全新的一种指令集。
不过诸位说的我都明白了,我其实就是想知道做这个移植的商业运作过程,这样看来QNX是不允许别人来做移植的,谢谢。
顺便问一句,其他的主流rtos也都是这样吗?

这个与是不是RTOS无关,只要是源码不公开的软件,都不能跨指令集“移植”。要不然,Windows XP 早就在SPARC Station上运行了 :smiley: