Large Operating Systems Have Embraced Embedded. Did Anyone Notice?
TOM WILLIAMS, EDITOR-IN-CHIEF
Page 1 of 1
Here’s a riddle: What do Windows CE, Linux and Java all have in common? Answer: They were all originally designed with no thought to their use in embedded and real-time systems.
Windows CE was developed some time in the late 1990s for use in what were to be palm-sized or pocket PCs—little laptop-like machines such as the HP-300LX, which had a touch-sensitive gray (four shades) screen and about 4 Mbyte of RAM. Those machines never made it in the market at that time. Linux was developed to be an open source operating system similar to Unix, which was owned and controlled by AT&T. Java was intended to enable “write once run anywhere” capability for networked systems.
Today we see later versions of all three operating systems across all manners of embedded systems with many fulfilling demanding timing requirements, which in the context of their applications constitute real-time performance. Since there is no exact definition of “real time” short of a dissertation on relativity, what has been called real-time performance has always been qualified by the circumstances of its context. It has to meet the timing and determinism constraints of its application. Getting to such a point for a large portion—not all—of embedded applications has come as the result of hard work and dedication by both software and hardware engineers.
When I first started covering Java as an embedded systems editor, for example, I listened while several colleagues patiently recited litanies of reasons why it would never be used in real time. The same was true for Linux. They did not figure on the dogged determination of software engineers who saw such value in these technologies that they were determined to adapt them to their needs. They went to work on the Linux kernel to make it more real time. They found ways to deal with the issues of Java’s garbage collection and many other details and forged versions of these OSs that could be used in a large class of embedded applications. Likewise, Microsoft saw the value of giving users of small and embedded systems a familiar user interface with which to work, and later versions of Windows CE were targeted at small embedded and handheld devices that needed a user interface of some form. So why not offer users one that they were already comfortable with?
However, such heroic efforts could not have come to success were it not for the staggering advances in the performance of microprocessors. The increase in raw speed from hundreds of megahertz to multiple gigahertz has simply blown away a large portion of timing concerns for many an application. This is not to say that critical systems can simply be assumed to perform within all timing constraints—not by any means. But the amount of testing, tweaking and hair pulling has been greatly reduced. Nor is this to say that such operating systems adapted from the IT and/or PC space can replace the selection of robust and advanced RTOSs that are available.
It does mean that a vast and expanded number of devices can be reliably fitted with operating systems that provide rich and integrated networking, file systems and user interfaces along with the desired performance. This is further enhanced by the spread of multicore processors with facilities such as hypervisors. Now any timing issues associated with the adapted OS can be safely confined to one processor core while an RTOS on another core or cores deals with all the real-time issues as needed, and again giving the system the functions already offered by the other OS. While this may not exactly be breaking news, its implications are still emerging.
One of them, of course, is that we seem to be moving toward an integrated world of IT, personal computing and embedded systems, where all of them will be able to seamlessly communicate and interact by means of straightforward interfaces and protocols. A Linux or Windows-based factory controller, which may or may not have an actual RTOS running on it as well, can be accessed by the floor manager or the executive suite. The Internet of Things is accessible from the home or from the IT department and in a familiar form thanks to built-in graphics capabilities.
The next question, of course, is what happens to the ever more popular Android OS? The word on the street seems to be that Google is not the least bit interested in discussing its use in embedded systems. But if the determination of the software community turns its eyes seriously toward Android, who is to say how long that will last? Stay tuned.