不为人知的中国航天 SpaceOS 操作系统 - 开源中国社区
不为人知的中国航天 SpaceOS 操作系统
neou 2013年12月21日

不为人知的中国航天 SpaceOS 操作系统

neou neou 发布于2013年12月21日 收藏 39 评论 146

【腾讯云】云服务器新购特惠,1核1G 265元/年起>>>  

说起微软的Windows,苹果的Mac OS以及谷歌的Android,相信大家都不会陌生,它们都是操作系统,即对计算机的各种资源进行管理的软件,是计算机能够运行的灵魂,美国的一些航天器 上用的就是VxWorks操作系统。但是,如果问起我国航天器上的计算机用的是什么操作系统,也许很少有人知道。

事实上,中国航天科技集团公司五院从2001年就开始研发星载计算机特有的操作系统——SpaceOS,并在2006年首飞成功。此次的嫦娥三号探月任务 控制计算机使用的是经过升级和改进后的第二代星载计算机操作系统SpaceOS2。该系统首次亮相应用,就吸引了众多关注的目光。

中国航天要有自己的操作系统

尽管与普通家用的操作系统设计原理相似,但“上天”的操作系统为了适应恶劣太空环境,对安全性、可靠性等要求要苛刻许多。

地面使用的计算机死机了可以重启,坏了还可以换新的,但飞行器上的计算机开机了通常就不会再关闭或重启。在轨运行时间较长的卫星寿命可达十几年,这也就意味着计算机程序要同步运行十几年不出现问题。

更重要的是,对于航天这样的事关国家安全的关键领域,“拿来主义”是很危险的。而要研发自己的操作系统,相关核心技术国外严密封锁,想要借用也没有可能。

在星载计算机操作系统投入使用以前,中国的卫星通常都采用程序控制的方式来完成指令。这种“傻瓜”式的运行模式非常简单,但也非常机械,它要求技术人员在 地面设计好卫星要进行的每一个动作,严格按照时序编写程序。形象地说,就是如果设定卫星的任务为“吃饭—喝水—睡觉”,卫星上天之后只能按照这个顺序重复 动作,想要先喝水后吃饭是做不到的。

由于卫星的运行轨道相对封闭和确定,程序控制虽然机械繁琐,也能够满足任务要求。但随着我国在轨任务越来越复杂,对计算机软件管理提出了越来越高的要求。

研发中国自己的星载计算机操作系统势在必行。没有借鉴,就从零开始慢慢摸索。独立自主创新,成为了摆在研发团队面前唯一道路。

两代SpaceOS的华丽蜕变

2006年,SpaceOS1成功在轨运行。那时的操作系统功能简单,只做到了多种资源的管理和任务调度,却没有任务间的通信和动态内存管理等更为复杂的功能。

3年以后,嫦娥三号立项,巡视器要实现月面行走。相比卫星轨道,月球是一个开放的空间,环境恶劣、不确定因素多、控制复杂。这种任务对航天器智能性和自主性的要求很高,而这恰恰是操作系统的绝佳用武之地。

此时功能简单的SpaceOS1已无法满足任务要求,科研人员开始着手进行第二代产品的攻关。经过2年研发,SpaceOS2正式推出,在很多方面都实现了质的飞跃,并成功应用到了嫦娥三号巡视器的中心控制计算机上。

在任务调度和内存管理方面,SpaceOS2可以同时管理几十个任务,与原来5个任务相比,提高了一个量级,同时可以做到快速、有序存储。月球车在月面行 走时,要一边不停地拍摄月面环境,一边快速保存和处理这些信息。如果此时突然遇到一个坑,操作系统必须在最短的时间内作出判断并反应,否则就有可能掉进坑 里。目前,研究人员设计的内存管理方法和调度方法,从功能、效率上来讲,已经可以和国际上最先进的类似产品相媲美。

而如果说到最具有我国特色和竞争力的技术,就不得不提到三机容错。一般卫星上会有两台计算机冷备份,一台工作时另一台不工作,如果工作的计算机出现了故障 或问题,就立刻切换到另一台。但切换的过程中,不可避免的会有一些因计算机启动等带来的秒级的时间差。为了实现真正的无缝切换,嫦娥三号上第一次实现了三 机热备份,即三个计算机同时工作,处理同样的任务,有可能其中一台计算机给出的计算结果是错的,那么三机容错就要发现哪台计算机有错,并最终给出正确的结 果。

从双机冷备份到三机热备份,看上去似乎只增加了一台计算机,但带来的难度和工作量却是呈指数级增长的。研发人员坦言,那种压力来自于知道应该实现什么目标,但对怎么实现毫无头绪。那时做梦都在思考这些问题,有些难关甚至是在梦里攻克的。

未来或可发展为民用

目前,这个只有十几个人组成的年轻团队正在进行SpaceOS3的研发工作,第三代产品的技术将更加先进和前沿。

例如研制高性能多核计算机,让运算速度和处理能力大幅度提升;还有目前操作系统领域最前沿的技术——形式化验证,即从建模和证明的角度来验证设计领域软硬 件的正确性,如果这一技术得以突破,将改变航天目前通过大量测试来验证设计正确性的方法,从根本上确保设计的无差错和高可靠。

SpaceOS操作系统能否发展民用?

