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.
Handy Links:
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.
Hey thanks for the link, Like the pictures of from my ATM crash I was able to snap pics of last year.
-Jeff O’Hara
http://blog.zemote.com
In Sweden the ATM are still running NT4 or even Win98, I think I have a pic of a ATM complaining about low virtual memory. I guess the programs running on them are very specific and also the hardware and drivers. It may be a reason why they went with XP Pro on your ATM. But embedded would probably be a better choice.
/Andy
Just some background that probably proves your point, Andy.
This is a machine in very high-traffic neighborhood: the university parking lot. It’s the only Bank/ATM on-grounds, they paid a fortune to keep it that way, so they probably couldn’t use NT4 or Windows 95 to power it for their usage needs. Of course, it would still be cheaper and more reliable for them to use XP Embedded, and they wouldn’t suffer as many outages as a result.
I wouldn’t be surprised to learn that the rest of Cairo Amman’s ATMs are powered by NT4 as you say.
I’d love to see a pic of an ATM with Apple’s Apple on the bootscreen starting up.. That would look so cool!