神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
中国航天用的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多度,这种温度下一般家用计算机早就挂了,所以为了对应这个极端环境,主要的硬件都被设计成很耐用的状态,这就使得计算机速度不是一个重要的指标。另外太空辐射会造成位翻转,频率越高越容易被干扰,所以低频是主流。
references:
http://www.zhihu.com/question/20328854
神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?的更多相关文章
- (转)神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
中国航天用的SpaceOS主要内容是仿造美国风河系统公司的VxWorks653(653是产品名,并非版本号).先解释为什么用这个系统不用Linux:航天器的内存和CPU都非常弱,弱到什么程度呢:天宫一 ...
- 神舟K650c i7(W350STQ)上成功装好Mac OS X 10.9,兼谈如何安装WinXP、7、8.1、OSX、Ubuntu五系统(Chameleon、MBR)
作者:zyl910 参考教程——http://bbs.pcbeta.com/viewthread-1432534-1-4.html笔记本SNB和IVY平台Win7/Win8/Win8.1安装OS X ...
- 成功在神舟K650c-i7 d2(i7-4700MQ、HM87)上装好了Windows XP
成功在神舟K650c-i7 d2(i7-4700MQ.HM87)上装好了Windows XP 本来已经在K650c上装好了Windows7.Windows8双系统,奈何某些旧软件只能在Windows ...
- [SSD大法好]神舟K480-I5-D3鸟枪换炮M6S
Hello,SSD 期盼已久,终于入手了M6S的256G固态硬盘,白天就不安生一直百度.谷歌.必应,势必要把所有相关消息查个清楚这神舟K480I5D3怎生拆呢. 最后心里隐约有了安装的法门. 但到得开 ...
- FreeRTOS+FreeModbus+神舟IV号
下面的这个例子是FreeModbus和FreeRTOS在神舟IV号上的应用,仅当做学习用途. 这个demo完成的功能也比较简单,创建了两个任务,一个任务用于控制板子上的LED1,使它每1秒钟闪烁一次. ...
- 神舟+win10+ubuntu16.04+256GSSD+1THHD双系统安装加openssl踩坑之旅
上海最近搞活动调休,要搞深度学习,win上还是不方便,准备弄个ubuntu.于是有以下回忆文字. 在机器上装了个双系统.花了两天.再也不想玩了. 准备用ubuntu来做深度学习的. 本文写于2019年 ...
- 神舟zx6-ct5da装黑苹果Macos 10.15.6记录
可能是一时脑子抽风,突然就想体验一把mac系统.以前就了解过,给非苹果电脑装macos叫黑苹果,emmmmm.好吧,给我的神船也整一个. 看了很多个视频,整理一下装黑苹果过程.本人电脑系统是win10 ...
- 【转载】如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习,来自STM32神舟系列开发板设计师的总结
[好文章值得分享,摘自作者:jesse] 来源:www.armjishu.com作者:jesse转载请注明出处 我的另一篇文章:<STM32嵌入式入门必看之文章-----介绍非常详细!(学STM ...
- Windows Server 2012 R2在桌面上显示计算机/网络图标
原文 Windows Server 2012 R2在桌面上显示计算机/网络图标 从Windows2012开始,微软取消了服务器桌面个性化选项,如何重新调出配置界面,可以使用微软命令调出.具体方法如下: ...
随机推荐
- mysql去掉字段字符中间空格
mysql有什么办法批量去掉某个字段字符中的空格?不仅是字符串前后的空格,还包含字符串中间的空格,答案是 replace,使用mysql自带的 replace 函数,另外还有个 trim 函数. ...
- SQL基础--> 约束(CONSTRAINT)
--============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...
- linux 启动network后报错:device eth0 does not seem to be present, delaying initialization
问题背景: 在vsphere client中部署ovf模板后启动linux 的network后提示:device eth0 does not seem to be present, delaying ...
- 队列(链式存储)JAVA代码
publicclassLinkQueue<T>{ //结点类 publicclassNode{ public T data; pub ...
- (转)C#读取文件路径
//获取包含清单的已加载文件的路径或 UNC 位置. public static string sApplicationPath = Assembly.GetExecutingAssembly ( ) ...
- (转)TortoiseSVN使用简介
TortoiseSVN使用简介 TortoiseSVN使用简介 2009-04-24 来源:dev.idv.tw 1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么 ...
- 关于ASP.Net 4.0的ClientID
我们知道因为在原来的ASP.NET应用程序中使用服务端控件在生成ClientID的时,是很难控制的,特别是在嵌套的控件的时候,比如在多个嵌套Repeater中要控制某一个控件生成的html的ID属性, ...
- PHP常用代码大全
1.连接MYSQL数据库代码 <?php $connec=mysql_connect("localhost","root","root" ...
- Design Pattern ——Builder
一.基础知识:先前学习建造者模式的时候,总是以这个UML图作为学习基础资料 然后总是要记住四个角色 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量.在本类图中 ...
- Hadoop源码解析之 rpc通信 client到server通信
rpc是Hadoop分布式底层通信的基础,无论是client和namenode,namenode和datanode,以及yarn新框架之间的通信模式等等都是采用的rpc方式. 下面我们来概要分析一下H ...