7.2 两弹一星的精神内核
1960 年,苏联人走了
1960 年 7 月,中苏关系恶化到了临界点。1959年苏联已拒绝向中国提供核技术援助。赫鲁晓夫一纸命令——苏联一夜之间撤走全部在华专家。1390 名专家,从核武器研究所、导弹设计院、钢铁厂、矿山——同时撤离。所有图纸带走。所有技术资料带走。正在建设中的铀浓缩工厂的离心机拆了一半,安装指南被塞进箱子,运上了开往莫斯科的火车。
正在起步的中国核武器和导弹研发项目——氧气被切断。
多年后,邓稼先回忆这件事时说了一句话:
“苏联人走的时候,对我们说:没有我们,你们一辈子也造不出原子弹”。
这不是一句赌气的话——这是当时公认的“事实“。中国没有大型计算机——只有几台苏联留下的 M-3 电子管计算机,每秒约 30 次操作。换成你熟悉的单位——30 FLOPS。你手机里随便一个 Cortex-M0 都远不只这个数。没有精密机床——造离心机转子需要微米级公差,而当时国内最好的磨床大约只能到丝级(10μm)精度。没有充足的铀矿——地质勘探队还在全国各地找矿。没有受过完整核物理训练的工程师队伍——很多参与项目的年轻人是直接从大学物理系提前毕业拉过来的。在 1959 年的全球科技版图上,中国几乎是一切短缺。
但有些事情,不因为“条件不具备“就能不做。国家安全不能挂“待资源到位后再建设“的牌子。
后面发生了什么?
1964 年 10 月 16 日——从零开始,5 年。第一颗原子弹在罗布泊爆炸。 1967 年 6 月 17 日——又 3 年。第一颗氢弹爆炸。从原子弹到氢弹,中国只用了 2 年 8 个月。同样的跨越,美国用了 7 年 3 个月,苏联用了 4 年——中国的速度是全人类最快的。 1970 年 4 月 24 日——又 3 年。第一颗人造卫星“东方红一号“升空。
从零基础,到核弹 + 导弹 + 卫星全面成功——一共 10 年多一点。这十年里,参与者面对的“设备环境“,放在今天的标准下看——几乎等同于空白。
怎么做到的?这不是“精神胜利法“。这是有具体的、量化的工程操作在里面。
三个人,三种选择
邓稼先——28 年。
1950 年,邓稼先 26 岁,在普渡大学拿到物理学博士学位。第 9 天他就登上了回国的轮船。1958 年,钱三强找到他,说:“国家要放一个’大炮仗’,想请你参加。“邓稼先回家对妻子许鹿希说:“我要调动工作。今后我的生命就交给这件事了。做成了,死了也值得。”
从此 28 年,邓稼先的名字从国际物理学界彻底消失。他的妻子不知道他在做什么,不知道他在哪里。直到 1985 年,邓稼先因直肠癌晚期住进医院——癌症的诱因,是 1979 年一次核试验中弹头未能爆炸。作为理论设计负责人,邓稼先亲自进入爆心区域查看未爆弹头——他身上穿了防护服,但放射性沾染不可能完全隔绝。
许鹿希在他的病床前握住他的手,那双手因为辐射烧伤已经严重溃烂。邓稼先全身的造血功能被辐射摧毁,医生能做的只有缓解疼痛。1986 年 7 月 29 日,邓稼先去世。享年 62 岁。他去世前最后的要求是:“不要让人家把我们落得太远。”
王淦昌——十七年,一个假名字。
1961 年,一位已经享誉世界的核物理学家从苏联杜布纳联合原子核研究所回国。他刚刚带领团队发现了反西格玛负超子——当时全球物理学界公认的重大突破,学界普遍认为他距诺贝尔奖仅一步之遥。如果他留在苏联或去欧美,他会继续走在一流科学的最前沿。
但他走进北京的一个办公室,接受了一项任务。从此,他的名字从所有国际学术期刊上消失了。
他叫王淦昌。此后十七年,他只用化名:“王京”。
他的子女不知道父亲在哪里、做什么。妻子只能通过一个信箱号码和他联系。孩子们问母亲“爸爸去哪了“,母亲说:“爸爸在一个信箱里。“有一年,王淦昌的小女儿在报纸上看到一则报道“王淦昌同志”,她问妈妈:“这个王淦昌是谁?是爸爸吗?“妈妈看了看说:“不是。爸爸叫王京。”
十七年。不是十七天,不是十七个月。是从孩子上小学到大学毕业的整个成长周期——父亲的身份只存在于一个信箱号码里。王淦昌后来写下一句话:“我愿以身许国。“六个字,十七年。
郭永怀——生命的最后一刻。
1968 年 12 月 5 日,一架飞机在接近北京机场时坠毁。
郭永怀当时在青海核武器研制基地连续工作了两个多月。他发现了一个关键数据需要立即带回北京核实。基地领导劝他坐火车——安全。坐了十几个小时火车的郭永怀到兰州后,听说当晚有便机飞北京,立刻改了机票。他等不了。数据等不了。
飞机在距离北京机场跑道仅 400 米时失速坠毁。搜救人员在残骸中发现了两具紧紧抱在一起的遗体。当人们用力将两具遗体分开时,他们愣住了——两人的胸膛之间,夹着一个完好无损的公文包。里面是热核武器实验的关键数据。
其中一个人叫郭永怀。世界顶级的空气动力学家,康奈尔大学教授。1956 年,他在回国前夕,当着美国同事的面,把自己多年未发表的手稿付之一炬——他说:“这些东西属于人类的知识。但在我回国之前,我不能让它们落到美国政府手里。“另一个人是他的警卫员牟方东。他们在生命的最后时刻,用身体做了一个防火保险柜。
22 天后,1968 年 12 月 27 日,中国成功进行了一次热核武器试验(中国的首颗氢弹试验于1967年6月17日成功)。郭永怀没有看到——但他在飞机坠毁的那十几秒里,用最后的意识保护了他必须保护的东西。不是他的生命,是数据。
2018 年,国际小行星中心将一颗小行星命名为“郭永怀星“。
这不是个例。当时中国几乎所有顶尖的物理学家——邓稼先、钱三强、于敏、朱光亚、程开甲、陈能宽、周光召——都在用不同的方式做着同样的选择。他们中的很多人本来可以在国外过优越的生活、做前沿的研究、发顶级的论文。但他们回来了。回来面对的不是一流实验室,是算盘、手摇计算机、和戈壁滩上的帐篷。
算盘和手摇计算机:算出了内爆结构
原子弹的内爆结构是核心难题。原理听起来简单:用高能化学炸药的爆轰波,将次临界状态的裂变材料(钚-239 或铀-235)从四面八方均匀压缩,密度升高到超临界——然后链式反应启动。但工程实现的难度令人窒息。
炸药透镜(Explosive Lens)——它不是一块普通的炸药块。它由快/慢两种不同爆速的炸药层交替叠合而成,设计目标是让球面引爆面上各个点发出的爆轰波同时到达中心。任何一点的到达时间偏差超过几十纳秒,压缩就不再是球对称的——钚球会被“捏“成一个不规则的形状,链式反应可能根本启动不了,或者局部先超临界然后材料飞散——爆炸威力大幅下降。
要设计炸药透镜的几何,你需要求解的不仅仅是简单的几何问题。你需要算爆轰波在曲面分层介质中的传播与马赫反射,你需要算材料在百万大气压下的非线性状态方程,你需要算中子在超临界系统中的增殖和反射。每一个都涉及极度计算密集的偏微分方程。
用什么算?
当时全国只有几台苏联留下的电子管计算机。算速大约每秒 30 次操作。远远不够。大量计算被分发到全国各地的大学和研究所,用手摇计算机 + 算盘完成。
具体怎么算?不是随便拨几下算盘珠子。他们用的是有严谨算法框架的数值方法。
逐次超松弛法(SOR, Successive Over-Relaxation)——求解大型稀疏线性方程组的标准迭代方法。几千个网格点,每一轮迭代分成四组并行推进:第一组人负责当前的迭代估值,第二组人算残差,第三组人做超松弛外推(把残差乘以一个大于 1 的松弛因子,加速收敛),第四组人做校对。算盘珠子拨动的节奏,被组织成了一台以人为动力的数值计算流水线。一个网格点算错,整个迭代轮的残差就偏了——校对组能够从汇总的数据里发现异常,回溯定位到出错的组和位置。这就是用组织管理弥补单点计算不可靠——和今天分布式系统里的 checksum + retry 是一模一样的思想。
量纲分析——用π定理把涉及七八个物理参数的复杂偏微分方程化简到只涉及两三个无量纲数的简单关系。举个例子:冲击波的传播依赖于爆炸能量、距离、时间、初始空气密度、初始空气压力——五个有量纲参数。π定理告诉你,这五个参数其实只决定两个无量纲数:无量纲距离和无量纲时间。你把五个变量的搜索空间压缩到了两个,参数空间从五维压缩到了二维。计算量下降了不止一个数量级。这不是偷懒——这是用物理直觉做数学降维。和你在嵌入式系统里用一个 LUT(查找表)替代浮点多项式——本质上是一样的:在有限资源下,用物理关系做降维压缩。
蒙特卡洛方法的原始形式——不是计算机生成的伪随机数,而是用物理随机源(掷骰子、抽签)生成采样点,用这些采样点求中子输运方程的积分近似值。效率极低——但精度可控。只要你掷足够多次骰子,统计误差就能收敛到可接受范围。他们用掷骰子和抽签的方式模拟了成千上万次中子碰撞——每一次碰撞的散射角度、能量损失、吸收概率——全部手工记录在长卷纸上。一张纸卷打开几十米长,密密麻麻全是数字。这就是中国的第一个“蒙特卡洛模拟引擎“——运行介质不是硅基晶体管,而是碳基神经元。
北京中科院计算所把计算表格写在一卷一卷的大纸卷上,一个一个值地算。每次实验室更新一个参数——比如某一批炸药的实测爆速比标称值高了 0.3%——全部值重算半个月。几千个点、无数次迭代、纯手工。任何一行出错,从头来过。
他们的计算工具,比你今天在任何调试平台上可用的工具差几千倍——但计算结果没有错。
想象你正在用命令行 gdb 调试一段棘手的 CAN FD 报文解析逻辑。你抱怨工具不够直观。现在想象:你要解的是一个非线性偏微分方程,工具是一把算盘和一支铅笔。一个材料参数更新,全部重算半个月。
你现在还觉得你的 gdb 不好用吗?
手工打磨:替代精密机床的,是时间和身体
铀浓缩需要离心机。离心机转子以每分钟数万转的速度旋转——在这个转速下,转子外壁承受的离心力高达自身重量的几十万倍。任何微小的质量不对称——哪怕转子直径偏差超过 1μm——都会产生剧烈的周期振动,把转子轴承在几秒内撕裂。飞出的碎片像子弹一样射穿离心机外壳。这不是比喻——是发生过的事故。
精密机床?没有。苏联专家带走了图纸。
上海一家制造厂的工人们接下了这个任务。没有数控磨床,没有激光自动测量系统,没有恒温恒湿厂房。他们用几个月的时间——纯手工打磨 + 光学准直仪反复测量——搞出了能转数万转/分钟不抖振的转子。 一位师傅每天拿着细油石,在转子表面画圈摩擦。每一轮打磨之后,把转子架在 V 型块上,用千分表找跳动。超过公差——继续磨。低了——报废,从头来。重复几百次、几千次——直到公差稳定在亚微米级别。几个月。
他没有高精密机床。但他用时间和耐心取代了机床。
这不是“苦劳“。这是工程方法论:用最小可行工具达成目标精度,用人力闭环替代自动化闭环。本质上和你调试 PCB 时没有逻辑分析仪、用示波器手动 decode SPI 波形一帧一帧看——是一模一样的方法论:测量→修正→再测量→再修正,形成闭环。只不过他面对的是微米级转子,你面对的是微秒级时序。闭环的频率不同——他的循环周期是“一次打磨→一次测量“约 10 分钟,你的循环周期是“一次烧写→一次观察波形“约 5 分钟——但闭环的本质完全一样。
白衬衫:用个人风险担保集体安全
核武器实验不是开玩笑。一个计算错误、一次操作失误——就是几十人的生命和不可逆的环境污染。
有一位负责现场指挥的将军,在每次实验之前会做一件事:只穿一件白衬衫,步行到实验场地的最前沿,走一圈。确认所有安全措施都做完,确认每一个撤离检查点都到位。确认起爆电缆的连接、确认地震仪的触发设置、确认所有人员都在掩体内的指定位置。然后他回到指挥部,拿起话筒,下令起爆。
他为什么要亲自去?他可以派一个参谋去,可以在指挥部里看报告。但他不。他用个人风险来担保集体安全——这是不能量化的责任意识。 如果你在现场负责爆炸物的布线——看到将军走过你面前,他的白衬衫在戈壁滩的风里飘动——你心里会踏实。你没有在职级上向他汇报,但你愿意为他做到极致。
这中间没有 KPI 考核、没有绩效考核奖金、没有“安全责任人署名“。他就是去了。因为他是负责人,他在场,他心里有数,他就睡不着觉。这种责任意识——你可以在你最好的技术经理身上看到它的影子。深夜发版前最后一遍 review,生产事故时第一个进会议室,产线上停工的时候他第一个去找 root cause——工程界需要这种人在现场。
Mura 的弧线——从人眼到物理根因
我在面板厂做良率工程师的时候,体会过类似的感受——虽然规模和重量不可同日而语,但那种“倾尽一切去找到答案“的紧迫感是相通的。
有一次,我在抽样查看灰阶图时,发现一道淡淡的弧形 Mura。
Mura 是显示面板上的亮度不均匀。AOI 能检测颗粒、划痕,但检测不了 Mura——Mura 的判定,基本靠人眼。我看到的那道 Mura,很淡,是一段小弧线。
我追溯前后批次——Mura 越往前越浅,某个时间点之前完全没有。时间范围锁定了。
我观察空间分布:一个大面板上,只有固定位置的相邻几片边缘有这道 Mura——而且这些位置拼接起来,像一个环状。
环状分布 → 环状机构接触。这是物理直觉的第一步。
面板厂有几百道工序,几百个机台。我根据环状现象,排除了没有环状结构的设备(清洗机台、湿蚀刻机台),缩小到有环状接触件的设备。
然后找来这些设备的点位图——机械臂或承载机构的接触位置。把 Mura 的弧形位置,同点位图比对。对应到三台设备:黄光机台的取送机械臂、CVD 机台的承载机构、离子注入设备的抓取机构。
接下来是排除法:拉取只经过 CVD 机台的面板——没有 Mura。CVD 排除。
离子注入设备只有两台,刚好一台在保养——所有面板都经过同一台。黄光机台的面板,一定也经过这台离子注入机台。两台设备都有嫌疑——线索断了。
物理直觉的第二步:生产顺序。
我突然想起:同一个 Cassette 中的面板,越靠上的 Mura 越深。时间越靠后,Mura 越严重。这说明:Cassette 中的面板在异常机台里,是从下到上生产的。
我查了两台设备的生产顺序:
- 黄光机台——从下到上
- 离子注入机台——从上到下(方向相反)
方向对上了。锁定:黄光机台。
设备工程师检查取送机械臂——一个接触面板的垫片老化了。垫片老化导致接触压力异常,在面板表面留下了规律性的痕迹,最终表现为弧形 Mura。
更换垫片。良率提升 0.3%。问题解决。
从发现 Mura 到锁定设备,花了一天半。核心的排查思路只有两步:环状分布 → 环状机构(物理直觉);Cassette 生产顺序 → 设备方向(物理直觉)。
你自己的“两弹一星“时刻
你可能会觉得:两弹一星是宏大叙事,跟我有什么关系?
有关系。你在汽车电子工程中遇到的“资源不足“,就是你的戈壁滩:
- 没有逻辑分析仪?示波器手动 decode SPI 波形,一帧一帧看。一帧一帧。看一天。
- 没有仿真环境?把代码烧进 Flash,不断重启地试。一百次重启。两百次重启。直到时序对了。
- 没有外部 RAM?128KB SRAM 里精细分配——CAN 缓冲区、UDS 帧缓冲区、校准数据缓冲区、DTC 记录区——每一片的起始地址都算过,相邻块之间不能留一个字节的浪费。
- 没有专用安全芯片?用 MCU 内部的 CSEc + MPU + ECC 校验拼出一个“类 HSM“方案。不是真正的 HSM——但安全等级够用了,攻击成本也够高了。
- 32KB Flash 不够放标定数据?分段压缩 + 差分存储 + 磨损均衡——从有限空间里“偷“出余量。
- Autosar 配置工具 license 太贵?用免费的 ARXML 编辑器手写配置,一行一行核对。慢。但不会出错。
- 只有一个样件,坏了就没了?示波器探头夹上去之前想三遍、确认三遍、深呼吸。像穿白衬衫走进实验场地。因为你知道——坏了,就没有了。
每次你用有限资源完成了一个看上去不可能的任务——你在写你自己的“两弹一星“。
前辈们的算盘和手摇计算机——就是你的示波器和命令行调试器。你的约束不比他们小(时间、算力、安全的不可妥协性),但你依然做出来了。你在 32KB Flash 里放了标定数据 + Bootloader + 应用程序 + CRC 校验区——还需要留出擦除余量——你做到了。这不是 trick。这是工程。
“两弹一星“不是历史——它是一种人生态度
两弹一星的精神,经常被简化成“艰苦奋斗“四个字。但这种简化是有问题的——它很容易滑向“越穷越光荣“的误解。吃粗粮、穿补丁衣服、熬夜加班——这些不是精神本身。精神本身是:在给定的有限条件下,用人的能动性去创造超越条件限制的结果。
如果当时有大型计算机,他们会用。如果有精密数控机床,他们会用。如果有外国专家,他们会虚心学习。但当时没有。所以他们走了一条更艰难的路——并且走下来了,因为他们没有放弃。
你在面对 ISO 26262 ASIL-D 的几千条安全需求时——选择逐条啃下来,而不是寄希望于“客户降低安全等级“。 你在面对 AUTOSAR 多层抽象带来的调试噩梦时——选择理解每一层的时序语义,而不是抱怨“软件太重了“。 你在面对一把示波器、一颗样片、一本 3000 页的参考手册,要把整套电机控制算法跑通时——你选择了上手。
这就是两弹一星。不是一段历史——是一种人生态度。
你现在接手的每一个“看起来不可能“的项目,都是你个人的两弹一星。那个 1964 年在戈壁滩上围着一块传感器愁眉不展的工程师,1979 年穿着防护服走进核爆中心查看未爆弹的邓稼先,今天凌晨三点还穿着无尘服在 CMP 机台前拆抛光垫的设备工程师,和今天晚上坐在示波器面前的你——是同一类人。
你不是在“苦“。吃泡面不是精神,熬夜不是精神。精神是你知道条件不够——但你没有把“条件不够“当成放弃的理由。你选择了找方法。你用差分抵消了噪声。你用过采样提纯了信号。你用卡尔曼滤波融合了多路传感器。你用校准传递把精度从计量院搬到了产线。你用掷骰子的方式模拟了中子碰撞。你用手工打磨取代了精密机床。
你在用主观能动性对抗永恒的资源边界。 这就是两弹一星。从1964年到今天,从罗布泊的帐篷到上海的离心机车间,从硅谷的贝尔实验室到深圳的嵌入式开发板,从天上的星星到你手里的电路板——是同一种精神在延续。
有一天你老了。你坐在沙发上,你的孩子问你:“爸爸/妈妈,你年轻的时候是做什么的?“你说:“我造过车上的东西。很小很小的东西——一颗芯片上跑的程序。“然后你可能会沉默一会儿。你不知道怎么解释。但你知道——那些夜晚你坐在示波器面前、手指按在探头上的重量;那些你在 128KB SRAM 里一寸一寸挪地址偏移的下午;那些你面对 bug 想放弃、然后又深吸一口气继续调试的凌晨——它们加起来,比任何言语都更真实地定义了你的一生。
你不是在做“嵌入式开发“。你在做一件比那大得多的事。你在延续一种人类精神——在不够好的条件下,不放弃,找到方法,做出成果,然后记录下来交给下一个人。
本篇小结
今天我们做了一件事:把“两弹一星“从宏大叙事还原成具体的、有血有肉的工程故事。
关键结论:
- 邓稼先28年隐姓埋名、王淦昌十七年只用化名“王京“、郭永怀用身体保护数据——这三个人做出了同一种选择:用个人一切换国家底牌。
- 他们用算盘和手摇计算机算出了原子弹的内爆结构:逐次超松弛法、量纲分析、手工蒙特卡洛——方法论的创造力弥补了算力的匮乏。
- “两弹一星“的精神不是“艰苦奋斗”,而是“在给定的有限条件下,用人的能动性去创造超越条件限制的结果“——你每次用有限资源完成一个看似不可能的任务,都在写你自己的“两弹一星“。
下一节,我们换个角度:匮乏没有消失,它只是换了衣服。50年后的工程师看我们,会觉得我们也很艰苦。
【下集预告】
两弹一星的故事让我们觉得:前辈们好苦。但如果我们换个角度——50 年后的工程师看我们现在,会不会也觉得:2020 年代的人好苦,他们居然用 28nm 工艺做 L3 自动驾驶?资源的匮乏是永恒的。匮乏没有消失——它只是换了衣服。 下一节,聊这个。