Filesystems Plan9文件类型

Filesystems Plan9文件类型,filesystems,plan-9,Filesystems,Plan 9,据说在计划9中,一切都是一个文件 请列出所有内容 i、 e.plan9文件系统中表示的所有内容(尤其是*nix os es中不是文件的内容)。并非“所有内容都是文件”完全正确,而是大多数内容都有类似文件的界面。这看起来像是吹毛求疵,但有区别。我不认为我能列出所有的东西,但我会给你一些例子 TCP/IP的接口是一个文件系统,/net公开“文件” 文本编辑器acme具有关联的控制文件,可以向其中写入文本命令以更改窗口中的文本 鼠标和键盘表示为数据文件,例如/dev/mouse 窗口系统rio公开文

据说在计划9中,一切都是一个文件

请列出所有内容


i、 e.plan9文件系统中表示的所有内容(尤其是*nix os es中不是文件的内容)。

并非“所有内容都是文件”完全正确,而是大多数内容都有类似文件的界面。这看起来像是吹毛求疵,但有区别。我不认为我能列出所有的东西,但我会给你一些例子

  • TCP/IP的接口是一个文件系统,
    /net
    公开“文件”
  • 文本编辑器acme具有关联的控制文件,可以向其中写入文本命令以更改窗口中的文本
  • 鼠标和键盘表示为数据文件,例如
    /dev/mouse
  • 窗口系统
    rio
    公开文件系统接口
  • web浏览器
    abaco
    从安装的
    webfs
    文件系统读取数据
有趣的是,这种安排会导致什么样的互动。由于大部分内容都是某个文件中的文本,因此可以使用普通的shell脚本来实现诸如IRC客户端之类的功能(将文本直接读/写到网络“文件”)


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

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

有关(几乎)完整的列表,请参阅手册部分和

基本思想是。内核以设备的形式公开资源,以文件服务器的形式公开用户程序

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

细节都经过了很好的考虑,系统在实践中运行良好。浏览,如果您对此仍感兴趣,请尝试一下,看看您自己。

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

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

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