坦克几乎不在核心控制链路使用Windows,核心原因并非不稳定,而是Windows无法满足坦克对系统状态可预测性和断电韧性的要求,坦克只需要确定可控的系统。 ## **1. 美军巡洋舰曾因Windows系统错误停摆** 1997年美国海军约克城号导弹巡洋舰,运行Windows NT 4.0的终端出现未捕获的除以零错误,导致整个数据库崩溃,最终推进系统停摆,在海上漂流超过四小时。 ## **2. 坦克不用Windows并非单纯因为稳定性不足** 微软曾推出Windows实时版本Windows CE,也做过内核防护,调优后的Windows Embedded崩溃率并不比部分Linux发行版差。 ## **3. 坦克核心需求是极致的状态可控与断电韧性** 坦克工作环境存在剧烈震动、强冲击、电磁干扰以及无预警瞬间断电,无法容忍Windows因后台复杂状态机制,断电后可能出现的系统损坏、启动修复等待,这类情况在战场会导致车组阵亡。 ## **4. 坦克核心系统普遍采用极简可控方案** 主流坦克的核心火控与驱动控制,大多使用VxWorks、LynxOS或裸机极简微内核方案,通电百毫秒内即可启动,断电无残留状态损坏,再次通电可快速恢复工作。 ## **5. 极端场景技术选型优先保障最坏情况的可靠性** 桌面Windows靠复杂度屏蔽硬件差异降低开发门槛,坦克愿意付出高定制成本,换取内核极致简单可控,极端场景技术选型拼的是故障后死得透明、复活够快,而非功能复杂度。
为什么坦克几乎不用 Windows?
2026-08-08 08:17

为什么坦克几乎不用 Windows?

本文来自微信公众号: 宇众不同的露萱 ,作者:宇众不同的露萱,原文标题:《为什么坦克几乎不用 Windows?》


早期刚入行那几年,我和不少同行一样,有个挺幼稚的偏见。


每次在新闻里看到某个军用装备、ATM机或者地铁闸机弹出一个Windows蓝屏,大家就会在群里嘲笑一番:“这都什么时代了,怎么还在用Windows?”“这种要命的系统,用Windows简直是开玩笑。”


后来我读到过一个真实的军工事故。1997年,美国海军的“约克城号”导弹巡洋舰在海上试验时,因为一名船员在一个跑着Windows NT 4.0的终端里输入了一个“0”,导致了除以零错误(Divide-by-zero)。这个未被捕获的异常一路向上穿透,把整个数据库给搞崩溃了,最终导致整艘巡洋舰的推进系统停摆,在海上漂了四个多小时。


这个例子后来被各种技术文章引用,用来证明“微软的系统不能用于严肃的军用场景”。


但我后来去查现代主战坦克的火控和战术终端资料,发现事情根本没那么简单。


比如美军M1A2“艾布拉姆斯”主战坦克的IVIS(车载信息系统),或者德国“豹2”的指挥控制系统,不仅不用Windows,甚至连Windows Embedded(后来的Windows IoT)都极少出现在核心控制链路里。


很多人以为坦克不用Windows是因为蓝屏、是因为不稳定、是因为不实时。


但其实,Windows早期做过实时版本(比如Windows CE),微软也花了大力气做过内核防护。如果我们纯粹从软件崩溃率的角度来看,调优过的Windows Embedded并不比某些Linux发行版差。


真正让坦克把Windows排除在外的,是一个很多程序员在写代码时几乎不会考虑的问题:


系统状态的可预测性,以及极端硬件环境下的“断电韧性”。


我们可以试着想象一下主战坦克在战场上的真实工作环境。


坦克不是数据中心。数据中心有双路冗余电源、UPS、恒温恒湿的机房,甚至有运维人员随时待命。


而坦克里的计算机要面对什么?


发动机剧烈震动、主炮发射时的强物理冲击、电磁干扰,以及最致命的一点:不规律的瞬间断电与电压骤降。


当主炮开火的一瞬间,或者坦克掉进掩体、电源线断开时,车载计算机可能会在没有任何警告的情况下,直接失去电力。


这时候,Windows的架构设计就显露出一个致命的致命伤:巨大的状态隐藏与复杂的后台机制。


Windows核心的设计思路,是为“人”服务的。为了给用户提供良好的交互体验、设备即插即用(PnP)、复杂的注册表配置、系统恢复点以及延迟写入的文件系统缓存,Windows在后台维护着庞大且密不可分的状态机。


你在Windows上点一个关机,内核需要依次通知服务、刷新磁盘缓存、写入注册表状态、保存会话。


如果在写入注册表或者文件系统分配表(FAT/NTFS)的微秒级瞬间突然断电,会发生什么?


在普通PC上,大不了下次开机花几分钟走一遍磁盘检查(Chkdsk),或者弹出一个修复界面。


但在战场上,如果主炮刚打完一发炮弹,系统断电重启,车载电脑亮起来,屏幕上显示一行:


Updating your system,please do not turn off your computer...


或者直接卡在磁盘检测界面等待按F1继续——这种代价是整个车组的性命。


Windows很难做到真正意义上的“Stateless”(无状态)。它的内核天生就希望记录东西、保存状态。即使后来微软推出了UWF(统一写入筛选器),把系统盘强行变成只读,把写入重定向到RAM,但这种覆盖在复杂内核上的“补丁”,依然无法改变Windows庞大的启动依赖链。


坦克需要的是什么系统?


你去翻看主流坦克的电子系统方案,会发现它们的核心火控和驱动控制,大量采用了VxWorks、LynxOS,或者非常底层的Bare-metal(裸机C/C++加上极简的微内核)。


这些系统有一个共同特征:没有历史包袱,也没有“智能”的后台逻辑。


给它通电,100毫秒内必须完成内核加载并进入主循环;直接拉闸拔掉电源,系统瞬间死亡,没有任何缓存未写入,没有任何状态损坏;下一次再通电,它依然可以在100毫秒内恢复到上一秒的工作状态。


它不需要注册表,不需要复杂的驱动仲裁,甚至不需要桌面和窗口管理器。


这种“死得干脆,活得极快”的特性,看似极其原始,却是在物理世界极其恶劣的干扰下,唯一能给人类安全感的东西。


微软在桌面领域的成功,建立在“用海量的硬件资源和软件复杂度,去屏蔽底层的硬件差异,从而降低软件开发门槛”这个逻辑上。


但坦克的逻辑完全相反:它愿意付出极高昂的定制开发成本,去换取内核极致的简单与可控。


我后来在做工业控制项目的时候,有一次现场设备因为频繁非法断电导致嵌入式系统文件损坏。当时有工程师提出直接换上Windows IoT,说开发快,界面好做。


我当时就想起了坦克的火控系统。


我们很多时候太依赖现代操作系统提供的便利了。我们习惯了自动垃圾回收、习惯了后台服务自动重试、习惯了操作系统帮我们处理掉绝大多数硬件异常。


但如果一个系统要被用在最极端的场景里,技术选型最终拼的往往不是“它能做多少复杂的逻辑”,而是“当最坏的情况发生时,它死得够不够透明、复活得够不够快”。


Windows统治了桌面,不是因为它足够简单,而是因为它足够包容。而坦克不需要包容,它只需要确定。

AI行业信号频道: 前沿科技
本内容由作者授权发布,观点仅代表作者本人,不代表虎嗅立场。
如对本稿件有异议或投诉,请联系 tougao@huxiu.com。
正在改变与想要改变世界的人,都在 虎嗅APP