Mach (kernel)

from Wikipedia, the free encyclopedia

Mach is a microkernel that was developed from 1985–1994 as part of a DARPA -funded project at Carnegie Mellon University (CMU). The design goal for Mach was a Unix-compatible operating system, but the kernel can in principle be used for different operating systems . Up to version 2, a complete 4.3BSD kernel was part of Mach, but it could be removed in Mach 3.0. The original CMU Mach3 kernel was further developed for the OSF / 1 operating system and adopted as the Open Software Foundation Mach Kernel , or OSF MK for short , from other Mach implementations for other operating systems. At theUniversity of Utah worked on Mach 4 in the Flux Research Group until 1996, which served as the basis for the free implementation of GNU Mach .

Mach is now considered to be the first generation of microkernels. The L4 microkernel has almost eliminated Mach's greatest weakness, the too slow intercommunication process, and is considered to be the second generation of microkernels. This is why Mach is sometimes referred to as outdated.

development

Mach was developed under the direction of Richard Rashid at Carnegie Mellon University , CMU for short , in 1985 as the successor to Accent . Accent was also developed by Rashid at the CMU between 1979 and 1981 and ran there on the company's own computers until 1985, but was eventually made obsolete by the success of Unix .

Mach should originally have meant MUCK, for English M ultiprocessor U niform C ommunication K ernel . The final name "Mach" was indeed no longer stands, but the essential objectives of development were so clear: multiprocessor capability , easy portability and use of interprocess communication (IPC, short for English interprocess communitation ). As a microkernel, Mach should remain very small and only perform the most necessary functions. The concept of interprocess communication for processing Mach messages to manage individual processes running on it was adopted by Accent, but the virtual memory management as well as the process and thread management are new developments.

At the beginning of development, 4.2BSD -Unix was used as the basis for a Mach operating system. Mach components were gradually built into this existing BSD kernel in order to replace the existing kernel functions or - as planned later - to build these functions on the abstraction in the Mach microkernel. Although it was mainly about the microkernel, the aim was to maintain Unix compatibility from the start. Later it was planned that other existing operating systems would also run on Mach as the kernel, including System V , VMS and even MS-DOS .

The Mach operating system was updated to 4.3BSD when it became available in 1986. Until the first released version in the same year, Mach 1.0, work was carried out to improve the speed over the existing monolithic kernel. In 1988, with Mach 2.0, the kernel was already running on the DEC VAX , IBM RT -PC and Sun  3 architectures . B. BBN Advanced Computers Inc., Evans and Sutherland Computer Division, Encore Computers and NeXT for commercially sold Unix operating systems, u. a. used on the computer architectures IBM RP3, Sequent Balance, Macintosh II , IBM 370 and Intel 80386 . Up to Mach 2.6, large parts of the BSD kernel itself were still included, making Mach larger than a pure BSD kernel, but also fully compatible with it. With Mach 3.0 from 1989, all BSD components were outsourced and Mach became the microkernel, the initial development goal. The remaining pure µ kernel was easier to use for other operating systems. After CMU released Mach3, the µ-Kernel was further developed by the OSF Research Institute as part of the OSF / 1 operating system. Due to the numerous improvements, this kernel was given the name OSF MK.

MkLinux was developed on OSF MK, the improved Mach3 kernel, from 1995 and at the same time OSF MK was ported to the PowerPC platform. MkLinux is designed as a single server , which means that Linux is executed as a single process ( English task ) on the Mach3 microkernel. The XNU kernel used in Rhapsody and macOS is also based on OSF MK , but it is designed as a hybrid kernel and therefore no longer only corresponds to Mach's microkernel concept.

Based on CMU Mach3, was at the University of Utah , shortly UU, in Flux Research Group of the Department of Computer Science ( English Department of Computer Science worked) until 1996 Version 4 of Mach. Mach4 should have served as the kernel for an operating system as part of the Flux project, but after a short time it was no longer developed and abandoned in favor of OSKit. OSKit contains the compatibility layers ( English glue code ) originally developed for Mach4 in order to be able to port Linux drivers and Unix components to other operating systems with relatively little effort.

