Today while on my way back I stopped at the (Cairo Amman) bank to withdraw some money. As luck would have it, the ATM wasn’t working – again. This time, I happened to be there when it suddenly BSOD’d and began a reboot cycle. Obviously, to BSOD it needs to run Windows, and moments later, that was confirmed. But that’s not the story here – believe it or not, most ATMs run Windows nowadays, and there’s absoloutely nothing wrong with that.
The problem is, they’re all running Windows XP Professional. Of course if the only alternative was Windows XP Home Edition, we’d understand; but there’s a reason why Microsoft developed Windows XP Embedded. It’s not just about performance, size, & reliability, but it’s also about speed, adaptability, cost, and ease-of-use. Windows XP Embedded is several times cheaper to license and deploy across a wide range of computers (err, ATM machines) than Windows XP, especially Professional Edition. What’s more, it doesn’t require as much power, and doesn’t have as much bloat.
I had the (mis)fortune of seeing the PC/ATM boot. They’re using an IBM with Phoenix Bios (from the 60s) and 512 MB SDRAM. Forget about speed, just think about it in terms of cash. It must be more expensive to buy thousands of these machines new than it is to purchase a minimal-device capable of supporting the stripped-down XP EE – which is all you really need to run an ATM. You most certainly don’t need Internet Explorer!
Even more importantly, Windows XP (Professional) isn’t a real-time system. It can’t be made into an RTOS either. On the other hand, Windows CE/Embedded has full RTOS support (just need to re-compile it), and with ATMs, RTOS can really come in handy. RTOS means you don’t get customer’s credit-cards eaten up because the operating system decided to spend a cycle-too-many wasting time instead of returning results. It means that the next time there’s a large que in front of the ATM, they won’t have to wait as long. Most importantly, RTOS is absoloutely necessary to handle the constant influx of money. You need instantaneous information on what was deposited and what was withdrawn, or else you could be in for big trouble.
There’s a million reasons why an ATM
should must be RTOS, be it Linux or VxWorks or Windows CE, but even if you don’t go with RTOS, Windows XP Professional most certainly isn’t the answer. Especially if it’s not even SP2.
With regards to some of the comments received: the image above is not taken by NeoSmart Technologies. Unfortunately there was no camera at hand to record the moment.