5

有人说,在计划 9 中,一切都是文件。

请列出所有内容,

即plan9中文件系统中表示的所有东西(尤其是*nix os-es中不是文件的东西)。

4

4 回答 4

12

“一切都是文件”并不完全正确,而是大多数东西都有一个类似文件的界面。它可能看起来像分裂头发,但有区别。我认为我无法列出所有内容,但我会给你一些例子。

  • TCP/IP 的接口是一个文件系统,/net暴露“文件”
  • 文本编辑器acme具有关联的控制文件,可以向其中写入文本命令以更改窗口中的文本
  • 鼠标和键盘表示为数据文件,/dev/mouse例如
  • 窗口系统rio公开了一个文件系统接口
  • Web 浏览器从已挂载的文件系统abaco中读取webfs

有趣的是这种安排会“退出”什么样的交互。由于大多数内容都是某个文件中的文本,因此您可以使用普通的 shell 脚本来实现诸如 IRC 客户端之类的东西(直接将文本读/写到网络“文件”)。

/sys/doc目录中(和网络上)有很多关于计划 9 的设计和实施的论文。

于 2011-04-30T01:33:43.663 回答
5

对于(几乎)完整的列表,请查看手册部分3 devices4 file servers

基本思想是所有资源看起来都像文件系统。内核以设备的形式公开资源,以文件服务器的形式公开用户程序。

这允许在网络环境中轻松共享资源。例如,要使用连接到另一个工作站的鼠标,您只需将(用 Plan 9 术语绑定) /dev/mouse从该工作站映射到您的名称空间。要使用另一台机器作为所有 tcp 连接的代理,只需将/net/tcp从该机器绑定到您的名称空间。

细节都经过深思熟虑,该系统在实践中运行良好。浏览文档手册页,如果您在那之后仍然好奇,请尝试安装它以查看自己。

于 2011-05-09T13:06:33.043 回答
1

计划 9 以文件系统为中心,因此它将系统的每个元素都公开为一个文件,这是 UNIX 的基本理念。通过这种方式,协同作用被提升到环境中,例如,您可以从网络的任何节点访问受支持的设备,而无需任何类型的配置。

于 2011-05-02T06:48:33.353 回答
0

正如twopoint718所说,Plan9服务的“风格”是提供类似文件的界面。

不可能列出“所有内容”,因为任何人都可以编写另一个服务并通过合成文件接口公开它。

我喜欢将 Plan9 风格视为基于大块对象的,或者如 Alan Kay 所说:“基于消息传递”的系统。您通过实现这些服务器(当前范式中的微服务)来构建系统,定义它们的接口,然后通过“连接”组成服务来集成更全面的系统。

于 2014-08-05T23:45:09.763 回答