(转)神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
先解释为什么用这个系统不用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多度,这种温度下一般家用计算机早就挂了,所以为了对应这个极端环境,主要的硬件都被设计成很耐用的状态,这就使得计算机速度不是一个重要的指标。另外太空辐射会造成位翻转,频率越高越容易被干扰,所以低频是主流。
(转)神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 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开始,微软取消了服务器桌面个性化选项,如何重新调出配置界面,可以使用微软命令调出.具体方法如下: ...
随机推荐
- Oracle同义词、索引、分区
同义词:是现有对象的一个别名 简化SQL语句 隐藏对象的名称和所有者 提供对对象的公共访问 同义词共有两种类型 私有同义词只能在其模式内访问,且不能与当前模式的对象同名 公有同义词可被所有的数据库用户 ...
- 修改model,映射到表中
1. 当使用EF code first创建数据表后,数据库中会自动创建一个名为:dbo.__MigrationHistory的系统数据表, 如果尚未启用数据库迁移功能,那么每次在应用程序运行时,都会对 ...
- js超链接
_blank -- 在新窗口中打开链接 _parent -- 在父窗体中打开链接 _self -- 在当前窗体打开链接,此为默认值 _top -- 在当前窗体打开链接,并替换当前的整个窗体(框架页) ...
- 5.vs的各个组成部分
启动vs (1).双击vs的打开图标 (2).输入devenv 编写项目时,命名的时候,尽量不要使用中文. 我们暂时将.cs文件理解为是一个类文件. 在 视图菜单 下可以打开 解决方案资源管理器 ...
- 缺陷=bug?
Defect(缺陷):是指静态处在于软件工作产品(文档.代码)中的错误,也指软件运行时由于这些错误被激发导致的软件产品与其属性的偏离现象. Bug:Bug通常是软件缺陷(Defect)导致的一些软件故 ...
- Swagger2:常用注解说明
Swagger2常用注解说明 Spring Boot : Swagger 2使用教程:https://www.cnblogs.com/JealousGirl/p/swagger.html 这里只讲述@ ...
- Office加载项
出自我的个人主页 Alvin Blog 前言 前一段时间公司做了有关Excel 加载项的开发,也遇到了很多坑,所以在此记录一下,有两个原因,1.留给以后在用到加载项的时候,复习所用,避免 跳进同一个坑 ...
- element-ui打包的坑爹之处 !!!必看三遍!!!
最近笔者打包element-ui出现如下问题: ERROR in static/js/0.4cad92088cb8dc6e7afd.js from UglifyJs Unexpected token: ...
- wxWidgets窗口类型
如果在创建窗口的时候你没有指定窗口的边框类型,那么在不同的平台上将会有不同的边框类型的缺省值.在windows平台上,控件边框的缺省值为 wxSUNKEN_BORDER,意为使用当前系统风格的边框.你 ...
- webpack-dev-server启动后, localhost:8080返回index.html的原理
webpack-dev-server是一个采用Node.js Express实现的微型服务器, 内部使用webpack-dev-middleware来响应发送到服务器监听单口的HTTP请求. webp ...