MERT operating system
MERT (an acronym for Multi-Environment Real Time) was an influential operating system from Bell Labs. It was one of the earliest to be constructed using an organizational concept that later became known as a microkernel system; it was one of the very earliest successful ones.
MERT was created in the 1970s, and was a spinoff of the UNIX work; it ran on DEC PDP-11 computers, models -11/45 and -11/70 (it made use of the 'supervisor' mode provided by the memory management of those models). The basic kernel (below) mostly written in assembly language; the rest (file manager, UNIX supervisor, etc) was in C.
Although it was not exactly a microkernel as they are today, it was a definitely not a monolithic kernel; it was a major step down the road to microkernels. MERT was an operating system which was divided up into several semi-independent components, all of which ran on a lower-level "kernel" (as they described it).
The kernel provided only the lowest-level basic mechanisms (memory management, process scheduling, etc); the other components needed for an operating system (e.g. a file system) were constructed as processes which ran on top of the kernel. Inter-process communication was done with messages, event flags, and shared memory and shared files.
MERT was also intended to be used in real-time applications, and had a number of features to meet this goal. Process scheduling had real-time mechanisms, as did the file system.
The source code of the original PDP-11 MERT sadly seems to have been lost; it was later renamed 'UNIX Real-Time' (UNIX-RT). MERT was later ported to the multi-processor 3B20D computer in the form of the DMERT operating system - Duplex MERT - which was used for many functions in the Bell System; DMERT was later renamed 'Unix RTR' (Real-Time Reliable).
MERT's basic overall internal organization has four layers:
- the 'kernel', the lowest: provided all the basic primitives such as inter-process communication, process dispatching; also allocation of all basic system resources (main memory, address space units, etc); includes initial trap and interrupt handlers, etc
- privileged processes: device drivers, file manager, memory manager and swapping manager, scheduler
- supervisor processes: provide the environment for user programs (one is a UNIX environment)
- user programs: applications
- D. L. Bayer, H. Lycklama, MERT - a multi-environment real-time operating system, (Fifth ACM Symposium on Operating Systems Principles, Austin, Texas, 1975)
- MERT Release 0 - complete manual at TUHS
- A Structured Operating System for a PDP-11/45 (TM 75-1352-4)
- MERT - A Multi-Environment Real-Time Operating System (TM 75-1352-7)
- The MERT Operating System (TM 78-3114-3)
- The MERT/UNIX Supervisor (TM 78-3114-4)
- H. Lycklama, D. L. Bayer, The MERT Operating System (The Bell System Technical Journal, July-August 1978, Vol. 57, No. 6, Part 2)
- R.E. Anderson, Jr Kane, P.S. Mccabe, The 3B20D Processor & DMERT Operating System: Overview, Architecture, and Performance of DMERT (The Bell System Technical Journal, January 1983, Vol. 62, No. 1)
- M.E. Grzelakowski, J.H. Campbell, M.R. Dubman, The 3B20D Processor & DMERT Operating System: DMERT Operating System (The Bell System Technical Journal, January 1983, Vol. 62, No. 1)