MERT operating system

From Computer History Wiki
Jump to: navigation, search

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).

Internal structure

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

Further reading

  • D. L. Bayer, H. Lycklama, MERT - a multi-environment real-time operating system, (Fifth ACM Symposium on Operating Systems Principles, Austin, Texas, 1975)

External links