Multi-Environment Real-Time

Last updated
Multi-Environment Real-Time
Developer Bell Labs [1]
Written in C [2]
OS family Unix-like
Working stateUNIX-RTR/3B21D version still in use.
Marketing target Real-time computing applications
Available in English
Platforms PDP-11, [1] 3B20D, 3B21D
Kernel type Microkernel [1] RTOS

Multi-Environment Real-Time (MERT), later renamed UNIX Real-Time (UNIX-RT), [3] is a hybrid time-sharing and real-time operating system developed in the 1970s at Bell Labs for use in embedded minicomputers (especially PDP-11s). A version named Duplex Multi Environment Real Time (DMERT) was the operating system for the AT&T 3B20D telephone switching minicomputer, designed for high availability; [4] [5] [6] DMERT was later renamed Unix RTR (Real-Time Reliable). [6]

Contents

A generalization of Bell Labs' time-sharing operating system Unix, [7] MERT featured a redesigned, modular kernel that was able to run Unix programs and privileged real-time computing processes. These processes' data structures were isolated from other processes with message passing being the preferred form of interprocess communication (IPC), although shared memory was also implemented. MERT also had a custom file system with special support for large, contiguous, statically sized files, as used in real-time database applications. The design of MERT was influenced by Dijkstra's THE, Hansen's Monitor, and IBM's CP-67. [2]

The MERT operating system was a four-layer design, in decreasing order of protection: [2]

The standard supervisor was MERT/UNIX, a Unix emulator with an extended system call interface and shell that enabled the use of MERT's custom IPC mechanisms, although an RSX-11 emulator also existed. [2]

Kernel and non-kernel processes

One interesting feature that DMERT – UNIX-RTR introduced was the notion of kernel processes. This is connected with its microkernelish architecture roots. In support, there is a separate command (/bin/kpkill) rather than (/bin/kill), that is used to send signals to kernel processes. It is likely there are two different system calls also (kill(2) and kpkill(2), the first to end a user process and the second to end a kernel process). It is unknown how much of the normal userland signaling mechanism is in place in /bin/kpkill, assuming there is a system call for it, it is not known if one can send various signals or simply send one. Also unknown is whether the kernel process has a way of catching the signals that are delivered to it. It may be that the UNIX-RTR developers implemented an entire signal and messaging application programming interface (API) for kernel processes.

File system bits

If one has root on a UNIX-RTR system, they will surely soon find that their ls -l output is a bit different than expected. Namely, there are two completely new bits in the drwxr-xr-x field. They both take place in the first column, and are C (contiguous) and x (extents). Both of these have to do with contiguous data, however one may be to do with inodes and the other with non-metadata.

Example ls -l:

 drwxr-xr-x       root          64  Sun Dec 42003     /cft  xrwxr-xr-x       root          64  Mon Dec 112013     /no5text  Crwxr-xr-x       root         256  Tue Dec 122014     /no5data 

Lucent emulator and VCDX

AT&T, then Lucent, and now Alcatel-Lucent, are the vendor of the SPARC-based and Solaris-OEM package ATT3bem (which lives on Solaris SPARC in /opt/ATT3bem). This is a full 3B21D emulator (known as the 3B21E, the system behind the Very Compact Digital eXchange, or VCDX) which is meant to provide a production environment to the Administrative Module (AM) portion of the 5ESS switch. There are parts of the 5ESS that are not part of the 3B21D microcomputer at all: SMs and CMs. Under the emulator the workstation is referred to as the 'AW' (Administrative Workstation). The emulator installs with Solaris 2.6/SPARC and also comes with Solstice X.25 9.1 (SUNWconn), formerly known as SunLink X.25. The reason for packaging the X.25 stack with the 3B21D emulator is because the Bell System, regional Bell operating companies, and ILECs still use X.25 networks for their most critical of systems (telephone switches may live on X.25 or Datakit VCS II, a similar network developed at Bell Labs, but they do not have TCP/IP stacks).

The AT&T/Alcatel-Lucent emulator is not an easy program to get working correctly, even if one manages to have an image from a pulled working 5ESS hard disk 'dd' output file. First, there are quite a few bugs the user must navigate around in the installation process. Once this is done, there is a configuration file which connects peripherals to emulated peripherals. But there is scant documentation on the CD which describes this. The name of this file is em_devmap for SS5s, and em_devmap.ultra for Ultra60s.

In addition, one of the bugs mentioned in the install process is a broken script to fdisk and image hard disks correctly: certain things need to be written to certain offsets, because the /opt/ATT3bem/bin/3bem process expects, or seems to need, these hard-coded locations.

The emulator runs on SPARCstation-5s and UltraSPARC-60s. It is likely that the 3B21D is emulated faster on a modern SPARC than a 3B21D microcomputer's processor actually runs as measured in MIPS. The most difficult thing about having the emulator is acquiring a DMERT/UNIX-RTR hdd image to actually run. The operating system for the 5ESS is restricted to a few people, employees and customers of the vendor, who either work on it or write the code for it. Having an image of a running system, which can be obtained on eBay, pulled from a working 3B21D, and imaged to a file or put into an Ultra60 or SPARCstation-5, provides the resources to attempt to run the UNIX-RTR system.

