Advertisement

OS-9

From Academic Kids

For Mac OS 9, see Mac OS 9.

OS-9® is the name of a family of real-time, process based, multitasking, multi-user, Unix-like operating systems developed by Microware Systems Corporation starting in about 1979/1980. They have been popular in both interactive general purpose computing and in embedded systems. Today, OS-9 is owned by Oregon-based RadiSys Corporation.

OS-9 is being ported on several platforms such as: PowerPC, various ARM Architecture based processors, SuperH, MIPS, Intel X86/Pentium, Freescale/Motorola 68000 familly, etc.

The first version ("level one") was written in assembly language for the Motorola 6809 CPU, and provides a single 64KB address space in which all processes ran. A later 6809 version ("level two") takes advantage of memory mapping hardware, supported up to 1MB of memory (ca 1980!) in most implementations, included a GUI on some platforms, and so on.

Later (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, nor did they 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 (and later) MPUs all directly support far more than 1MB of memory, in any case.

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:

  • The file system is not a single tree, but instead is a forest with each tree corresponding to a device.
  • OS-9 does not have a Unix-style fork() system call--instead it has a system call which creates a process running a specified program.
  • OS-9 processes keep track of two "current directories" rather than just one; the "current execution directory" is where it will by default look first to load programs to run.
  • 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 (see the three-part series of articles in Jan-Mar 1979 Byte magazine by Terry Ritter, et al of Motorola who designed the CPU).
The module structure probably merits more explanation:
  • OS-9 keeps a "module directory", a list in memory of modules that are in memory either by being loaded or by being 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 current module directory for a module by 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 shell under OS-9000 looks in one's alternate module directory and then for an MODPATH environment variable, analogous to the PATH variable in all versions, indicating a sequence of module directories in which to look for already 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.

As a consequence of design decisions, programs intended for OS-9 use reentrant code exclusively. This allows the entire OS and all applications to be placed in ROM or Flash memory. OS-9 also uses position independent code and data because the OS-9 kernel loads programs (including shared code) and allocates data wherever there is sufficient free space available. Programs, device drivers, and I/O managers under OS-9 are all 'modules' and can be dynamically loaded and unloaded as needed subject to link counts.

OS-9/6809 ran on Motorola EXORbus systems using the Motorola 6809, SS-50 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-7 and FM-77, and many others. The best known hardware (due to low price and broad distribution) was the Radio Shack/Tandy Color Computer and its clones such as the British Dragon series. Even on the Color Computer, a quite minimalist hardware platform, it was possible under OS-9/6809 Level One to have more than one interactive user running concurrently (eg, one on the console keyboard and another via a serial connection) as well as several other non-interactive processes. The major limitation (in both access time and maximum capacity) is that no mass storage other than floppy disk was supported by Radio Shack. Hard disks were available from 3rd party sources. On a computer like an SS-50 Gimix, which had more memory, and I/O controllers that did not load the CPU as much as did the CoCo, multiple users were common, even with only 64KB of RAM. With hardware supporting memory management circuits (address translation) and OS-9 Level 2, GUI use was successfully routine, even on the 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 the IBM PC type machines or on any of the Apple machines.

Actually, OS-9/6809 still lives, 20+ years on. The Color Computer (and clones) still has users and an annual conference, the Nth Annual "Last" Chicago CoCoFest, where N == 11 in 2002. A group of Canadian programmers rewrote OS-9/6809 Level II for the CoCo 3 (w/ address translation circuitry) 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 (http://www.nitros9.org)." The combination is fast. Very fast. Very very fast. Especially considering it runs on an 8-bit CPU! Observers are usually astonished, as the benefit of proper (ie, cleanly engineered) operating system design is not widely known, and certainly not widely appreciated, among users of the commercially dominant operating systems (eg, Windows and pre OSX versions of the Mac OS). NitrOS9 has also been back-ported to run on a stock 6809 chip using all the bug fixes and enhancements, less any special 6309 native mode enhancements. A similar back-port was done to create NitrOS9 Level 1, which is the moral equivalent of an OS-9/6809 Level 1 update that can run on an original 1980 grey case Color Computer, provided it has 64K of RAM.

The various versions of OS-9/68K run 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 (e.g., the 68070 or 68340-based MM/1, and on other computers from Frank Hogg Laboratories, PEP, and Delmar Co).

OS-9/68K is also found in some 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 (who had sufficient social engineering skills :-) with a root shell prompt, in a scroll window on the device's edit-channel monitor. As you might expect, this could be both useful, and dangerous.

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.

In addition to the embedded market, where OS-9 has found application in such devices as the Fairlight CMI synthesizers, robotics, and Philips' Compact Disc-Interactive (CD-i) industry standard, OS-9's multi-user and multi-tasking capabilities make it usable for a general-purpose interactive computer system. There have been many third-party interactive applications written for it, such as the Dynacalc spreadsheet, the VED text formatter, and the Stylograph and Screditor-3 WYSIWYG word processors.

In 1999, nineteen years after the first release of OS-9, Apple Computer named a version of the operating system for the Macintosh "Mac OS9". Microware sued Apple that year for trademark infringement, but a judge rejected the claim, dismissing the suit in the following year. The judge said that there is little chance for confusion, but one still periodically finds postings to the comp.os.os9 newsgroup from Macintosh users who are at the very least confused about the purpose of that group.

Today, OS-9 is a product name used by both the machine language 68K OS and the non-68K (PowerPC, X86, etc.) version written in C, originally known as OS-9000. While very similar, and very compatible at the C level (except for various system call enhancements found only in OS-9000), this change causes some confusion. Before the marketting name change in the late 1990s, OS-9 referred to 68K, while OS-9000 referred to anything else. Today, OS-9 is used to refer to the non-68K versions, while the 68K version is specifically called "OS-9 for 68K". In general, it is a good idea to always specify the processor (or at least "OS-9/non-68K" when meaning the OS formerly known as OS-9000).

OS-9 is still sold, updated and maintained and being used in products such as in-car navigation.

External links

Navigation

Academic Kids Menu

  • Art and Cultures
    • Art (http://www.academickids.com/encyclopedia/index.php/Art)
    • Architecture (http://www.academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (http://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (http://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools