|
楼主 |
发表于 2003-8-24 11:36:15
|
显示全部楼层
这里简单介绍一下 Mach 的历史
Mach 的雏形是 1975 年 Rochester 大学开发的一个 RIG(Rochester Intelligent Gateway) 的系统。RIG 系统是为一个叫 Eclipse 的 16 位数据通用微机设计的。它的主要研究目标是要说明操作系统可以用模块化的方式构造出来,即作为一种通过消息传递通信的进程,甚至是一组通过网络进行消息传送的过程。系统设计完成后,的确证明了上述思想的正确性。
当这个系统的设计者之一 Richard Rashid 于 1979 年离开 Rochester 大学,移居到 Carnegie-Mellon 大学(CMU)后,他计划在更先进的硬件上继续开发基于消息传递的操作系统。他比较了各种各样的计算机,最终选定了PERQ。PERQ 是一个早期的工程工作站,支持位图显示器、鼠标和网络,同时,它也是可微编程的。这个新的为 PERQ 设计的操作系统叫做 Accent。与 RIG 相比,它增加了保护机制以及对网络透明操作、32 位虚存及其他功能。Accent 最初的版本是 1981 年设计完成并在机上运行的。
到 1984 年,Accent 已经在 150 个 PERQ 工作站上运行了,但是它明显不如 UNIX。这使 Rashid 开始了第三代操作系统项目 Mach 的开发。他希望 Mach 能与 UNIX 兼容,在它之上可以运行当时数量已很多的 UNIX 软件。此外,Mach 比 Accent 在其他一些方面也有所提高,包括线程、一个更好的进程通信机制、支持多处理器以及一个构想很好的虚拟存储系统。
在这期间,DARPA(the U.S. Department of Defense's Advanced Research Projects Agency) 正在寻找一个支持多处理机的操作系统作为它的 SCI(Strategic Computing Initiative) 的一部分,他们选中了 Mach。有了 DARPA 在资金上的支持,Mach 发展得更快了。为了使它与 4.2BSD 兼容,开发者们把 Mach 与 4.2BSD 组合在一个内核中。尽管这样做导致了一个很大的内核,但它的确做到了与 4.2BSD 的绝对兼容。
Mach 的第一个版本是 1986 年为 VAX 11/784,一个四 CPU 的多处理机发布的。之后不久,它被移植到了 IBM 的 PC/RT 上和 Sun 3 上。到 1987 年,Encore 和 Sequent 多处理机也采用了 Mach。尽管 Mach 也有网络设施,但当时它主要是为单台机器或多处理机系统设计的,而不是具域网上的一组机器的透明的分布式的操作系统。
不久以后,为了将 UNIX 的控制权从它的拥有者 AT&T 手中夺走,OSF(Open Software Foundation),一个由 IBM,DEC 和 Hewlett Packard 领导的计算机销售商们组成的集团成立了。它选择了 Mach 2.5 作为它的第一个操作系统 OSF/1 的基础。尽管 Mach 2.5 和 OSF/1 包含了大量的 Berkeley 和 AT&T 的代码,他们仍希望 OSF 至少能控制 UNIX 的发展方向。
到了 1988 年,由于包含了大量的 Berkeley UNIX 的代码,Mach 2.5 变得非常大。1989 年,CMU 从微内核中去掉了所有的 Berkeley UNIX 的代码,将它们放在了用户区。剩下的就是一个纯 Mach 微内核了,这就是 Mach 3.0 版本,它也是 OSF 以后发布的基础。 |
|