OS-9
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 version written in C, originally known as OS-9000.
History
The first version, 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 takes advantage of memory mapping hardware, supported up to 2 MB of memory in most implementations, and included a GUI on some platforms.In 1983, OS-9/6809 was ported to Motorola 68000 assembly language and extended ; and a still later 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 that memory they have the right to access. The 680x0 and 80386 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, and allocates data, wherever sufficient free space is available in the memory map. This allows the entire OS and all applications to be placed in ROM or Flash memory, and eases memory management requirements when programs are loaded into RAM and run. Programs, device drivers, and I/O managers under OS-9 are all 'modules' and can be dynamically loaded and unloaded as needed.
OS-9/6809 runs on Motorola EXORbus systems using the Motorola 6809, SS-50 Bus and SS-50C bus systems from companies such as SWTPC, Tano, Gimix, Midwest Scientific, and Smoke Signal Broadcasting, STD-bus 6809 systems from several suppliers, personal computers such as the Fujitsu FM-11, FM-8, FM-7 and FM-77, Hitachi MB-S1, and many others.
System Industries, a third-party provider of DEC compatible equipment, used a 68B09E processor running OS9 in its QIC tape backup controllers in VAX installations.
The best known hardware was the TRS-80 Color Computer and the similar Dragon series. Even on the CoCo, a quite minimalist hardware platform, it was possible under OS-9/6809 Level One to have more than one interactive user running concurrently as well as several other non-interactive processes. A second processor implementation for the BBC Micro was produced by Cumana. It included on-board RAM, SCSI hard disk interface and a MC68008 processor.
OS-9 was also ported to the Commodore SP-9000 or SuperPET, which had a 6809 in addition to the 6502 of the base 8032 model, as well as 64 KB more. The Toronto PET Users Group sponsored a HW/SW project which included a daughter board with an MMU as well as the OS-9 distribution disks. With two processors, 96 KB, a 25×80 screen and serial, parallel and IEEE-488 ports and many peripherals this was one of the most capable OS-9 systems available.
On a computer like an SS-50, machines which had more memory, and I/O controllers that did not load the CPU as did the CoCo, multiple users were common, even with only 64 KB of RAM. With hardware supporting memory management circuits and OS-9 Level 2, GUI use was successfully routine, even on the minimal resourced CoCo. This was several years prior to successful GUIs on the 16-bit IBM PC class machines, and many years prior to properly working multi-tasking, multi-user, access-controlled operating systems on IBM PC type machines or on any of Apple's machines.
OS-9's multi-user and multi-tasking capabilities make it usable as a general-purpose interactive computer system. Many third-party interactive applications have been written for it, such as the Dynacalc spreadsheet, the VED text formatter, and the Stylograph and Screditor-3 WYSIWYG word processors. TSC's nroff emulating formatter was ported to OS-9 by MicroWay, as well.
In mid 1980s, OS-9 was selected for the CD-i operating system. Around the same time, Microsoft approached Microware for acquisition of the company primarily because it was attracted by CD-RTOS, the CD-i operating system. The negotiation failed and no deal was made; Microware decided to remain independent.
In late 1980s, Microware released OS-9000, a more portable version of the operating system. The vast majority of the operating system kernel was rewritten in C leaving a handful of hardware-dependent parts in assembly language. A few "more advanced features" were added such as tree-like kernel module name space. OS-9000 was initially ported to the Motorola 680x0 family CPUs, Intel 80386, and PowerPC. The OS-9000/680x0 was a marketing failure and withdrawn very quickly, probably because few customers wanted to try the fatter and slower operating system over the existing OS-9/680x0 proven record of stability. That the Motorola 680x0 family and VME board computer system vendors were nearing their end of life might have affected the unpopularity of OS-9000/680x0. Microware later started calling all of its operating systems — including what had been originally called OS-9000 — simply OS-9, and started shifting its business interest towards portable consumer device markets such as cellphones, car navigation, and multimedia.
In late 1980s and early 1990s, the Character Generators computers used in Broadcast Systems used OS-9 and OS-9000 extensively. The now defunct Pesa Electronica used OS-9 on their CGs such as CG 4722 and CG4733.
Name conflicts and court decisions
In 1999, nineteen years after the first release of OS-9, Apple Computer released Mac OS 9. Microware sued Apple that year for trademark infringement, although a judge ruled that there would be little chance for confusion between the two. Some Macintosh users who are unaware of Microware's lesser known OS-9 have posted to the comp.os.os9 newsgroup not realizing what OS-9 is.In 2001, RadiSys purchased Microware to acquire the Intel IXP-1200 network processor resources. This acquisition infused Microware with capital and allowed Microware to continue OS-9 development and support.
On 21 February 2013, Microware LP announced that they signed an Asset Purchase Agreement to buy the rights to the names Microware, OS-9 and all assets from RadiSys.
Technology
Modern and archaic design
OS-9 clearly distinguishes itself from the prior generation of embedded operating systems in many aspects.- Runs on 8-bit, 16-bit, and 32-bit CPUs.
- Clear separation between user mode and supervisor mode.
- Dynamic use of individually and separately built software components rather than a statically linked single monolithic image.
- Unix-like process name-space model and user shell program.
- Clear separation between hardware independent and hardware dependent layers.
- Kernel is entirely written in assembly language as well as C using simple internal data structures, reducing flexibility and improvement scope while improving determinability required for Real-time operating systems.
- Performance was also affected for some operations, but assembly language helped with the speed issue.
- Systems without MMU have no memory protection against illegal access, nor per process memory protection while systems with MMU can have memory protection enabled. The module controlling the MMU can be included or omitted by the system integrator to enable or disable memory protection. This allows OS-9 to run on older systems which do not include an MMU.
- Older versions of OS-9 do not support POSIX threads while all OS-9 supported processors support POSIX threads.
- No SMP support for multiple sockets, cores, or hardware threads in the same OS-9 instance
Task scheduling
Kernel modules
- Kernel - Contains Task switch, Memory allocation, and most non-I/O calls
- IOMAN - Handles I/O calls to various File Managers and drivers.
- SSM - System Security
- Cache - Cache handling,
- VectXXX - Vector/ PIC handler
- FPU - Floating point emulation
- Align - Address Alignment Fault handler
Commands
Shell built-in commands
Utilities for operating system functions
- attr
- copy
- date
- deiniz
- del
- deldir
- dsave
- dump
- echo
- fixmod
- free
- ident
- iniz
- link
- list
- load
- makdir
- mdir
- merge
- mfree
- pd
- pr
- printenv
- procs
- rename
- save
- shell
- setime
- sleep
- tee
- tmode
- touch
- unlink
General utilities
- binex
- build
- cfp
- cmp
- code
- compress
- count
- edt
- exbin
- expand
- grep
- help
- make
- qsort
- tr
- umacs
Comparisons with Unix
Another difference is that in OS-9, grandparent directories can be indicated by repeating periods three or more times, without any intervening slashes. For example,
..../file
in OS-9, is similar to ../../../file
in Unix. But .
and ..
, with just one or two periods, each work the same in both OS-9 and Unix.OS-9 has had a modular design from the beginning, influenced by notions of the designers of the 6809 and how they expected software would be distributed in the future.
OS-9/non-68000 supports POSIX threads. A single process can start any number of threads.
Status
OS-9 has faded from popular use, though Microware LP does still support it and it does run on modern architectures such as ARM and x86. The compiler provided, Ultra C/C++, supports C89, but supports neither C99 nor C++98. Ultra C++ does provide limited support for C++ templates. It is also supported by popular SSL/TLS libraries such as wolfSSL.- A Version of OS-9 running Steve Adams' G-Windows is present on semiconductor wafer scrubbers manufactured by Ontrak Systems / Lam Research. Thousands of these systems are in use today, however, the software running on them dates to 1999 when the last version was created to handle Y2K issues.
- Versions of OS-9/68K ran on a wide variety of 68000 family platforms, including the Sharp X68000 in Japan, some personal computers intended by their designers as upgrades from the Color Computer It was also ported to the Atari ST by Recc-o-ware in the early 1990s, and was distributed by Cumana in Europe. A port for 68000-based Apple Macintoshes distributed by Ultrascience exists. A port to the Amiga by Digby Tarvin is also purported to exist.
- OS-9/68K is mandated by Caltrans to be used in the 2070-1B and 2070-1E controller cards, and so ends up being used to run many North American traffic signal control systems.
- OS-9/68K is also found in some other embedded applications, including the Quanta Delta television broadcast character generator, still in production by ScanLine Technologies in Utah. While the user-level interface code on this system started at boot time, there was a hidden, undocumented keyboard sequence that would provide a user with a root shell prompt in a scroll window on the device's edit-channel monitor.
- In the embedded market, where OS-9 has found application in such devices as the Fairlight CMI synthesizers, robotics, in-car navigation systems, and Philips' Compact Disc-Interactive industry standard.
- The TRS-80 Color Computer still has users and an annual conference in Chicago; as of 2018 the 27th Annual "Last" Chicago CoCoFEST was scheduled for 21-22 April 2018. A group of Canadian programmers rewrote OS-9/6809 Level II for the CoCo 3 for efficiency, and to take advantage of the native mode of the Hitachi 6309. Today's serious CoCo users now typically have replaced the 68B09E in the CoCo 3 with an Hitachi 63B09E and run the rewrite, called NitrOS9. The combination is surprisingly fast, considering that it runs on an expressly low cost, 8-bit computer system.
- Gary Becker's CoCo3 FPGA is a synthesized TRS-80 Color Computer which runs NitrOS9 on an Altera DE-1 development board. The core 6809 CPU was designed by John Kent and is currently running at 25 MHz.
- OS-9000/80x86 can be run on PC-type machines built around the Intel x86 CPUs. OS-9000 has also been ported to the PowerPC, MIPS, some versions of Advanced RISC Machines' ARM processor, and some of the Hitachi SH family of processors.
- The audio playback unit runs OS-9/68K. It is a solid state replacement for radio station style cart players. These units are used in radio and at places like Walt Disney World where they play park announcements.
- German electronics manufacturer Eltec has been manufacturing the Eurocom-model CPU boards for industrial purposes since the late 1970s, starting with the 6802 and 6809 Eurocom-1 and Eurocom-2, and onwards with 68K, and derivative, CPU boards up to today. The modern boards can be delivered with a range of operating systems, amongst which is OS-9.
- Omron used OS-9 in their NS series HMI panels. However, for their new NA series, Omron selected Windows Embedded Compact 7. Omron indicated that with OS-9 nearly all the drivers, for example for a USB stick, had to be written by Omron.