[description] [textbook] [timeline] [xinu lab at Purdue] [experimenting with xinu] [code for download] [xinu in industry] [xinu in universities] [what others are saying] [contact us]


XINU stands for Xinu Is Not Unix -- although it shares concepts and even names with Unix, the internal design differs completely. Xinu is a small, elegant operating system that supports dynamic process creation, dynamic memory allocation, network communication, local and remote file systems, a shell, and device-independent I/O functions. The small size makes Xinu suitable for embedded environments.


A completely revised and reorganized version of textbook is now available. D. Comer, Operating System Design - The Xinu Approach, Linksys Version, CRC Press, 2011, ISBN 978-1-4398-8109-5.

Xinu Timeline

1980-81 1981-82 1982-83 1983-85 1985-86 1985- 1986 1987 1989 1988-90 1990-91 1992 1990s 2008 2010-11 2011
Digital Equipment Corporation donates LSI-11 computers and project starts to explore how to integrate network protocol software into an operating system

The Xinu Lab at Purdue

The Xinu lab located in the Computer Science Department at Purdue University is used for both teaching and research. The lab is divided into a set of front-end machines (standard workstations running Linux) and a set of back-end machines (machines that are only used to download and test code). Each of the back-end machines has three connections: a connection to an Ethernet switch that provides access to the Internet, a connection to a rebooter device that can reboot the machine when needed, and a connection from the console serial port to a multiplexer. Software in the lab automates back-end allocation, download, and console interaction, making it easy for a student to compile an operating system image, allocate an unused back-end, establish a window that connects to the back-end console port, download the compiled image into the memory of the back-end, and run the image. The lab makes it easy for students to experiment with operating systems and protocol software.

Experimenting With Xinu

There are several versions of Xinu available for platforms such as an x86, MIPS, and ARM.

In our lab, we use two computers for Xinu: a conventional computer used to compile a Xinu image, and second,, otherwise idle, back-end computer, into which we download and run the image. The current version of the Xinu textbook uses a Linksys E2100L router as a backend. The E2100L is relatively inexpensive, and commercially available. The E2100L contains firmware that can download an image from a TFTP server and place the image in memory. Thus, one can purchase an E2100L and plugsh it into an Ethernet switch along with a PC running Linux. THe Linux computer must run a TFTP server, which allows the E2100L to download an image and run it.

If you do not wish to purchase an E2100L (or are relunctant to hook up hardware), we have a version of Xinu that runs in a Virtual Machine (VM) environment, which means it can run on a conventional computer with no extra hardware. In fact, there are two VM versions: one fro VMWare and one for Virtual Box. The Virtual Box platform is especially attractive because it is available for free download.

Code Available For Download:

Console Serial Connection On An E2100L

Experimenting with an E2100L requires a console connection. Pins on circuit board provide the console connection, so in theory all one needs to do is connect a serial cable to the pins. Although modern computers do not come with a serial connector, low-cost USB-to-serial dongles are available that plug into a USB port and provide a serial interface. The most popular products use an FTDI chip; a web search for ``ftdi serial usb'' will reveal many possibilities.

Once a connection is in place, the user runs software that displays characters from the serial device on the screen and sends keystrokes to the serial device. For example, the minicom application is available for Linux. At Purdue, we wrote our own.

Unfortunately, a serial interface follows the RS232 standard, which uses +12 to -12 volts. The Linksys board uses the TTL chip standard of 0 to 5 volts. Thus, a second piece of inexpensive hardware is needed that converts RS232 voltage to TTL voltage levels. A voltage conversion chip is built into a cable that has a DB-9 serial connector at one end and pin connectors at the other end. The pin connectors plug directly onto the Linksys board. Here are some photos:

Xinu in Industry

If your company has used Xinu in the past or is using Xinu at present, send a note to xinu-info@cs.purdue.edu and we will include your company in the list below.

Xinu in Universities

If your university has used Xinu in the past or is using Xinu at present, send a note to xinu-info@cs.purdue.edu and we will include your university and the year you started using Xinu in the list below.

What Others Are Saying

        "The Xinu book is the best operating systems book on the market because it removes the black magic and explains how to build an OS from the ground up. It's not like other books I tried to read -- they gave me a headache. I have already started telling friends how great it is."

-- David Bafumba-Lokilo, Ecole Polytechnique
de Montreal