Difference between revisions of "MOS operating system"

From Computer History Wiki
Jump to: navigation, search
(origin)
m (External links: +Extended Memory MOS)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''MOS operating system''' (formally the 'Micro Operating System', but informally 'Mathis' Operating System', after the creator, Jim Mathis of [[SRI International|SRI]]) was a cooperative [[multi-tasking]] [[operating system]], originally for the [[PDP-11]], used for a number of [[packet switch]]es and similar network applications. It was almost certainly written as part of the [[Terminal Interface Unit]] or [[Port Expander]] projects (likely the former), the first two [[application]]s which used it.
+
The '''MOS operating system''' (formally the 'Micro Operating System', but informally 'Mathis' Operating System', after the creator, Jim Mathis of [[SRI International|SRI]]) was a cooperative [[real-time]] [[multi-tasking]] [[operating system]], originally for the [[PDP-11]], used for a number of [[packet switch]]es and similar network applications. It was initially written as part of the [[Terminal Interface Unit]] project, the first [[application]] which used it.
  
It supported [[process]]es (but not [[preemption]], or creation/termination of processes - all processes were created at system [[linking]] time), queued inter-process messages, asynchronous I/O, and allocation and freeing of [[main memory]]; it had no [[file system]] or other support for [[secondary storage]].
+
It supported [[process]]es (but not [[preemption]], or creation/termination of processes - all processes were created at system [[linking]] time), queued inter-process messages ('signals'), asynchronous I/O, and allocation and freeing of [[main memory]]; it had no [[file system]] or other support for [[secondary storage]].
  
The original version was written in [[MACRO-11]], the [[assembly language]] for the PDP-11; it was later re-written at least three times in [[C programming language|C]]: at [[BBN]], at UCL, and at Proteon. The first and last versions were [[portable]]; the latter also ran on the [[Motorola MC68000|MC68000]] and [[AMD29000]].
+
It appears to have been inspired by the [[ELF operating system]] (which also has 'Device Control Tables' and 'I/O Request Blocks', which look similar in their details to the MOS ones, and uses signals to notify of asynchronous I/O operation completion), but it is much simpler than ELF; for instance, all MOS code necessarily shares a single address space, and MOS processes are static, unlike ELF.
 +
 
 +
The original version was written in [[MACRO-11]], the [[assembly language]] for the PDP-11; it was later re-written at least three times in [[C programming language|C]]: at [[BBN]], at UCL, and at Proteon. The first and last versions were [[portable]]; the latter also ran on the [[Motorola MC68000|MC68000]], the [[Intel x86]], and the [[AMD29000]].
  
 
All were somewhat extended from the original; the first two fairly extensively, the latter only to make use of [[up-call]]s in the I/O system, and to support [[pseudo-terminal]]s.
 
All were somewhat extended from the original; the first two fairly extensively, the latter only to make use of [[up-call]]s in the I/O system, and to support [[pseudo-terminal]]s.
Line 11: Line 13:
 
==See also==
 
==See also==
  
 +
* [[Port Expander‎]]
 +
* [[C Gateway]]
 
* [[ANTS terminal system]]
 
* [[ANTS terminal system]]
* [[ELF operating system]]
 
 
* [[MINITS]]
 
* [[MINITS]]
  
 
==External links==
 
==External links==
  
* [https://www.rfc-editor.org/ien/ien164.txt CMOS System Overview]
+
* [http://ana-3.lcs.mit.edu/~jnc/tech/mos/hdr/ MOS operating system] - header files
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/mos/src/ MOS operating system] - source code
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/mos/docs/tiunv2.lpt Terminal Interface Unit Notebook: Volume 2 - Software Documentation] - information on building system loads, as well as MOS documentation
 +
* [https://www.rfc-editor.org/ien/ien136.txt Memory Management Extensions to the SRI Micro Operating Systemfor PDP-11/23/34/35/40] (IEN-136)
 +
* [https://www.rfc-editor.org/ien/ien164.txt CMOS System Overview] (IEN-164)
 +
* [https://www.rfc-editor.org/ien/ien198.txt Extended Memory MOS for a UNIX Development Host] (IEN-198)
  
 
[[Category: Non-DEC Operating Systems]]
 
[[Category: Non-DEC Operating Systems]]
 
[[Category: PDP-11 Operating Systems]]
 
[[Category: PDP-11 Operating Systems]]
 
[[Category: Real-Time Operating Systems]]
 
[[Category: Real-Time Operating Systems]]

Latest revision as of 15:36, 25 January 2024

The MOS operating system (formally the 'Micro Operating System', but informally 'Mathis' Operating System', after the creator, Jim Mathis of SRI) was a cooperative real-time multi-tasking operating system, originally for the PDP-11, used for a number of packet switches and similar network applications. It was initially written as part of the Terminal Interface Unit project, the first application which used it.

It supported processes (but not preemption, or creation/termination of processes - all processes were created at system linking time), queued inter-process messages ('signals'), asynchronous I/O, and allocation and freeing of main memory; it had no file system or other support for secondary storage.

It appears to have been inspired by the ELF operating system (which also has 'Device Control Tables' and 'I/O Request Blocks', which look similar in their details to the MOS ones, and uses signals to notify of asynchronous I/O operation completion), but it is much simpler than ELF; for instance, all MOS code necessarily shares a single address space, and MOS processes are static, unlike ELF.

The original version was written in MACRO-11, the assembly language for the PDP-11; it was later re-written at least three times in C: at BBN, at UCL, and at Proteon. The first and last versions were portable; the latter also ran on the MC68000, the Intel x86, and the AMD29000.

All were somewhat extended from the original; the first two fairly extensively, the latter only to make use of up-calls in the I/O system, and to support pseudo-terminals.

See also

External links