summaryrefslogtreecommitdiff
path: root/microkernel/mach/gnumach.mdwn
blob: 60256dda9e00d0cab320e1118d177e1ef1254888 (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
[[!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]]."]]"""]]

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


本页翻译:zlc:764582402@qq.com,不足之处请谅解,改进之处请邮件联系。