美国海军第一艘朱姆沃尔特级(Zumwalt)导弹驱逐舰,“朱姆沃尔特号”,战列编号DDG-1000,在各方面都是很先进的,但是舰载的控制系统,却使用的是民用的操作系统 -- Linux。
当第一艘朱姆沃尔特级导弹驱逐舰在下水之初,它就是美海军里最特别的一艘。造价35亿美元的新战舰被设计成服役期长、强生存力,火力强劲的新一代驱逐舰。不过在它的数据中心里,安装的却是Linux系统,外加600万行新开发的代码。
在朴次茅斯的“Raytheon海军武器研发中心”,有一个仿真测试环境,完全模仿舰上的布置,指挥官和官兵在这里练习操作舰载侦查设备、导弹发射器、枪炮和其他系统设备。
这个中央控制室内,就像是科幻小说中企业号的舰桥上。所有的控制界面都是触摸屏的,软件接管了所有的操作职责,中央正前方的大屏幕显示着所有的航线、气象、地貌等航线关键数据。
在过去,你不可能拿民用设备来承担导弹发射这样要紧的任务,在开火之前,必须关掉所有电脑,以防剧烈的冲击和震动将摧毁计算机系统。基本上普通 PC 系统是没法承担军事任务的。但定制的军用设备意味着更加高昂的开发和维护成本。
朱姆沃尔特号上的系统则完全基于民用硬件——大部分是跑着“红帽(Red Hat)”Linux 系统的 IBM 刀片机 —— 然后塞进一个特别强化加固的机房里。这个加固的机房名叫“模块化电子组件 Electronic Modular Enclosures (EMEs)”,Raytheon公司建造了16个这样的打包加固的数据保险柜。
(保险柜里的数据中心)
EMEs 有35英尺长,8英尺高,12英尺宽,16个EMEs有超过 235 个机架。交付使用前,它们都在这里进行安装配置,完成测试。 EME追求的就是成本,而且这让Raytheon公司在安装前就能完成集成系统的开发。大部分的钱都花在建造战舰上,而且技术人员进行舰上安装调试的时间很紧张。
每一台EMEs都安装了独立的防震缓冲、电源保护、水冷系统和电磁屏蔽系统,以防止受到其他大型雷达电子设备的干扰。
所有的EMEs都被集成进了全舰的电子系统,朱姆沃尔特的舰载网络系统,拥有多个光纤和铜缆链接的分区的网络,由TSCE(全舰计算平台)冗余路由控制系统负责连接整个舰船系统,包括 内部和外部通讯、武器、动力、感应探测设备等等,通过TCP和UDP网络协议通讯。几乎所有的人员联络都是通过IP电话(还有一些备用的老式电话机。)
朱姆沃尔特号上也具备无线通讯能力,但是Raytheon公司没打算透露这方面的技术细节,所以不清楚这是基于何种“无线方案”,它的作用就是让那些需要来回移动工作的人员可以和总部联系。
船上还有分布在很多层面上的大量的“数据记录程序”,它们没有通过IP网络连接起来的,而是通过单片机嵌入式系统,Lynx OS—— 一种实时 Linux 系统连接起来。被称之为“分布式自适应处理系统( Called Distributed Adaptation Processors)”,缩写是 DAPs,通过这些DAPs,再把动力系统,火力压制系统,导弹发射系统和无线电以及卫星通讯系和主网络连接,让用户通过客户端控制。
控制中心
朱姆沃尔特号控制舱的三维视图,注意还有一个二层楼给指挥官,空军部门以及其他联席行动部门。
这里不光是盯着屏幕看,听着船长吼——船上一切的一切操作,都可以在这里完成,从火炮到导弹发射。在朱姆沃尔特号上是没有“无线电通讯室”的;所有联络都被送到了这里。火炮的操作完全在显示器前面完成,不会有炮手在炮塔里操作。理论上,这艘船的航行控制也可以在这里完成——这艘船完全是电脑导航的,而不是舵手。这一切,都在一个统一的平台上完成。
这是Raytheon公司开发的Mark 57垂直发射系统,同时兼容反舰、对空和巡航导弹的发射。通过舰载网络系统与控制中心连接。
控制中心有三个显示器的控制台,叫做CDS(常规显示系统 Common Display System)(听操作它的人的发音是 “keds”),主机是英特尔架构的主板和四核CPU。在舰桥上的指挥官和执行官面前都有一个CDS工作站。
每一个CDS工作站可以运行多个Linux虚拟机客户端,他们都宿主于LynuxWorx的LynxSecure系统上,它拥有自己独立的系统内核,在CDS系统中起到一个超级管理员的角色。使各个子系统在一个统一的安全平台上进行通讯。
所有的在岗的监控者,都可以在任何一台CDS上调出自己的系统界面。可能你不觉得这有什么好处,但在以前的舰船上,所有武器系统的操作界面都是独立开发的,都有自己的处理器或者系统设置和界面,这让操作人员没法坐在一个地方,同时进行多个任务。CDS工作站有普通的USB接口,可以接入外围设备(比如轨迹球或者特别的控制台。)而且都是大触摸屏,当然,操作员的可以自己选择用传统方式,或者用触摸界面。
但这一切并不意味着大兵们得捧着说明书打仗。早在写代码之前,Raytheon就派出了开发团队和水兵们沟通,对系统的易用性进行确认,让水兵们对界面设计图纸进行反馈。
把这些设施全都整合起来的,就是那些运行在IBM的刀片机上的中间件。大部分设备都是商用零售的产品,传递着各种操作指令。但是对于某些特别关键的系统,比如导弹发射指令, 海军还是使用了特别开发的符合“公共对象请求代理架构” Common Object Request Broker Architecture标准的中间件来完成(包括无线电通讯系统也是由海军自行开发的CPRBA中间件完成的。)
虽然朱姆沃尔特号还不会很快出海打架,但是软件系统已经更新了很多次。每次测试的时候,Raytheon会请来海军人员,通过公司的模拟机进行实战演练。比如进行海空,对陆地攻击演练,测试结果将在下一次的升级中得到改进。软件系统会随着后面新朱姆沃尔特级驱逐舰的建造而不断升级。
但是朱姆沃尔特号上的技术不会只限于这几艘船,CDS系统将会成为美国海军“Aegis 舰载导弹发射导航系统升级计划”的一部分,而且在更多的未来部署中会得到应用。
考虑到海军在过去几十年在这套系统上的投入,和在这个过程中开发出来的新技术,可预见朱姆沃尔特号上的软件将会被更多地复用在其他领域。