概述 #
贝尔实验室的 Plan 9
简介 #
贝尔实验室的 Plan 9 是贝尔实验室自 20 世纪 80 年代末开始开发的一个研究系统。它的最初设计者和作者是 Ken Thompson、Rob Pike、Dave Presotto 和 Phil Winterbottom。从 20 世纪 90 年代到现在,随着开发工作的持续,许多人也加入了他们的行列。
Plan 9 展示了一种解决大多数系统问题的全新且更简洁的方法。整个系统对于 Unix 用户来说可能非常熟悉,但同时又相当陌生。
在 Plan 9 中,每个进程都有自己的可变名称空间。进程可以重新排列、添加和删除自己的名称空间,而不会影响不相关进程的名称空间。名称空间变异包括能够挂载到使用 9P(一种简单文件协议)的文件服务器的连接。连接可以是网络连接、管道或任何其他打开用于读写的文件描述符,另一端是 9P 服务器。整个系统中大量使用自定义名称空间,以呈现新资源(例如,窗口系统)、从另一台机器导入资源(例如,网络堆栈)或向后浏览(例如,转储文件系统)。
Plan 9 是一个操作系统内核,但同时也是一系列配套软件。大部分软件都是新软件,是为 Plan 9 编写的,而不是从 Unix 或其他系统移植而来的。窗口系统、编译器、文件服务器和网络服务都是为 Plan 9 全新编写的。虽然经典的 Unix 程序(如 dc(1)、ed(1) 甚至 troff(1))也已引入,但它们通常采用更新形式。例如,troff 接受以 UTF-8 编码的 Unicode 文档,系统的其余部分也是如此。
贝尔实验室的论文Plan 9对该系统进行了更深入的介绍。
发行 #
Plan 9 在其生命周期内共发布过四个主要版本。
第一版于 1992 年发布,仅供大学使用。第一版包含 Plan 9 的大部分可识别部分,包括内核、ndb、sam、upas、alef 和完整的 UTF-8 支持。Acme 以早期形式提供帮助。CPU 服务器是 Sun Sparcstation、SGI Power 和 SGI Magnum,NeXTstations 和 PC 作为终端。本地构建的 Gnot 和 Hobbit 工作站也用作终端。
第二版于 1995 年以书籍和 CD 形式发布,添加了 acme 和一些较小的实用程序。到第二版发布时,Plan 9 团队正在重新实施名为 Brazil 的系统。1999 年,为了准备发布第三版,Brazil 的名称改回了 Plan 9。
备受期待的第三版于 2000 年 6 月发布,通过互联网免费分发。它引入了一个名为 draw 的新彩色图形操作符和一个名为 plumbing 的新程序连接机制。该发行版引入了一个名为 wrap 的简单更新管理器来安装打包的系统更新。
从第三版发布后不久开始,贝尔实验室团队开始对 9P 协议进行修订,称为 9P2000。与早期版本使用的 9P 相比,9P2000 删除了一些现在繁琐的名称长度限制,在目录元数据中添加了“最后修改符”字段,批量处理消息,并引入了身份验证文件作为将身份验证协议的细节移出 9P 协议本身的机制。
2002 年发布的第四版引入了 9P2000 以及相关的安全代理 factotum(4) 和密钥存储库 secstore(8)。它还引入了 venti(8) 块存储服务器。基于 venti 的文件服务器fossil(4) 于 2003 年初首次亮相。
除了这些程序之外,第四版还引入了一种向系统分发更新的新机制。公共化石文件服务器 sources.cs.bell-labs.com 保存当前文件树,它为任何与互联网连接的 Plan 9 系统提供服务。第四版树经常发生变化,通常每天都会发生变化。客户端运行 replica(1) 工具以使其自己的系统与源保持同步。通过其转储文件系统访问的源的夜间快照提供了方便的发布历史记录。
许可 #
第一版仅供大学使用。
第二版以 350 美元的价格向公众提供,其中包括在整个组织内使用该软件的许可。
对于第三版,朗讯同意根据新许可证 Plan 9 许可证通过互联网免费发布 Plan 9。
第四版根据朗讯公共许可证 1.02 版提供。朗讯公共许可证 1.02 是为了解决 Plan 9 许可证中的缺点而采用的,它与 IBM 公共许可证 1.0 完全相同,只是它不需要将源代码与派生作品一起分发;它是非病毒式的。
自 2021 年 3 月 23 日起,所有第四版均根据 MIT 许可证提供。
当前状态 #
Plan 9 每天都在变化。如上所述,这些变化通过 sources.cs.bell-labs.com 分发给众多 Plan 9 用户。即便如此,Plan 9 仍然忠于其最初的愿景,1992 年第一版系统的用户不需要太多帮助就可以适应当今的系统。
慢慢地,Plan 9 的理念被其他系统采用。Plan 9 是第一个完全支持 UTF-8 Unicode 字符集编码的操作系统。转储文件系统已在 Athena 的 OldFiles 目录或 Network Appliance 的 .snapshot 目录中被模仿。灵活的 rfork(2) 系统调用(轻量级线程的基础)被各种 BSD 衍生产品原封不动地采用,并在 Linux 上以 clone(2) 的形式重新出现。简单的文件协议 9P 已在早期版本的 FreeBSD 和当前版本的 Linux 上实现。
少数公司在销售基于 Plan 9 的产品方面取得了成功。最值得注意的是 Vita Nuova,它继续维护和销售 Inferno,这是 Plan 9 的一个衍生产品,针对机顶盒和其他嵌入式设备。
由于 Plan 9 的系统模型与其他现代操作系统非常不同,因此有时很难将外部软件移植到 Plan 9。特别是,Plan 9 没有功能齐全的 Web 浏览器;webfs(4) 和 html(2) 旨在作为解决方案的步骤。
主页包含指向其他文档和下载信息的链接。
尽情享受吧!