summaryrefslogtreecommitdiff
path: root/microkernel/mach.mdwn
blob: 6531ead9c2a5fca699e3034f186a48de978a205e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[//]: # ([[meta copyright="Copyright © 2007, 2008, 2010, 2012 Free Software Foundation, Inc."]])

[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]

[[!meta title="Mach"]]

Mach is a so-called first generation [[microkernel]]. Originally developed by Carnegie Mellon University (CMU) from 1985 to 1994, which was then forked and carried from 1996 onward by GNU. It is the
microkernel currently used by the [[Hurd]].

GNU Mach is mostly shipped under a BSD/MIT license, some parts are shipped under
the General Public License, either version 2, or (at your option) any later
version.
The Linux drivers part is shipped under the General Public License version 2,
but that can be disabled easily at compile time.

  * [[Concepts]]
      * [[Deficiencies]]
  * [[Documentation]]
  * [[History]]
      * [Torvalds, Tanenbaum
        Debate](http://choices.cs.illinois.edu/cache/Linus_vs_Tanenbaum.html)


# Implementations

  * [[GNU_Mach|gnumach]]
  * [Apple's XNU (Darwin)](https://github.com/apple-oss-distributions/xnu) (**non-free**)
  * [[open_issues/OSF_Mach]]


# Related

  * [[Mach_Interface_Generator_(MIG)|mig]]


[[!ymlfront data="""

kernel_foundation_unix:

  "M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and
  M. Young, Mach: A New Kernel Foundation for UNIX Development, USENIX
  Conference Proceedings, July 1986.  Paper
  [\[pdf\]](http://www.cs.toronto.edu/~demke/469F.06/Handouts/mach_usenix86.pdf)."

kernel_interface:

  "Mach 3 Kernel Interfaces.  Open Software Foundation and Carnegie Mellon
  University.  Keith Loepere, Editor.  NORMA-MK12: July 15, 1992.  Book [\[ps
  (HTTP)\]](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps),
  [\[ps
  (FTP)\]](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_interface.ps)."

kernel_principles:

  "Mach 3 Kernel Principles.  Open Software Foundation and Carnegie Mellon
  University.  Keith Loepere.  NORMA-MK12: July 15, 1992.  Book [\[ps
  (HTTP)\]](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps),
  [\[ps
  (FTP)\]](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/kernel_principles.ps)."

server_interface:

  "Mach 3 Server Writer’s Interfaces.  Open Software Foundation and Carnegie
  Mellon University.  Keith Loepere, Editor.  NORMA-MK12, user15: July 15,
  1992.  Book [\[ps
  (HTTP)\]](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_interface.ps),
  [\[ps
  (FTP)\]](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_interface.ps)."

server_writer:

  "Mach 3 Server Writer’s Guide.  Open Software Foundation and Carnegie Mellon
  University.  Keith Loepere, Editor.  NORMA-MK12, user15: July 15, 1992.  Book
  [\[ps
  (HTTP)\]](http://www.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_writer.ps),
  [\[ps
  (FTP)\]](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/osf/server_writer.ps)."

vm:

  "R. Rashid, A. Tevanian, M. Young, D. Golub, and R. Baron,
  Machine-Independent Virtual Memory Management for Paged Uniprocessor and
  Multiprocessor Architectures, 2nd ACM Symposium on Architectural Support for
  Programming Languages and Operating Systems (ASPLOS), October 1987.  Paper
  [\[pdf\]](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.111.7918&rep=rep1&type=pdf),
  presentation
  [\[ppt\]](http://www2.cs.uh.edu/~paris/6360/PowerPoint/Mach.ppt)."

"""]]