3 ms·
Namespaces: a program's view of the network is a single, coherent namespace that appears as a hierarchical file system but may represent physically separated (l
by fghtr 7y ago
Namespaces: a program's view of the network is a single, coherent namespace that appears as a hierarchical file system but may represent physically separated (locally or remotely) resources
Standard communication protocol: a standard protocol, called Styx, is used to access all resources, both local and remote
This looks similar to Qubes Air roadmap: https://www.qubes-os.org/news/2018/01/22/qubes-air/ https://www.qubes-os.org/news/2018/01/22/qubes-air/
- rhabarba 7y agoExcept that you cannot run a Qubes CPU server without a giant overhead.
- fghtr 7y agoAs a happy Qubes user, the overhead in CPU is barely noticeable for Xen virtualization. One needs a lot of RAM though.
- henesy 7y agoThe concept here is fairly profound and you could make the analogy of power to something like Lisp. Lisp everything is a symbol, in Plan9 everything is a file and all namespaces are mutable. This concept is combined in the Interim OS experiment[1]. The idea of everything is a file is very literal and very serious compared to say, unix. It's worth noting that 9p, while a filesystem protocol, is closer in concept to a REST api than something like say ext4. In Plan9, the kernel could be thought of as a 9p connection router/multiplexer and all system resources and all servers must express themselves as 9p filesystems. The tooling 9p provides allows you to take trees of named objects (filesystems) and rearrange them however you please and place child processes under rules for modifying their own trees and how they can break scope, if at all. Forking is more dynamic as provided by rfork[2] where you can give a child a specific subset of your process's namespace. So you could make a child who can only see specific files, executables, or resources and make it so that the child can't mount, unmount, etc. [1] Interim OS: https://github.com/mntmn/interim https://github.com/mntmn/interim [2] http://man.cat-v.org/9front/2/fork http://man.cat-v.org/9front/2/fork Some cool manuals: - http://man.cat-v.org/9front/1/bind http://man.cat-v.org/9front/1/bind - http://man.cat-v.org/9front/1/ns http://man.cat-v.org/9front/1/ns - http://man.cat-v.org/9front/3/proc http://man.cat-v.org/9front/3/proc - http://man.cat-v.org/9front/5/intro http://man.cat-v.org/9front/5/intro