Page 29
Linux
In 1983, Richard Stallman, introduced the GNU project, a concept of free software. The name
GNU is what‘s called a recursive acronym because the name is in the acronym, ―GNU‘s Not Unix‖.
When we say ―free‖, we don‘t mean price tag, but more of ‗freedom‘. The source code is free to be
viewed. In 1991, Linus Torvalds launched the first versions of Linux, based on UNIX kernel. This new
kernel, operating under the GNU license and with the aid of some other components was the recipe for
what we know as GNU/Linux. By 1995, Linux finds its way on server systems. As the years progress,
so do the users of Linux. By 2000, Linux is markedly used as embedded Linux and by 2005; Linux is
more and more common in desktops. It‘s the use of the Linux kernel in embedded systems, specifically
medical devices that appeal to us. The Linux kernel could not simply be taken and put onto an embedded system. Although it was very fast, and used fewer resources, it was not designed to mange critical
latency issues. Modifications and patches were later developed to handle these problems.
Caption:
Unlike the Matrix, the rules cannot be bent or
ignored, so Linux must find a way.
Real-Time-Operating System
A real-time system is one in which the correctness of the computations not only depends upon the logical correctness of the computation but also upon the time at which the result is produced. If the timing
constraints of the system are not met, system failure is said to have occurred. --Donald Gilles
Where can the effects of timing issues in computation be more critical than in medicine? In standard
Computer OS‘s, speed is an issue, but in embedded OS‘s, timing, specifically, predictable timing, is of
main concern. What do we mean? Let‘s look at an example where one set of tasks are being performed by a microprocessor that is within a medical device. In a synchronized precordial shock, the
defibrillator will deliver its energy only after detecting the R-wave of the ECG. As you already know, timing the shock to the R waves decreases the chance of delivering the energy during the vulnerable, refractory period. If this period were to occur, treating a tachycardia patient, could lead to a ventricular
fibrillation. What this means to us is: If the microprocessor is performing A/D conversion [running its
internal program code], and thus performing an analysis of the rhythm, detecting peak waves, (i.e. Rwave), the device cannot wait too long before it signals the discharge of energy into the patient. If this
were running on a personal computer, latency could not be reliably predicted because other running
processes, although not given priority, would require processing time to stop (be interrupted), and move
onto a priority (context switch). Now that you have an idea into the need for real-time support in an embedded OS, lets dive a little deeper into what Linux has provided based on their architecture.