Developer | Bell Labs [1] |
---|---|
Written in | C [2] |
OS family | Unix-like |
Working state | UNIX-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]
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]
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.
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-xroot64SunDec42003/cft xrwxr-xr-xroot64MonDec112013/no5text Crwxr-xr-xroot256TueDec122014/no5data
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
An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.
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.
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.
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.
The Filesystem Hierarchy Standard (FHS) is a reference describing the conventions used for the layout of Unix-like systems. It has been made popular by its use in Linux distributions, but it is used by other Unix-like systems as well. It is maintained by the Linux Foundation. The latest version is 3.0, released on 3 June 2015.
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.
The 3B series computers are a line of minicomputers made between the late 1970s and 1993 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.
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.
In some operating systems, including Unix-like systems, 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.
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.
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.
test is a command-line utility found in Unix, Plan 9, and Unix-like operating systems that evaluates conditional expressions. test was turned into a shell builtin command in 1981 with UNIX System III and at the same time made available under the alternate name [.
Oryx/Pecos is a proprietary operating system developed from scratch by Bell Labs beginning in 1978 for the express purpose of running AT&T's large-scale PBX switching equipment. The operating system was first used with AT&T's flagship System 75, and until very recently, was used in all variations up through and including Definity G3 switches, now manufactured by AT&T/Lucent Technologies spinoff Avaya. The last system based on Oryx/Pecos was the Avaya G3 CSI running release 13.1 Definity software. The formal end of sale was February 5, 2007. Although widely believed to be a Unix-like variant developed directly by Bell Labs, that is not the case, as it is not based on any version of Unix.
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.
In Unix and operating systems inspired by it, the file system is considered a central component of the operating system. It was also one of the first parts of the system to be designed and implemented by Ken Thompson in the first experimental version of Unix, dated 1969.
The Bell Labs Technical Journal was the in-house scientific journal for scientists of Nokia Bell Labs, published yearly by the IEEE society.
In computing, process substitution is a form of inter-process communication that allows the input or output of a command to appear as a file. The command is substituted in-line, where a file name would normally occur, by the command shell. This allows programs that normally only accept files to directly read from or write to another program.
System Integrity Protection is a security feature of Apple's macOS operating system introduced in OS X El Capitan (2015). It comprises a number of mechanisms that are enforced by the kernel. A centerpiece is the protection of system-owned files and directories against modifications by processes without a specific "entitlement", even when executed by the root user or a user with root privileges (sudo).
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".