Hacker News new | ask | show | jobs
by da_chicken 2909 days ago
An ATM doesn't need an RTOS. An ATM is a single user, single application system. It needs to respond to the user input more than to hardware connected to the system. What else are you doing that needs real time hardware? What's wrong with waiting for cards to be scanned, envelopes to be inserted, etc.? All that financial transaction stuff is important and time sensitive, but the ATM itself is just a relay for that. It's one step removed from a dumb terminal.

With BSD or SELinux, you've have to pay for Linux/BSD development, pay for Linux/BSD supported hardware and replacement hardware, pay for Linux/BSD support staff, etc. You're giving up commodity staff and commodity hardware. All of that is more expensive initially, and harder to maintain and replace generally, especially if 10 years from now the industry shifts to a new communication standard.

With Windows, you also know the OS itself has already been vetted by the US government (FIPS) and US banks (PCI) and almost certainly by your own government and pretty much everybody else's government. At least, if a vulnerability is found, it's going to affect everybody else, too. Your bank is unlikely to be sued for following industry common practice. So, yeah, running CentOS on Raspberry Pi on the one hand makes a lot of sense, but it's never going to fly past existing regulations. Doing something new is incredibly risky.

Remember, all those blue screens and program crashes that people complain about are almost always because the software or drivers or hardware is faulty, not Windows. The Windows kernel and Windows model might be designed in a way that you personally dislike, but it's not broken or non-functional. You'll experience the same issues on any OS.

1 comments

I agree with not needing an RTOS and the undesirability of rolling it yourself.

However Red Hat Linux has passed just as many government and banking standards (FIPS, PCI, etc) as almost any other vendor (MS, legacy UNIX), combined with a 7-10 year maintenance cycle (with additional being able to be negotiated, if your the scale of a large bank / ATM vendor). SUSE, Oracle and other vendors could provide the same guarentees and other then having developers understand Linux / Unix.