OS-9
This article needs additional citations for verification. (September 2021) |
CLI in all versions, some platforms support a GUI | |
---|---|
License | Proprietary |
Official website | www |
OS-9 is a family of
The OS-9 family was popular for general-purpose computing and remains in use in commercial
, originally known as OS-9000.History
The first version ("OS-9 Level One"), which dates back to 1979–1980, was written in
In 1983, OS-9/6809 was ported to
As a consequence of early pervasive design decisions taking advantage of the easily used
OS-9/6809 runs on
The best known hardware (due to its low price and broad distribution) was the
OS-9 was also ported to the
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
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,
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,
network processor resources. This acquisition infused Microware with capital and allowed Microware to continue OS-9 development and support.On February 21, 2013, Microware LP (a partnership formed by Freestation of Japan, Microsys Electronics of Germany and RTSI LLC of the USA) announced that they signed an Asset Purchase Agreement to buy the rights to the names Microware, OS-9 and all assets from
Technology
Modern and archaic design
OS-9 (especially the 68k version and thereafter) 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 modeand supervisor (kernel) mode.
- Dynamic use of individually and separately built software components (executable program images and kernel modules) rather than a statically linkedsingle monolithic image.
- Unix-like process name-space model (not memory model) and user shell program.
- Clear separation between hardware independent (e.g. file managers) and hardware dependent (e.g. device drivers) layers.
When compared with more modern operating systems:
- The kernel is written entirely in assembly language (OS-9/68K version only) and C (portable version to other architectures) 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 a memory management unit (MMU) have no memory protection against illegal access, nor per-process memory protection, while systems with an 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 Core 2 Duo, when Linuxis running on the other core doing general purpose tasks).
Task scheduling
OS-9's real-time kernel allows multiple independent applications to execute simultaneously through task switching and inter-process communication facilities. All OS-9 programs run as processes containing at least one lightweight process (thread) but may contain an effectively unlimited number of threads. Within a process, these lightweight processes share memory, I/O paths, and other resources in accordance with the POSIX threads specification and API. OS-9 schedules the threads using a fixed-priority preemptive scheduling algorithm with round-robin scheduling within each priority. Time slicing is supported. The priority levels can be divided into a range that supports aging and a higher-priority range that uses strict priority scheduling. Each process can access any system resource by issuing the appropriate OS-9 service request. At every scheduling point, OS-9 compares the priority of the thread at the head of the active queue to the priority of the current thread. It context switches to the thread on the active queue if its priority is higher than the current processes' priority. Aging artificially increases the effective priority of threads in the active queue as time passes. At defined intervals, time slicing returns the current thread to the active queue behind other threads at the same priority.
Kernel modules
- Kernel – Contains task switching, memory allocation, and most non-I/O calls
- IOMAN – Handles I/O calls to various file managers and drivers.
- File managers basic set:
- SSM – System security (MMU handling)
- Cache – Cache handling,
- VectXXX – Vector / PIC handler
- FPU – Floating point emulation
- Align – Address alignment fault handler
Commands
The following list of commands is supported by the OS-9 shell.
Shell built-in commands
Utilities for operating system functions
System management utilities
General utilities
Comparisons with Unix
OS-9's notion of processes and I/O paths is quite similar to that of Unix in nearly all respects, but there are some significant differences. Firstly, the
Another difference is that in OS-9, grandparent directories can be indicated by repeating periods three or more times, without any intervening slashes (a feature also found in
..../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
The module structure requires more explanation: OS-9 keeps a "module directory", a memory-resident list of all modules that are in memory either by having been loaded, or by having been found in ROM during an initial scan at boot time. When one types a command to the OS-9 shell, it will look first in the current module directory for a module of the specified name and will use it (and increase its link count) if found, or it will look on disk for an appropriately named file if not. In OS-9/6809 and OS-9/68000, the module directory is flat, but OS-9000 made the module directory tree-structured. The OS-9000 shell looks in one's alternative module directory for a MODPATH environment variable, analogous to the PATH variable in all versions, indicating the sequence of module directories in which to look for pre-loaded modules.
Modules are not only used to hold programs, but can also be created on the fly to hold data, and are the way in which OS-9 supports shared memory. 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
- 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 Apple Macintoshes distributed by Ultrascience exists. A port to the Amigaby 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 (CD-i) industry standard.
- 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 NitrOS-9. 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 NitrOS-9 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 ARM processor, and some of the Hitachi SH familyof processors.
- The DigiCart/II Plus 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 , 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.[5]
- OS-9000/SH4 can be found in loader (inside KIWI-format container LOADING.KWI) on Map CD/DVD for old automotive GPS navigation systems made by Matsushitafor Japan domestical market.
References
- ^ Oliver, Roger; Sadler, Chris (October 1982). "Positron 9000". Personal Computer World. pp. 128–129, 131–134, 222. Retrieved 2024-04-26.
- Argus Specialist Publications. pp. 80–86.
- ^ Smith, Tony (1999-09-03). "OS-9 developer sues Apple over MacOS 9". The Register UK. Situation Publishing. Retrieved 2014-06-01.
- ^ CoCoFEST
- ^ "NA Training Book 2.4" (PDF). industrial.omron.eu/NA. Archived (PDF) from the original on 2022-10-09. Retrieved 2019-03-16.
Further reading
- Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
- Mark A. Heilpern (1995). OS-9 Primer. Microware Systems Corp. ISBN 0-918035-04-X.
- Peter Dibble (1994). OS-9 Insights. Microware Systems Corp. ISBN 0-918035-05-8.
External links
- Microware LP
- DTR - Access OS-9 Disk on PC
- OS-9 Frequently Asked Questions List
- Archive of OS-9 information and software, from RTSI LLC.
- OS-9 at Curlie
- Repository for command line tools for manipulating 6809 OS-9 disk images, on SourceForge
- Execution environment for OS-9 user-mode programs on Mac/Win/linux host OS
- NitrOS-9 official website, on SourceForge
- An OS-9 Port to the Thomson MO5, emulation (fr)
- Running OS-9 on a TRS-80 Color Computer (CoCo)
- comp.os.os9 newsgroup via Google groups web interface.
- Official OS-9 Blog
- A 6809 Emulator based on the SWTPC 6809 system that runs OS9 and UniFLEX as well as FLEX
- XiBase9 (a GUI)
- DragonWiki