这是不是国家机密啊。事实什么样的不知道,但是从美国的探测器来看,就算不是也是相似的东西。下面我来说说我知道的。
龙芯已经随北斗卫星上天了. 就算登月探测器嫦娥是用"龙芯+Linux"也不出奇. 没必要把嵌入式实时操作系统说得那么神乎其神. 无人机使用Linux作为操作系统,也没见要失控了,是吧. Linux作为一款抢占式多任务操作系统,上下文切换和中断在所难免. 但可以给任务进程设置运行优先级(nice/renice)和进行CPU核心亲缘性绑定(taskset). 就算发生上下文切换,那也是微秒级别的耗时,还是很快的,只是相对没有那么"实时"而已.
nice - run a program with modified scheduling priorityrenice - alter priority of running processestaskset - retrieve or set a process's CPU affinity
我在Ubuntu上用PHP测试了1次上下文切换消耗的时间,不知道对不对,方法如下:
<?php// 1 秒 = 1000 毫秒 = 1000000 微秒$start = microtime(true);for ($i = 0; $i < 1000; $i++) {// 睡眠会导致发生1次上下文切换,所以耗时总和为睡眠的耗时+上下文切换的耗时. usleep(1000);}echo (microtime(true) - $start) . "\n";
1次上下文切换耗时 = ( 1.092894077301(总耗时) - 1(睡眠耗时) - 0.000014066696166992(无usleep时脚本耗时) ) / 1000次 = 0.00009288 秒/次 = 92.88 微秒/次 (接近万分之一秒)
vmstat 1 中也确实看到了上下文切换(cs)增加了1000多.
总结
也就是说,如果相差万分之一秒会导致的严重的错误,这时就不适合使用Linux了.
一切都是猜测和实验算不得真的。看看就行了。