Oh, and the (Siemens, at least) trains also take like 30 minutes to boot up. And rebooting a train is often a way to fix problems. So delays can happen because a train is sitting on some important piece of track while rebooting.
This reboot time sounds absurd until you hear the tech stacks running on these trains. I don't remember the details, but it was real Rube Goldberg stuff. Something like System 7 code running on a soft PLS because the real PLS is EOL but the soft PLS can only run on Windows 95 so you run a virtual Windows 95 on top of some obscure hypervisor, and I think there might be another layer to the story as well. Just anything to avoid changing the actual code that runs the train because that would trigger a recertification process.
Especially golden because these operating systems are so good at doing GPIO. This could probably be replaced by a 0.1$ µC by a hobbyist, where the boot time is reduced by 99.999% while being much more robust as well.
Well, perhaps multitasking systems would even be worse at IO than DOS. Not entirely sure here...
Between the two, I'd choose MS-DOS based product all the time, especially if this was _just_ MS-DOS, no 3rd-party drivers.
MS-DOS is actually amazingly small by modern measures, it offers less features than many modern RTOS'es - it's basically file system, program loader and _maybe_ some interface points for 3rd party drivers. Display, audio, external devices - it's all up to your software to decide. Your MS-DOS display driver will never break because MS-DOS does not provide display drivers.
This is good for keeping things running as long as you don't need to upgrade hardware.
I don't see MS-DOS or Windows 3.11 as much as a problem as having 30 year old hardware. Bad capacitors on the motherboard and oxidated (rusty) contacts for memory and ISA cards can break the system, while the software itself can be ran in a virtual machine on newer hardware, if needed.
I ran MS-DOS in an airport for several years and it was just fine. Windows 2000 was available, but not needed for the task at hand, while a reboot was way faster with MS-DOS than any Windows at that time and a reset was the solution for 99% of the incidents, the rest was hardware-related.
In terms of replacements, a Raspberry Pi would be more than enough in terms of computing power, with some decent (non-microSD) local storage. Cheap, simple and I guess the cost of writing the MS-DOS app from scratch should cost about the same as that admin for 1 year.
Retro gaming enthusiasts have been creating mini-PCs first starting with industrial computers (386) built for CNC machines, and have recently been getting custom PCBs made like the Pixel x86: https://youtu.be/B8WfiRRvQXo?si=lbDZymYKATkT66pf
I guess these systems are certified, so changing the hardware with a platform that is basically an emulation (based on the first video) requires re-certification. At that point, changing the entire system to something more modern seems like the better option.
...this software is responsible for "the driver's cab display system on high-speed and regional trains [which] shows the driver the most important technical data in real-time."
I wish they showed the UI. I'd love to see if it's more elegant / information dense / etc.
I attended training at Andersen Consulting's (now Accenture's) global training center in St. Charles, IL in the '90s and their campus-wide schedule displays were driven by an Atari 800.
Invitation to what? Travel to Germany in person, break into train depot and try to sneak infected floppies in? No remote ports listening on DOS/Win3.11 boxes.
But the value in malware is not having a single system crash, but having a worm spread. I would assume these systems are directly connected to whatever system feeds them and not to anything else, to mitigate risk.
This reboot time sounds absurd until you hear the tech stacks running on these trains. I don't remember the details, but it was real Rube Goldberg stuff. Something like System 7 code running on a soft PLS because the real PLS is EOL but the soft PLS can only run on Windows 95 so you run a virtual Windows 95 on top of some obscure hypervisor, and I think there might be another layer to the story as well. Just anything to avoid changing the actual code that runs the train because that would trigger a recertification process.