百科问答小站 logo
百科问答小站 font logo



神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux? 第1页

  

user avatar   shi-guo-huai 网友的相关建议: 
      

题主的链接似乎已经失效了。

中国航天用的SpaceOS主要内容是仿造美国风河系统公司的VxWorks653(653是产品名,并非版本号)。

先解释为什么用这个系统不用Linux:

航天器的内存和CPU都非常弱,弱到什么程度呢:天宫一号的CPU是10MHz的,内存是2M,这种配置跑Linux比较费劲,虽然也并非不可能但要裁剪Linux内核确实太麻烦了。

而Linux的致命缺陷就是Linux不是一个硬实时操作系统。实时操作系统(RTOS)有一系列严格的定义:包括严格按照任务优先级抢占执行,快速的中断响应,对关中断的时间有非常严格的控制,Linux是一个民用的操作系统,其内核设计并没有考虑到这些点,所以Linux不适用于航天领域。

实际上,Linux的主要应用还是在通用计算机和服务器方面,在工业控制、自动化方面还有各种各样的操作系统:ucos,nuclues,threadX,greenhill,VxWorks等等。

有人提到了RT-Linux,这个说的简单点,就是底下是一层RTOS,上面是Linux,这种Linux复杂度太高,也不能裁剪的太小。

有人说到SpaceX公司用的是Linux,这没错,是火箭用的,SpaceX的龙号飞船用的是VxWorks系统。

另外,很多人听了可能会难过的就是中国的国防军工行业的自动化控制部分实际上也都是VxWorks称霸的,虽然号称自主知识产权,但实际上不是那么回事。

家用系统多数情况下要求系统的均衡运行,比如,你可以同时玩游戏,上网,听音乐,但实时系统都是重要任务先执行,不重要的任务往后放,设计理念是不一样的。

下面讨论一下这个系统的规模问题,8000行应该说差不多正合适,一个内核、一个调度器、若干任务、中断处理,甚至可能不包含动态内存分配,不要觉得连动态内存分配都没有还算系统吗?算,有的系统就是这么设计的,要知道内存碎片对于只有几M内存的设备来说是很可怕的。甚至有的系统里是没有中断的,中断处理是通过轮询的方式实现,为的是系统状态可以实时追踪。

这么小的系统需要的是精确可靠,有人说自己一个月就能写8K行代码,你要这么说,我说我也可以写出来,操作系统不是写应用,需要考虑的设计细节非常多,而且一旦定型,修改又非常麻烦,而且需要大量的测试,NASA那边是一个开发对应几十个甚至上百的测试的比例,对于航天工业来说,可靠性是最重要的。

最后想说的就是,Linux/Unix/Windows这些都是通用操作系统,跟专用的操作系统差别很大,设计思路也完全不一样,不要从通用操作系统的角度去看待它们

-----------------------

漏掉一点:为什么航天器的计算机配置都这么差:

因为太空辐射、极端温度的原因,计算机系统首先要求的是可靠性,高温100多度,低温零下100多度,这种温度下一般家用计算机早就挂了,所以为了对应这个极端环境,主要的硬件都被设计成很耐用的状态,这就使得计算机速度不是一个重要的指标。另外太空辐射会造成位翻转,频率越高越容易被干扰,所以低频是主流。


user avatar   li-mu-gen-19 网友的相关建议: 
      

刚开始非常辛苦,后来形成自己观点了,就不觉得了。因为你的观点总被人攻击,你总要还击。就比如你在逼乎发了个帖子被别人怼,你觉得你不回骂过去能睡得着觉? 学术成果就是在不断的撕逼过程中不断积累。 就比如我敬爱的Fama大神,活到老,撕到老,生命不息,撕逼不止。




  

相关话题

  在C#下有什么好办法可以替代if-else和switch-case? 
  1980年之前的计算机如何使用远超内存的磁带? 
  科研工作者如何整理实验数据? 
  C的结构体成员变量的命名有必要加前缀吗? 
  开源代码里某个函数很长,这种代码能否认为是好的? 
  大容量移动硬盘的选择,有电源是否很重要,买8T的稳定吗? 
  还有哪些像 Unix,C/C++ 一样经久耐用的软件技术? 
  大学学习linux是安装虚拟机,还是安装双系统。? 
  Linux 图形界面的显示原理是什么? 
  为什么Linux用户用sudo命令而不直接使用root用户? 

前一个讨论
怎么看待知乎用户“芝士就是力量”关于知乎未来走向的回答?
下一个讨论
当外国人听见有人在宣扬自己国家某地区独立的言论的时候,他们通常是什么态度?





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利