我一开始也觉得奇怪,现在都啥年代了,工业控制、车载导航这些老设备上还跑着Windows CE系统,简直像穿越回了十年前。我最近刚好帮家里亲戚整了一个老旧的数控机床的维护,那玩意儿就是奔着CE去的,搞得我头大。本来想直接换个现代的触摸屏,装个Win10 IoT或者树莓派上去,结果一动手才发现,这潭水深着。
我先是找了个比较新的CE版本镜像,想给它刷进去,结果连驱动都找不到。这设备是零几年买的,那时候的硬件配置,CE是跑得飞快,可你要想给它加个新驱动,比如新的触摸屏驱动或者网络模块驱动,厂商压根就没出过适配新系统的驱动包。人家当年出厂时,那个驱动包就那么定了,要啥自行车?
接着我琢磨着,干脆把CE系统里那些核心的应用程序给提取出来,移植到新的系统上去。我把程序拆开,发现里面很多底层调用都是硬编码在CE的API上的。你想想,一个二十年前写的C/C++程序,里面直接调用的都是CE特有的内存管理、窗口消息循环这些东西。你移植到Linux或者Win10上,那不叫移植,那叫重写,起码得把核心逻辑全部扒一遍,重新写一遍界面和交互逻辑。
最要命的是那些老旧的定制化软件。有些工厂的生产线控制软件,那都是当时外包给几个工程师用CE SDK吭哧吭哧写出来的。这软件涉及到复杂的时序控制和硬件中断处理,代码量大,核心算法是人家的命根子。你让老板花大价钱去重写一套?那根本不可能。人家机器还在稳定运行,每年赚着钱,为什么要冒着停产的风险去换一个新系统?

我花了整整一个星期,才把那台机床的CE系统稳定下来,主要是把内存泄露的小毛病给堵上了。说白了,现在还在用CE,不是因为我们落后,而是因为那些设备和软件,它们已经和CE这个操作系统深度绑定到骨子里了。它们是工具,只要这个工具还能干活,谁会在乎它穿的是牛仔裤还是西装?这就是生产力,哪儿是随便能说换就换的。