当被问及这个问题时,研发人员表示,航天操作系统技术本身是可以转为民用的。但由于航天精品化和个性定制的特点,不够产品化和通用化,距推广成熟的民用产品还有一定距离。

目前,SpaceOS操作系统正在考虑航天系统内的推广应用,未来还将逐步拓展到其他领域。也许有一天,我们每个人的手机上,都可以使用到“中国航天”品牌的操作系统了。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:不为人知的中国航天 SpaceOS 操作系统
分享
评论(146)
最新评论
0
q外行写原文章吧
0
不会又是一个翻版的Linux吧?
0
一看这个作者的文字,就知道是个计算机外行!靠,以前只能管理5项任务,现在可以几十项任务了,汗!
说一个笑话:以前某记者报道一个军队的美女程序员,特别的牛,写程序不出错,别人一小时只能写几页,她一小时能写100多页,---结果办公桌上常常都堆满了写好的代码放不下后才只得停下。。。
靠,这是哪个星球的程序媛?
0

引用来自“独孤影”的评论

引用来自“高尤波”的评论

在牛逼也是用别人的计算机语言写的。 你可以再牛逼一点, 自己开发一套计算机语言。。。

喷子你好。同一CPU,再牛逼的语言翻译出来的指令集都是一样的

正解
0

引用来自“hanf”的评论

一大群屁都不懂的傻逼又喜欢发表白痴言论。航天级芯片和软件的严苛要求你们懂么,还windows98~这可是高科技,不是你们码农那种“高科技”。不懂就算了,评论还显得那么竭斯底里和非理性。恶心死我了。

确实,这里一群自以为是的卢瑟在瞎喷,总以自己的恶意来揣测他人的成功
0
ccav 报道吗
0
关注一下
0
自主改造倒是信
0
基于什么?linux? μCosII ?
0

引用来自“ueharaai”的评论

我记得以前看过一张图:windows98

牛叉
0

引用来自“zjtxqjj”的评论

引用来自“高尤波”的评论

在牛逼也是用别人的计算机语言写的。 你可以再牛逼一点, 自己开发一套计算机语言。。。

在牛逼也是基于别人的计算机体系,有本事自己弄套体系出来!
再牛逼也需要依靠别人发明的直流发电技术,有本事自己弄套完全不同的技术出来 ╮(╯▽╰)╭

亮了
0
没图说个X
0
吹牛皮不打草稿。实时开源嵌入式操作系统优秀的太多了,如ucos,rtems,RTlinux很多,还要自己写吗?顶多拿来改改
0

引用来自“高尤波”的评论

在牛逼也是用别人的计算机语言写的。 你可以再牛逼一点, 自己开发一套计算机语言。。。

你在牛逼也是再用你妈给你的身体,吃着农民伯伯种的粮食,
有种毁灭身体重新改造一个样式,
可以自己发明一种主食比如或者不吃换一种方式生活
0
不吹牛会死吗
0
说不定是DOS呢
0

引用来自“jQer”的评论

引用来自“hanf”的评论

引用来自“jQer”的评论

引用来自“hanf”的评论

一大群屁都不懂的傻逼又喜欢发表白痴言论。航天级芯片和软件的严苛要求你们懂么,还windows98~这可是高科技,不是你们码农那种“高科技”。不懂就算了,评论还显得那么竭斯底里和非理性。恶心死我了。

还高科技, 你懂不懂什么是运算, 你再高的科技也是建立在语言和算法上。
你那一大堆破铜烂铁有个屁用。

哦~你牛~材料芯片机械化工每一样拿出来都是一个大项,都“建立在语言和算法上”。笑死人了,你不会以为高科技就是计算机吧~~以为写两行破代码就牛逼得不行了。
另外,请教下什么是运算。

真够白痴的, 还材料芯片机械化工, 你这些东西放在那里都是棒废铁, 人工操作吗? 简直是幼稚!

我仿佛看到了某个大神拿着通信线缆以光速从飞船的左边绕道右边连续对接几十个光口上千次。

哦~原来果然是“都建立在语言和算法上”,好吧我认输了,就你码代码的最牛逼。
0
乱喷的都是一帮什么人,速速滚出osc
0

引用来自“hanf”的评论

引用来自“jQer”的评论

引用来自“hanf”的评论

一大群屁都不懂的傻逼又喜欢发表白痴言论。航天级芯片和软件的严苛要求你们懂么,还windows98~这可是高科技,不是你们码农那种“高科技”。不懂就算了,评论还显得那么竭斯底里和非理性。恶心死我了。

还高科技, 你懂不懂什么是运算, 你再高的科技也是建立在语言和算法上。
你那一大堆破铜烂铁有个屁用。

哦~你牛~材料芯片机械化工每一样拿出来都是一个大项,都“建立在语言和算法上”。笑死人了,你不会以为高科技就是计算机吧~~以为写两行破代码就牛逼得不行了。
另外,请教下什么是运算。

真够白痴的, 还材料芯片机械化工, 你这些东西放在那里都是棒废铁, 人工操作吗? 简直是幼稚!

我仿佛看到了某个大神拿着通信线缆以光速从飞船的左边绕道右边连续对接几十个光口上千次。
0
估计是linux内核的
顶部