The uname -a output of the Bourne shell running UNIX-RTR (Real-time Reliable) is:

 # uname -a   <3B21D> <3B21D>

Though on 3B20D systems it will print 20 instead of 21, though 3B20Ds are rare, nowadays most non-VCDX 5ESSs are 3B21D hardware, not 3B20D (although they will run the software fine). The 3B20D uses the WE32000 processor while the 21 uses the WE32100. There may be some other differences, as well. One thing unusual about the processor is the direction the stack grows: up.

Manual page for falloc (which may be responsible for Contiguous or eXtent file space allocation):

     FALLOC(1)                   5ESS UNIX                   FALLOC(1)      NAME           falloc - allocate a contiguous file      SYNOPSIS           falloc filename size      DESCRIPTION           A contiguous file of the specified filename is allocated to           be of 'size' (512 byte) blocks.      DIAGNOSTICS           The command complains a needed directory is not searchable,           the final directory is not writable, the file already exists           or there is not enough space for the file. 


UNIX-RTR includes an atomic file swap command (atomsw, manual page below):

    ATOMSW(1)                   5ESS UNIX                   ATOMSW(1)      NAME           atomsw - Atomic switch files      SYNOPSIS           atomsw file1 file2      DESCRIPTION           Atomic switch of two files. The contents, permissions, and           owners of two files are switched in a single operation. In           case of a system fault during the operation of this command,           file2 will either have its original contents, permissions           and owner, or will have file1's contents, permissions and           owner. Thus, file2 is considered precious. File1 may be           truncated in case of a system fault.      RESTRICTIONS           Both files must exist. Both files must reside on the same           file system. Neither file may be a "special device" (for           example, a TTY port).           To enter this command from the craft shell, switching file           "/tmp/abc" with file "/tmp/xyz", enter for MML:           EXC:ENVIR:UPROC,FN="/bin/atomsw",ARGS="/tmp/abc"-"/tmp/xyz";           For PDS enter:           EXC:ENVIR:UPROC,FN"/bin/atomsw",ARGS("/tmp/abc","/tmp/xyz")!      NOTE           File 1 may be lost during a system fault.      FILES           /bin/atomsw  

Related Research Articles

Mach is a kernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian to support operating system research, primarily distributed and parallel computing. Mach is often considered one of the earliest examples of a microkernel. However, not all versions of Mach are microkernels. Mach's derivatives are the basis of the operating system kernel in GNU Hurd and of Apple's XNU kernel used in macOS, iOS, iPadOS, tvOS, and watchOS.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">Plan 9 from Bell Labs</span> Distributed operating system

Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has been free and open-source. The final official release was in early 2015.

<span class="mw-page-title-main">5ESS Switching System</span>

The 5ESS Switching System is a Class 5 telephone electronic switching system developed by Western Electric for the American Telephone and Telegraph Company (AT&T) and the Bell System in the United States. It came into service in 1982 and the last unit was produced in 2003.

cd (command) Computer command in various operating systems

The cd command, also known as chdir, is a command-line shell command used to change the current working directory in various operating systems. It can be used in shell scripts and batch files.

In computing, a symbolic link is a file whose purpose is to point to a file or directory by specifying a path thereto.

Unix security refers to the means of securing a Unix or Unix-like operating system. A secure environment is achieved not only by the design concepts of these operating systems, but also through vigilant user and administrative practices.

<span class="mw-page-title-main">Version 7 Unix</span> 7th Edition of Research Unix alias UNIX Time-Sharing System

Version 7 Unix, also called Seventh Edition Unix, Version 7 or just V7, was an important early release of the Unix operating system. V7, released in 1979, was the last Bell Laboratories release to see widespread distribution before the commercialization of Unix by AT&T Corporation in the early 1980s. V7 was originally developed for Digital Equipment Corporation's PDP-11 minicomputers and was later ported to other platforms.

<span class="mw-page-title-main">3B series computers</span> AT&T/Bell family of computers

The 3B series computers are a line of minicomputers produced from the late 1970s by AT&T Computer Systems' Western Electric subsidiary for use with the company's UNIX operating system. The line primarily consists of the models 3B20, 3B5, 3B15, 3B2, and 3B4000. The series is notable for controlling a series of electronic switching systems for telecommunication, for general computing purposes, and for serving as the historical software porting base for commercial UNIX.

tmpfs is a temporary file storage paradigm implemented in many Unix-like operating systems. It is intended to appear as a mounted file system, but data is stored in volatile memory instead of a persistent storage device. A similar construction is a RAM disk, which appears as a virtual disk drive and hosts a disk file system.

RTLinux is a hard realtime real-time operating system (RTOS) microkernel that runs the entire Linux operating system as a fully preemptive process. The hard real-time property makes it possible to control robots, data acquisition systems, manufacturing plants, and other time-sensitive instruments and machines from RTLinux applications. The design was patented. Despite the similar name, it is not related to the Real-Time Linux project of the Linux Foundation.

