机械荟萃山庄

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1491|回复: 6

[转]如何写出军工级代码?

[复制链接]

565

主题

4013

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
28212
发表于 2021-9-3 17:56:02 | 显示全部楼层 |阅读模式
INTEGRITY 178B,最开始为了B1B(核弹轰炸机)设计,后来被用作B2,F16,F22,F35(都是战斗机)的操作系统,再后来也被用于民航(787 A380)的操作系统。这是我们公司(Green Hills Software,我们sponsor h1b,欢迎广大在美国读CS的同学前来应聘!)的一个产品。

迄今为止唯一一个过了EAL 6+的软件(应该绝后了,因为6+好像由于太难达到取消了)。

有人说军工软件比较low,从科技进步的角度说,这是毫无疑问的。拿INTEGRITY 178B来说,这个操作系统没有动态分配内存的功能,没有动态分配address space的功能,没有动态增加task的功能。scheduler里面提前分配好了每个task可以占用的时间,甚至包括所有的中断可能占用的时间。这种OS的效率可以说低得令人发指。更不要说这个OS根本没有什么USB啊蓝牙之类的driver了。

然而从另一个角度说,这是一个无比先进的技术。现在的OS大多是priority分配,任务有优先级。而优先级分配资源的特点在于,只保证最高优先级task的资源。换言之,当你最高优先级的task开始吃资源(内存泄漏或者死循环)时,基本上其他task就废掉了。而这种情况在飞机上是不允许出现的。说30ms需要响应一次,就必须响应,晚了30ms飞机可能就掉下来了(尤其对于极其依赖发动机控制,空气动力学不稳定的战斗机)。而这种“低端”的操作系统,在设计的正确的情况下,是可以满足飞机需求的。毕竟战斗机飞行员不太需要在飞机上听歌。

而这个OS的审批过程也是历尽艰辛(毕竟是要上核弹轰炸机的),用一个过程来管中窥豹,这个OS给了NSA做白箱检查,也就是上交全部源代码,让他们找bug和vulnerability,是否会被hack,他们花了18个月,没有找到任何缺口,这才让用。对比一下,linux kernel大概是3天左右出一个 vulnerability。

这个OS过了审批之后,再想修改其中的一行代码,需要层层上报,获得批准。绝不是一个approve from manager就完事的。当然这个OS似乎之后几乎没改过。

当然,这个操作系统,由于显而易见的原因,我是没见过的:)

他的兄弟,INTEGRITY的民用版,我是见过的。这个OS目前大量被用在汽车里做核心系统,据我了解toyota近几年的车应该都用的INTEGRITY。当然INTEGRITY也有很多其他领域的比较追求安全性而非效率和酷炫的用户,比如医疗器械之类的。

不过即便是INTEGRITY的民用版,我也没有commit code的资格。(而且似乎还限制卖到敌对国家(伊朗伊拉克朝鲜古巴还有。。你懂的。。)

吃,懒,躺,睡......
回复

使用道具 举报

565

主题

4013

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
28212
 楼主| 发表于 2021-9-3 17:56:49 | 显示全部楼层
还是那句话,软件,应该是为工业服务的,而我们的软件全集中在互联网,为了软件而软件,完全就是本末倒置
吃,懒,躺,睡......
回复 支持 反对

使用道具 举报

11

主题

1678

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
14812
发表于 2021-9-3 18:07:32 | 显示全部楼层
安全性、可靠性需要,必须如此。
如果某个存储磁格子出问题了还要自检,重新分配区段里的冗余格子吧。
回复 支持 反对

使用道具 举报

1万

主题

4万

帖子

26万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
265250
发表于 2021-9-3 18:08:59 | 显示全部楼层
本质说,我们没有硬件也没有软件,我们用的是钮儿,就是人家的东西告诉我们怎么按一下,仅此,

现在他们才明白,钮儿这个字有多准确,哈,

而钮字通妞儿,就是一个傻妞儿,仅仅有娱乐功能与组装出小的咿咿呀呀,哈哈,咿咿呀呀长大以后,继续按钮,哈,
回复 支持 反对

使用道具 举报

51

主题

2466

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
18240
发表于 2021-9-3 21:11:06 | 显示全部楼层
crazypeanut 发表于 2021-9-3 17:56
还是那句话,软件,应该是为工业服务的,而我们的软件全集中在互联网,为了软件而软件,完全就是本末倒置 ...

工业软件耗时费力,皇上哪会折腾那玩意
回复 支持 反对

使用道具 举报

56

主题

1149

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
15866
发表于 2021-9-4 08:01:19 | 显示全部楼层
因为家用操作系统为了构建生态,降低难度,自动分配各种资源,毕竟拿系统干各种事情的都有,需要编写各式各样的工具最后封装成类。到了最后,大家觉得一个个类new太麻烦了,于是有了框架。系统的发展史就是一门省心事。这种系统要是拿来用,得找很多个码农,耗时漫长,资本家都不乐意投资的
回复 支持 反对

使用道具 举报

71

主题

1023

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
18191
发表于 2021-9-4 10:12:30 | 显示全部楼层
工业应用都比个人应用级别要高得多,这是由可靠性决定的。一个平板才多少钱,一个看上去low的多的西门子触摸屏都快上万了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|机械荟萃山庄 ( 辽ICP备16011317号-1 )

GMT+8, 2024-11-15 19:54 , Processed in 0.107094 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表