Two of the UK's biggest supermarket chains, Tesco and Sainsbury's, were hit with technical issues on Saturday; Sainsbury's blames a software update (Bloomberg.com)
Bloomberg.com:
Two of the UK's biggest supermarket chains, Tesco and Sainsbury's, were hit with technical issues on Saturday; Sainsbury's blames a software update — Two of the UK's biggest supermarket chains - Tesco and Sainsbury's - were hit with technical issues on Saturday.
Partner went into one of the larger stores today (she works there) and it was absolutely pandemonium. Credit to the staff because from what I understand some customers got very, very upset.
This because their checkout are just Windows PC with what I guess is some big wigs' nephew's VB/C# app running?
It's not just the wastefulness of the overly large software stack, and the massively overblown hardware requirements that adds, it's the size of the attack surface. Oh and lack of control of a closed platform.
What a grown up would have done is a tiny Linux thing that ran nothing but what was required and locked down. Made with Buildroot or Yocto. Running on some low power ARM thing.
I've not worked directly with any of these payment systems, but I can't believe the only solution is go all 90s style Windows based system. There will be embedded ways that comply to regs.
I can see they are Windows based when there is issues. I'm sure of Tesco and Morrisons but Sainsburys I don't go to often enough to have see an issue that bring up Windows. I was being flippant, but I don't hold using Windows to build stuff in high regard. In my experience the software engineers who doing that don't know anything else.
A common way is to have two (or more) system partitions. You update one, charge the boot one and reboot. Typically the system partition is read only use. The bootloader tries the one it is told to try first, if it finds itself back in the bootloader it boots the other. You have a watch dog that resets if not kicked.
Buildroot and Yoctor give you a few update options. Then there is things like:
https://swupdate.org/