© Amit Singh. All Rights Reserved. Written in Mid 2003



I have dabbled in embedded systems every once in a while. There has been a lot of "mainstream" interest in embedded systems, particularly in ones based on Linux—just look at the number of recent books on the subject.



ELKS (Embeddable Linux Kernel Subset) is a project to build a small kernel subset of Linux, which will provide typical UNIX V7 functionality within the kernel, and is able to run on a system with limited capabilities/resources. It is supposed to run on the 8088, 80188 and 80186 as well. Please refer to the ELKS FAQ for more details.

The source code for ELKS is available under the GPL.

ELKS boots and runs under Virtual PC. You might need to mount the root file system (MINIX) somewhere (say, on Linux, using loopback) and fiddle with the password file to be able to log in once the system is booted.

More details are available on the ELKS home page.

:: Inferno


According to the Inferno web site: "Inferno is a compact operating system designed for building distributed and networked systems on a wide variety of devices and platforms ..." Inferno runs both as a user application on top of a host operating system or as a stand alone system on native hardware. Supported host operating systems include FreeBSD, Linux, Mac OS X (4th Edition only), Plan 9, Solaris and Windows.

I have been following Inferno on-and-off ever since its early days at Bell Laboratories, so much so that in early 1998 I wrote an introductory article on Inferno for PC World (published in 1999).

Currently Inferno is developed and marketed solely by Vita Nuova.

Even though Inferno 4th Edition includes Mac OS X as a host system, it has issues on Panther. It is simplest to run it within Linux within Virtual PC within Mac OS X.

:: LynxOS


LynxOS is a hard real-time operating system that has "Open" APIs and Linux ABI compatibility. This embedded operating system boasts full POSIX conformance and is popular among OEMs. The operating system can be ordered with a comprehensive set of development and debugging tools. I first tried LynxOS on a MIPS board, and have had interest in the system since then. You can buy LynxOS or order an evaluation copy from LynuxWorks.

I tried installing version 4.0 of LynxOS under Virtual PC and ran into a curious problem. The OS CD would boot fine and give me a shell prompt. Thereafter, one is supposed to run the installit command, which is an installation shell script. After making the appropriate menu choices, the install fails as the script cannot figure out that the CD-ROM is in fact both the root device and the media source, and is already mounted. There is a simple workaround.

:: MenuetOS


MenuetOS, according to its web site, "has been written with 32 bit x86 assembly language from the ground up to support 32 bit assembly programming as a platform for faster and smaller system footprint." This is not a Unix-like or Unix-derived system. In fact, it is small enough to fit on a single floppy. It is available under the GPL.

Key features of MenuetOS are (as listed on its web site):

MenuetOS does not load under Virtual PC on the Mac. It does work, however, using Bochs.

:: QNX


QNX Neutrino is a microkernel based operating system typically used for fault-resilient, field upgradable system implementations. It also supports multi-processing, including symmetric and clustered. I first tried QNX when the latest version of the RTOS was 4.x. I recently acquired a shrink-wrapped copy of version 4.24, and decided to give that and the newer generation QNX a spin on the PowerBook. Apparently 6.2.x is far more POSIX friendly than 4.x.

In any case, both versions readily install and run under Virtual PC. There is a free evaluation download for hobbyists, which translates to a useful, solid platform for experimenting with microkernel/embedded systems.

:: RxDOS


RxDOS was described in "Dissecting DOS", by Mike Podanoffsky. It is a DOS compatible operating system with applications in small-footprint, low-power, instant-on and other embedded systems (hand held computers, banking systems/ATMs, consumer electronics and miscellaneous appliances).

Version 6.2 was released in 1999. More details about RxDOS are available on its SourceForge project page.

RxDOS boots and runs fine under Virtual PC.

:: TSX-32


According to the TSX-32 web site: "TSX-32 is a general purpose multi-user multi-tasking operating system written from the ground up for the Intel platform.". Moreover, the company behind TSX-32 claims it to be "... a viable, stable, and powerful alternative to both Unix and Microsoft operating systems since 1989."

TSX-32, as the name suggests, is a 32-bit operating system, but is compatible with DOS. Minimum requirements include a 386 processor, 8 MB RAM and 20 MB of hard disk space. SCSI disk drives, CD-ROM drives and tape drives are also supported. The TSX-32 features page describes things in more detail.

Quoting further, "TSX-32 is a rock solid operating system, running underneath the hood of systems in Fortune 500 companies, airports, factories, defense, mines, offices -- you name it -- all over the world."

TSX-32 boots and runs fine under Virtual PC.