Mach是什么

Mach是什么

  Mach 是一个由卡内基梅隆大学发展的微内核的操作系统,为了用于操作系统之研究,特别是在分散与平行运算上。是最早实现微核心操作系统的例子之一,是许多其它相似的计划的标准。

  Mach开发计划在卡内基梅隆大学从1985年运行到1994年,到Mach 3.0版退出。其他还有许多人继续Mach的研究包括犹他大学的Mach 4。Mach的开发是为了取代BSD的UNIX核心,所以是许多新的操作系统的设计基础。Mach的研究到至今似乎是退出,虽然有许多商业化操作系统,如NEXTSTEP 与 OPENSTEP,特别是 Mac OS X(使用XNU 核心)都是使用Mach或其派生系统。Mach的虚拟内存(VM)系统也被BSD的开发者用于CSRG,并出现在BSD派生的系统中,如FreeBSD。Mac OSX与FreeBSD并未保留Mach首倡的微核心结构,除了Mac OSX继续提供微核心于内部处理通信以及应用程序直接控制。

  Mach继承卡内基梅隆大学的Accent kernel,Mach计划主导人Richard Rashid曾于微软的研究部门担任高级人员。另一Mach开发者阿瓦德斯·特凡尼安(Avie Tevanian)曾是NeXT首席程序员,之后担任苹果电脑软件技术部门主管直到2006年。

  现在,一个名为GNU Mach(En:GNU Mach)的计划与GNU HURD联系紧密。Debian GNU/Hurd就是基于GNU Mach的。

Mach概念

  Mach是作为传统UNIX内核的替代品出现的,因此其间的不同之处值得留意。当时的人们已渐渐感受到了早期UNIX中“一切皆文件”的抽象机制的不足,有限的扩展性使得开发者捉襟掣肘,苦不堪言。虽说贝尔实验室的Plan9在此方向上做了进一步努力,可是效果并不理想。现代操作系统需要更进一步的抽象。

  比如UNIX的管道可谓饱受争议。人们迫切需要一个类似管道的机制,允许在程序间交换不同的数据,而不仅仅是文件式的读写。或者换句话说,一套进程间通信机制(IPC)。一时间各路系统(包括UNIX)纷纷推出了各自的IPC机制,然而大多皆是些针对特定目标的库,其通用性仍远远不够。

  鉴于此,卡耐基梅隆大学从Accent内核项目出发,尝试开发了一套基于共享内存的IPC系统。Accent是一个拥有丰富特性的纯实验系统,不过在Accent开发期间,社会上研究操作系统的重点已经有所变化;且UNIX已经被广泛接受作为研究的默认系统,Accent对UNIX的不兼容也限制了它在研究方向上的应用;更甚者,Accent的可移植性似乎并不是很好,而在当时看来(八十年代初)硬件平台的更新换代值正欣欣向荣,似乎会出现一次大爆炸。

推荐阅读