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]]
|