Mach4 served as the basis for the free implementation of GNU Mach, which is used in the GNU operating system. Building on the Mach microkernel, GNU Hurd provides the Unix-compatible operating system components (analogous to BSD Unix with CMU Mach). In the 1990s, Linux was used as a ( monolithic ) kernel, which resulted in GNU / Linux as the preliminary GNU operating system until the GNU's own kernel - GNU Hurd - was usable. (See GNU / Linux name dispute .)

properties

Mach's design goals also included multitasking and memory protection . As a microkernel, Mach should implement as few of the traditional kernel functions as possible and at the same time implement as many as necessary. This resulted in these four core tasks:

  • Process and thread management, English tasks and threads
  • Interprocess communication, IPC
  • virtual memory
  • Scheduling

As a minimal abstraction, Mach ultimately offers the following system components that rely heavily on interprocess communication (IPC):

  • task : a process that can contain one or more threads
  • thread : the smallest unit of execution that is part of a process
  • port : a simple Mach object reference mechanism implemented by the Mach IPC mechanism
  • port set : a group of ports that share a common message queue
  • message : a basic method of inter-thread communication
  • memory object : a memory object that can be used by processes

Examples

Web links

Individual evidence

  1. Jason Wu, Dan Williams, Hakim Weatherspoon: Microkernels: Mach and L4. (PDF; 1.6 MB) p. 2 , accessed on August 12, 2018 (English).
  2. Porting the Hurd to another microkernel. In: GNU Mach. GNU, February 17, 2015, accessed on August 12, 2018 (English): "... assuming that Mach is no longer considered state of the art ..."
  3. Early beginnings. In: GNU Mach History. GNU, December 18, 2016, accessed August 12, 2018 .
  4. Amit Singh: What NeXT? The Mach Factor. Do. In: kernelthread.org. February 2004, accessed on August 12, 2018 (English): "Richard Rashid recounts that after a series of unsuccessful naming attempts, he came up with the name MUCK (Multiprocessor Universal Communication Kernel). One of his colleagues, Dario Giuse, who was Italian, inadvertently pronounced MUCK as 'Mach', and the name stuck. "
  5. Joseph Boykin, Alan Langerman: Mach / 4.3BSD: A Conservative Approach To Parallelization. (PDF; 1.5 MB) In: Computing Systems, Vol. 3. Encore Computer Corporation, 1990, p. 2 , accessed on August 12, 2018 (English): “The designers of Mach intend to produce a compact, efficient kernel on top of which may be layered interfaces for traditional operating systems such as 4.3BSD, System V, MS-DOS, VMS, etc. "
  6. ^ Richard Rashid, et al. a. : Mach: A System Software Kernel. (PDF; 13 kB) Carnegie Mellon University, Department of Computer Science, November 1988, p. 3 , accessed on October 7, 2018 (English, Section 4. Current Status ).
  7. ^ François Barbou des Places, Nick Stephen, Franklin D. Reynolds: Linux on the OSF Mach3 microkernel. OSF Research Institute, Grenoble and Cambridge, accessed on October 5, 2018 (English): "The OSF Research Institute has made significant improvements and extensions to the original CMU Mach3.0 microkernel, and the result, named OSF MK, is still available for free. "
  8. ^ The Mach System. (PDF; 826 kB) Appendix B. In: unknown. Retrieved August 12, 2018 .
  9. OS / 2 Warp, PowerPC Edition. The PowerPC adventure — by far the most exotic release of OS / 2. In: OS / 2 Museum. Retrieved on December 14, 2018 (English): "(OS / 2 for PowerPCs System Overview) The product was based on the IBM microkernel, which was a refinement of the Carnegie Mellon University Mach microkernel. The microkernel bore no resemblance to the Intel OS / 2 kernel whatsoever and it was also very different from most other operating systems of the time (NeXTSTEP was also based on the Mach microkernel). "