Small LS logo


OS-9 is a multi-user, multi-tasking operating system that was first released for the 6809 8/16 bit microprocessor in 1980. Thus it predates MS-DOS and is considerably more capable. It was already mature and stable before Linux was even a twinkle in Linus' eye. It was ported to the Motorola's 68xxx microprocessor family as OS-9/68000 in the mid 1980s.

OS-9 is highly modular: the kernel, device drivers, i/o managers and device descriptors that together create a working system are collected into a boot file that defines a working installation. This modularity, together with a flexible task scheduler and the ability to prioritise several interrupt handlers for each interrupt rapidly gained it a presence in the real-time, embedded system world despite its initial design aim of being a small, efficient, easily ported general purpose operating system. Its advantage for embedded systems is that you can develop and test your embedded, multi-process system in an OS-9 development system with terminals, disks, etc and all the usual,development tools. When the system is ready another boot file is generated with support for disks, etc omitted, blown into ROM and installed in the target hardware.

I started to use OS-9/68000 version 2.3 as a general purpose operating system in 1986: Linux was still well in the future. OS-9/68000 v2.4, which I am still using, dates from around 1988 and has proved remarkably stable. The only patches my system has ever required were connected with the Y2K date problem and even these only required a change to the clock driver and its time setting utility together with display format changes for the directory listing command. Its also very small: the entire operating system loads into 140 KB, and has never come near occupying the 8 MB of RAM it has available.

OS-9 hardware

OS-9 running on a Peripheral Technology CD68X20 motherboard installed in an IBM PC-AT case. The keyboard is the original IBM PC-AT one but the monitor is a Phillips unit.

The Peripheral Technology motherboard has a Baby-AT footprint, so some determined metal-work had to be done before it could be installed in the PC-AT case. It is powered from a standard PC power supply. The 25 MHz 68020 processor and ROMs are mounted on a replaceable daughter board. Memory is a set of four 32 bit 100 nS SIMMs, providing 8 MB of RAM - enough to run any application I've needed to run despite the presence of a 1.46 MB RAM-disk. A standard VGA display card is installed in one of the five ISA slots on the board, but its built-in ROM is ignored. The keyboard plugs into the usual DIN socket. The board has on-board IDE and a floppy controllers as well as sockets for a SCSI interface. Four serial ports and a parallel port are fitted as standard: all connect to the outside world via flying leads that terminate in standard D-connectors mounted on adapter slot blanking plates.

OS-9 booted

Screen close-up showing the OS-9 boot display

This is my usual boot display. The actions defined in /dd/startup are:

The entire boot process takes under 30 seconds.

Shut down is equally fast: just log out and switch the power off. This is possible because OS-9 does not use cached writes in the interest of robust file management. There is obviously a trade-off against speed, but this is, in my opinion, offset by the protection against data loss and the fast boot and shutdown times.