OS-9 is a family of real-time, process-based, multitasking, multi-user operating systems, developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor. It was purchased by Radisys Corp in 2001, and was purchased again in 2013 by its current owner Microware LP. The OS-9 family was popular for general-purpose computing and remains in use in commercial embedded systems and amongst hobbyists. Today, OS-9 is a product name used by both a Motorola 68000-series machine language OS and a portable (PowerPC, x86, ARM, MIPS, SH4, etc.) version written in C, originally known as OS-9000. History The first version ("OS-9 Level One"), which dates back to 1979–1980, was written in assembly language for the Motorola 6809 CPU, and all of its processes ran within the 64KB address space of the CPU without a memory management unit. It was developed as a supporting operating system for the BASIC09 project, contracted for by Motorola as part of the 6809 development. A later 6809 version ("Level Two") takes advantage of memory mapping hardware, supported up to 2 MB of memory (ca. 1980) in most implementations, and included a GUI on some platforms. In 1983, OS-9/6809 was ported to Motorola 68000 assembly language and extended (called OS-9/68K); and a still later (1989) version was rewritten mostly in C for further portability. The portable version was initially called OS-9000 and was released for 80386 PC systems around 1989, then ported to PowerPC around 1995. These later versions lack the memory mapping facilities of OS-9/6809 Level Two simply because they do not need them. They used a single flat address space that all processes share; memory mapping hardware, if present, is mostly used to ensure that processes access only memory they have the right to access. The 680x0 and 80386 (and later) MPUs all directly support far more than of memory in any case. As a consequence of early pervasive design decisions taking advantage of the easily used reentrant object code capabilities of the 6809 processor, programs intended for OS-9 are required to be reentrant; compilers produce reentrant code automatically and assemblers for OS-9 offer considerable support for it. OS-9 also uses position-independent code and data because the 6809 also supports it directly; compilers and assemblers support position independence. The OS-9 kernel loads programs (including shared code), and allocates data, wherever sufficient free space is available in the memory map. This allows the entire OS