summaryrefslogtreecommitdiff
path: root/microkernel/mach/gnumach.mdwn
blob: 6b32b85236e092d6cee253767ddd649ac4513f2a (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
[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2011, 2013, 2015 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]].translator:zlc;email:764582402@qq.com"]]"""]]

GNU Mach 是一款微内核, GNU Hurd 系统基于此微内核构建。其提供了进程间通信机制
(Inter Process Communication,IPC),通过该机制将Hurd实现为分布式多服务器,
Hurd据此实现接口,从而实现传统操作系统提供的服务。

GNU Mach 作为 GNU Project 由 Hurd开发人员进行维护,并和 [[Mach]] 3.0 保持兼容。

GNU Mach 主要的 [[设备驱动(device_drivers)]] 来自 Linux 2.0。这些驱动依靠
Mach 中的 Linux [[emulation]] 层运行。

GNU Mach 运行在 x86 机上。详细信息参见
[[硬件兼容列表(hardware_compatibility_list)]],还有关于[[移植(ports)]]到其
他架构上的信息。

最新版本:[[GNU Mach 1.6|news/2015-10-31-releases]]。



# GNU Mach 的优点

GNU Mach 不是世界上已知最先进的 [[微内核(microkernel)]],也不是最小、最快的,
但是其拥有作为 [[Hurd]] 系统基础的,丰富的 [[接口(interfaces)]] 以及特性。


  * **是开放源码的**
    
	任何人在 [[GNU_General_Public_License_(GPL)|gpl]] 的授权下,都可以对其使用
	,修改,并且二次发布。

  * **是易于维护的**
    
	作为一款 [[微内核(microkernel)]],GNU Mach 没有实现太多其他操作系统都有的
	特性,而是仅仅实现了一个用于在其上实现完整的操作系统的,所需特性的最小集
	合。这意味着操作系统大量的代码将剥离 GNU Mach,在其外部进行维护;当这些代码
	需要重构的时候,微内核的代码仍能保持稳定的兼容性。

  * **是可于扩展的**

  	Mach 能非常良好的支持 SMP 和网络集群技术。提供内核级的线程支持,并且内核本
  	身都因此受益。在 [[IPC]] 层的网络透明使得系统可以提供机器边界的资源
  	(目前 GNU Mach 不对NORMA IPC提供支持)。

  * **是实际存在的**

	Mach 微内核是真实存在的,并且现在就可以使用。其不是一个研究或者倡议。用户不
	需要等待,现在就可以开始使用并开发它。Mach 在过去曾经被用在很多操作系统中,
	通常作为一个独立 UNIX 服务器的基础。在 GNU 系统,Mach 作为一个使用的多服务
	器操作系统([[Hurd]])的基础。


# 启动

想要实际的使用这个内核并引导 GNU 操作系统,用户需要一个启动引导程序
(boot loader)。不是所有的启动引导程序都能启动 GNU 操作系统,用户需要一个支持
多重引导启动标准(multiboot standard)的启动引导程序。 GNU 操作系统可使用
[[GNU_GRUB|grub]],其支持非常多的操作系统,包括 GNU/Hurd。


# 开发

  * [[参考手册(Reference_Manual)]]
  * [[构建(Building)]]
  * [[调试(Debugging)]]
  * [[启动跟踪(Boot_Trace)]]
  * [[内存管理(Memory_Management)]]
  * [[Continuation]]s
  * [[抢占(Preemption)]]
  * [[项目(Projects)]]
      * [[规则(Rules)]]
      * [[Open Issues|tag/open_issue_gnumach]]