<span class="mw-page-title-main">Inferno (operating system)</span> Distributed operating system

Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further research of Bell Labs into operating systems, languages, on-the-fly compilers, graphics, security, networking and portability. The name of the operating system, many of its associated programs, and that of the current company, were inspired by Dante Alighieri's Divine Comedy. In Italian, Inferno means "hell", of which there are nine circles in Dante's Divine Comedy.

<span class="mw-page-title-main">Pseudoterminal</span>

In some operating systems, including Unix and Linux, a pseudoterminal, pseudotty, or PTY is a pair of pseudo-device endpoints (files) which establish asynchronous, bidirectional communication (IPC) channel between two or more processes. The master provides means by which a terminal emulator process controls the slave. The slave, emulates a hardware text terminal device. PTY are similar to bidirectional pipes.

Spring is a discontinued project in building an experimental microkernel-based object-oriented operating system (OS) developed at Sun Microsystems in the early 1990s. Using technology substantially similar to concepts developed in the Mach kernel, Spring concentrated on providing a richer programming environment supporting multiple inheritance and other features. Spring was also more cleanly separated from the operating systems it would host, divorcing it from its Unix roots and even allowing several OSes to be run at the same time. Development faded out in the mid-1990s, but several ideas and some code from the project was later re-used in the Java programming language libraries and the Solaris operating system.

<span class="mw-page-title-main">Version 6 Unix</span> 6th Edition of Research Unix alias UNIX Time-Sharing System

Sixth Edition Unix, also called Version 6 Unix or just V6, was the first version of the Unix operating system to see wide release outside Bell Labs. It was released in May 1975 and, like its direct predecessor, targeted the DEC PDP-11 family of minicomputers. It was superseded by Version 7 Unix in 1978/1979, although V6 systems remained in regular operation until at least 1985.

<span class="mw-page-title-main">History of Unix</span>

The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe. Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna – decided to redo the work, but on a much smaller scale.

The No. 4 Electronic Switching System (4ESS) is a class 4 telephone electronic switching system that was the first digital electronic toll switch introduced by Western Electric for long-distance switching. It was introduced in Chicago in January 1976, to replace the 4A crossbar switch. The last of the 145 systems in the AT&T network was installed in 1999 in Atlanta. Approximately half of the switches were manufactured in Lisle, Illinois, and the other half in Oklahoma City, Oklahoma. At the time of the Bell System divestiture, most of the 4ESS switches became assets of AT&T as part of the long-distance network, while others remained in the RBOC networks. Over 140 4ESS switches remained in service in the United States in 2007.

<span class="mw-page-title-main">Unix</span> Family of computer operating systems

Unix is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.

In computing, a system virtual machine is a virtual machine (VM) that provides a complete system platform and supports the execution of a complete operating system (OS). These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use, or of having multiple instances of virtual machines leading to more efficient use of computing resources, both in terms of energy consumption and cost effectiveness, or both. A VM was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real machine".

References

  1. 1 2 3 Bayer, D. L.; Lycklama, H. (1975). MERT: a multi-environment real-time operating system. Fifth ACM Symposium on Operating Systems Principles. Austin, Texas. doi: 10.1145/800213.806519 . Retrieved 2008-08-18.
  2. 1 2 3 4 Lycklama, H.; Bayer, D. L. (July–August 1978). "The MERT Operating System". Bell System Technical Journal . 57 (6): 2049–2086. doi:10.1002/j.1538-7305.1978.tb02142.x. S2CID   8711402.
  3. Bodenstab, D. E.; Houghton, T. F.; Kelleman, K. A.; Ronkin, G.; Schan, E. P. (1984). "UNIX Operating System Porting Experiences". AT&T Bell Laboratories Technical Journal. 63 (8): 1769–1790. doi:10.1002/j.1538-7305.1984.tb00064.x. S2CID   35326182.
  4. Kane, J. R.; Anderson, R. E.; McCabe, P. S. (January 1983). "The 3B20D Processor & DMERT Operating System: Overview, Architecture, and Performance of DMERT". Bell System Technical Journal . 62 (1): 291–301. doi:10.1002/j.1538-7305.1983.tb04396.x. S2CID   31828139.
  5. Grzelakowski, M. E.; Campbell, J. H.; Dubman, M. R. (January 1983). "The 3B20D Processor & DMERT Operating System: DMERT Operating System". Bell System Technical Journal . 62 (1): 303–322. doi:10.1002/j.1538-7305.1983.tb04397.x. S2CID   12901173.
  6. 1 2 Wallace, John J.; Barnes, Walter W. (August 1984). "Designing for Ultrahigh Availability: The Unix RTR Operating System" (PDF). IEEE Computer . IEEE. 17 (8): 31–39. doi:10.1109/MC.1984.1659215. S2CID   17689432.
  7. Ritchie, Dennis M. (1977). The Unix Time-sharing System: A retrospective. Tenth Hawaii International Conference on the System Sciences. Archived from the original on 5 February 2015.