基于Linux民用系统的美海军最新战舰
Junius @ 2013.10.19 , 04:14 下午[-]
美国海军第一艘朱姆沃尔特级(Zumwalt)导弹驱逐舰,「朱姆沃尔特号」,战列编号 DDG-1000 正在船坞内涂装,这艘船各方面都是空前绝后地,但是舰载的软件系统,却是民用的。
当第一艘朱姆沃尔特级导弹驱逐舰在去年下水,它就成为了美海军船队里最特别的一艘。造价 3.5 35亿美元的新战舰被设计成耐用、能活,而且火力强劲的新一代驱逐舰,打包了最新的时尚高科技元素。不过在它大脑中枢的数据中心里,安装的却不是定制的硬件,而是市面上就能买到的民用货,装着 Linux 系统,和 600 万行新开发的代码。
在10月10日,原文作者跑到了罗德岛,访问位于朴次茅斯的「雷神海军武器研发中心」。在那里,工程师们正在测试组装朱姆沃尔特的核心电子设备,并且准备应用在下一艘该系列的新船,麦克·蒙苏尔号上,它已经造的差不多了。在DDG-1000开发团队的带领下,我有幸参观了一下系统的核心部分——完全模仿舰上环境的测试环境,指挥官和官兵在这里练习操作舰载侦查设备、导弹发射器、枪炮和其他系统设备。
20年前,我(原文作者)在离雷神公司数英里的海军军官学校里就学会了如何当一名海员。但是在朱姆沃尔特的中央控制室内,感觉这里更像是科幻小说中企业号的舰桥上。所有的控制界面都是触摸屏的,软件接管了所有的操作职责,中央正前方的大屏幕显示着所有的航线、气象、陆地等航线关键数据。
貌似这艘新船的第一任舰长名叫 James Kirik((⊙o⊙)…是的,他真的叫 Krik )。但是如此依赖IT设备操作的高科技军舰,我觉得最好再配一个名叫 Vint Cerf 的首席工程师为好。
民用变军用
[-]
大箱里的数据中心
在过去,你不可能拿民用设备来承担导弹发射这样要紧的任务——当我随着美海军爱荷华号出海的时候,在开火之前,必须关掉所有电脑,以防剧烈的冲击和震动将摧毁计算机系统。基本上普通 PC 系统是没法承担军事任务的。但定制的军用设备意味着更加高昂的开发和维护成本。
朱姆沃尔特号上的系统则完全基于民用硬件——大部分是跑着「红帽(Red Hat)」Linux 系统的 IBM 刀片机 —— 然后塞进一个特别强化加固的机房里。这个加固的机房名叫「模块化电子附件 Electronic Modular Enclosures (EMEs)」,雷神公司建造了 16 个这样的打包加固的数据中心。
EMEs 有 35英尺长,8英尺高,12英尺宽,16 个 EMEs 有超过 235 个机架。交付使用前,它们都在这里进行安装配置,完成测试。 EME 追求的就是成本,而且这让雷神公司在安装前就能完成集成系统的开发。雷神 DDG-1000 的软件开发长 Tom Moore 说:「大部分的钱都花在船厂建造上,而且我们进行舰上安装调试的时间很紧张。」
每一台 EMEs 都安装了独立的防震缓冲、电源保护、水冷系统和电磁屏蔽系统,以防止受到其他大型雷达电子设备的干扰。
所有的 EMEs 都被集成进了全舰的电子系统,朱姆沃尔特的舰载网络系统,拥有多个光纤和铜缆链接的分区的网络,由 TSCE(全舰计算平台) 冗余路由控制系统负责连接整个舰船系统,包括 内部和外部通讯、武器、动力、感应探测设备等等,通过 TCP 和 UDP 网络协议通讯。几乎所有的人员联络都是通过IP电话(还有一些备用的,老式电话机。)
[-]
朱姆沃尔特 号上的网络通讯架构图
朱姆沃尔特号上也具备无线通讯能力,但是雷神公司没打算和我讨论这方面的技术细节,所以我也不清楚这是基于何种「无线方案」,它的作用就是让那些需要来回移动工作的人员可以和总部联系。
船上还有分布在很多层面上的大量的「数据记录程序」,它们没有通过IP网络连接起来的,而是通过单片机嵌入式系统,Lynx OS —— 一种实时 Linux 系统连接起来。被称之为「分布式自适应处理系统( Called Distributed Adaptation Processors)」,缩写是 DAPs,通过这些DAPs,再把动力系统,火力压制系统,导弹发射系统和无线电以及卫星通讯系和主网络连接,让用户通过客户端控制。
它们时刻都在勾引我发射导弹
[-]
朱姆沃尔特的模拟控制舱,拥有和舰上一模一样的尺寸和布置,在朱姆沃尔特上的控制舱内,还会有一个二层楼提供给行动指挥部门
现在我正看着的,就是船上控制中心的模拟舱。这里不光是盯着屏幕看,听着船长吼——船上一切的一切操作,都可以在这里完成,从火炮到导弹发射。在朱姆沃尔特号上是没有「无线电通讯室」的;所有联络都被到了这里。火炮的操作完全在显示器前面完成,不会有炮手在炮塔里操作。理论上,这艘船的航行控制也可以在这里完成——这艘船完全是电脑导航的,而不是舵手。这一切,都在一个统一的平台上完成。
[-]
这是雷神公司开发的 Mark 57 垂直发射系统,同时兼容反舰、对空和巡航导弹的发射。通过舰载网络系统与控制中心连接。
那边由三个显示器的控制台,叫做CDS(常规显示系统 Common Display System)(听操作它的人的发音是 "keds"),主机是英特尔架构的主板和四核CPU。这让海员的黑话「toe buster(让你玩命跑腿的混蛋)」有了新的含义,就算是端坐在舰桥上的指挥官和执行官面前都有一个 CDS 工作站。
每一个 CDS 工作站可以运行多个Linux虚拟机客户端,他们都宿主于 LynuxWorx 的 LynxSecure 系统上,它拥有自己独立的系统内核,在 CDS 系统中起到一个超级管理员的角色。使各个子系统在一个统一的安全平台上进行通讯。这套系统的开发总监 Robert Froncillo 告诉我说「所有的在岗的监控者,都可以在任何一台CDS上调出自己的系统界面。」可能你不觉得这有什么好处,但在以前的船舰上,所有武器系统的操作界面都是独立开发的,都有自己的处理器或者系统设置和界面,这让操作人员没法坐在一个地方,同时进行多个任务。CDS工作站有普通的USB接口,可以接入外围设备(比如轨迹球或者特别的控制台。)而且都是大触摸屏,当然,操作员的可以自己选择用传统方式,或者用触摸界面。
但这一切并不意味着大兵们得捧着说明书打仗。早在写代码之前,雷神就派出了开发团队和水兵们沟通,对系统的易用性进行确认,让水兵们对界面设计图纸进行反馈。Froncillo 说:「有个炊事班的老哥告诉我们,他可不想看什么操作教程。」
[-]
朱姆沃尔特号控制舱的三维视图,注意还有一个二层楼给指挥官,空军部门以及其他联席行动部门。
把这些设施全都整合起来的,就是那些运行在IBM的刀片机上的中间件。大部分设备都是商用零售的产品,传递着各种操作指令。但是对于某些特别关键的系统,比如导弹发射指令, 海军还是使用了特别开发的符合「公共对象请求代理架构」 Common Object Request Broker Architecture标准的中间件来完成(包括无线电通讯系统也是由海军自行开发的CPRBA中间件完成的。)
下一艘新船
[-]
在朱姆沃尔特号身后,是正在巴斯钢铁厂建造的 DDG-1001, 麦克·蒙苏尔号,已经完成了 60%。
虽然朱姆沃尔特号还不会很快出海打架,但是软件系统已经迭代了 6 次。当第五次测试的时候,雷神请来了更多的海军来测试系统,通过公司的模拟机进行实战演练。Froncillo 说:「我们进行了海空,对陆地攻击演练,测试结果将在第 6 次升级中得到改进,并在试航前,部署第 7 次迭代的系统,正式服役前,还会再部署一次更新。软件系统会随着后面新朱姆沃尔特级驱逐舰的建造而不断升级。」
但是朱姆沃尔特号上的技术不会只限于这几艘船,CDS系统将会成为美国海军「Aegis 舰载导弹发射导航系统升级计划」的一部分,而且在更多的未来部署中会得到应用。
考虑到海军在过去几十年在这套系统上的投入,和在这个过程中开发出来的新技术,可预见朱姆沃尔特号上的软件将会被更多地复用在其他领域。
翻译到一半的时候,有人问我,如果它的数据中心被打中不就完蛋了。我想了想(顺便逛了一圈军迷论坛),我觉得这种船,真打仗的时候你根本连他的浪花都看不见,它就已经盯着你好久了……作为敌军,你是很难活着看见它的机房的。
本文译自 arstechnica,由 Junius 编辑发布。
PREV : 丰田因蜘蛛问题召回旗下轿车
NEXT : 科技改善生活:用Kinect帮盲人纠正瑜伽姿态