news.samba.org

Jeremy Allison Column Archives

The Low Point — a View from the Valley — Column 15

Embedded in a hospital

Due to various family ailments and events (some serious but none fatal thank goodness) I've had to spend a lot of time visiting hospitals recently, both in the UK and the USA. The contrast between the two is quite interesting, mainly in the way technology is used in each.

In England the atmosphere is almost entirely anti-technology, from the entrance posters warning you to switch off your cell phone as even the static electricity in your clothing might cause “SENSITIVE MEDICAL EQUIPMENT TO FAIL”, to the beefy hospital orderlies who will rush out with claw hammers and smash your phone or laptop into tiny pieces should you even make a move toward the power switch inside the hospital. The medical care is really good though (even if the food is really bad).

In the hospital I visited in the USA the entrance posters proclaimed it “the most wired hospital in the Valley” and I was able to sit in a waiting room and patient ward and surf the Internet with my laptop and Nokia Linux palmtop and make Skype voice calls from the patient bedside via the open wireless network. I must confess, I did check in Samba code fixes whilst being there for a family reason. Hey, it's an open wireless network, what was I going to do – ignore it ? The Samba Team never sleeps you know. The difference between this place and the red-brick Sheffield NHS hospital was only evident when you looked at the “Poor people please go and die elsewhere” notices posted on convenient walls. Still, if you have employer insurance and decent coverage and can navigate the baroque billing bureaucracy you will eventually get good health care. Prescriptions are extra though, along with extra charges (charmingly called “co-pays”) at each visit to a doctors surgery. Strangely enough the food there was also really bad. Maybe that's a universal law of hospitals. At the cost of a few broken cell phones I know which I prefer.

One thing both hospitals had in common though, was that all the computers dealing with medical records and even some of the medical equipment with a recognizable PC based interface were all running some version of Windows. You could tell by the icons used and the graphical style of the interfaces, even when there wasn't a prominently visible “Start” button, as was more often the case.

Are the hospital administration and device manufacturers insane ? In the litigious USA it should only take one bad virus or security breach incident to precipitate a lawsuit that could shut down the “most wired” hospital, or at least raise their insurance charges. People have already died due to software errors in medical device equipment although in all fairness the cases I'm familiar with weren't running Windows. Least you think I'm picking an easy target I don't think they should be running a Linux variant either.

Whilst I worked at Sun Microsystems we transferred from the SunView SunOS kernel-based graphical windowing system to an X Windows based graphical user interface for the operating system. One of the things we were warned about was not to recommend or use the software for safety critical functions, as one misplaced XGrabPointer() API call (don't ask, it's an X Windows thing) can cause other applications to miss critical events. Imagine that in an air-traffic control room. Windows today is probably only a tenth as reliable as the old SunOS systems we ran in the late 1980's, and that wasn't considered reliable enough to run telephone equipment, let alone embedded medical devices.

One of my first paying jobs was designing a small part of the control software for a mass-spectrometer. It wasn't safety critical or even dealing with secure data but it was still hard to get the thing error free and reliable, and this was running on the bare-metal of a very simple 6800 (yes, that's sixty-eight hundred, not sixty-eight thousand; that should tell you how old I am) based processor without any operating system. Choosing Windows for an embedded system that is used in medicine, or even a standard off the shelf Linux distribution is playing with fire. These generic systems aren't reliable enough for use like this, no matter how convenient (and by that I really mean cheap) it is to find programmers who understand the graphical tools and can build flashy looking interfaces for a device. Personally I wouldn't even run Windows for an airline baggage display device, based on the number of blue-screens of death I've seen whilst waiting for my luggage at airports.

But the most scary part is the possibility of a monoculture in embedded devices. No matter if you believe that Windows is reliable enough for this use, the danger is multiplied if most embedded devices are based on one common codebase, with one set of errors to be exploited. This shouldn't be Windows, Linux, the BSD-of-the-month club or any of the commercial off the shelf embedded operating system environments. For really safety critical systems the only safe way to design is to have one or more backup systems written by a completely different programming team. That way if a design flaw allows the primary system to be shut down, either by accident or malicious attack, then hopefully the backup systems won't be vulnerable to the same flaw. The monoculture danger is very real. Microsoft is very effective at leveraging their monopoly power to drive their software into inappropriate places. Imagine a device that has to display medical video data to a doctor in a world where all video is in Windows-media-only format and you'll get the idea of how this might end up being done.

The environments I encountered in hospital reminded me of an idea for a parody of a Microsoft Windows advertisement dreamed up by Michael Tiemann of Red Hat, when I worked for him at Cygnus Software many years ago. He imagined a frustrated office worker late at night working on a critical document when the computer crashes with the Windows blue screen of death. In a panic he picks up an old paper copy and tries to fax it, only to have the fax machine fail in the same way. Picking up his cell phone he tries to call his boss only to have the cell phone crash with a blue screen. Finally he gives up and turns on the television, only to be greeted with a pitch for Microsoft Windows, “and the beauty of it is that it works the same way everywhere....”.