Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Plan 9 shows that you can reduce the complexity of Unix by changing the idea behind mount slightly (mounts are inherited by processes rather than global) and creating a simple network filesystem protocol that applications can use to expose their state through.

In Unix you often get stuck having to create these walled-off systems. Your editor's inner state, for instance, is not visible to other applications, so you need to come up with your own whole programming scheme. Same with your window manager. And all your networking happens through a separate set of APIs that are similar to the file descriptor APIs but different enough that nothing works transparently.

Once you have per-process mounts and a simple network filesystem, all your applications and devices can start exposing their state over that protocol. All your software and hardware are automatically networkable if you follow the design. And you can use Unix utilities to do things that previously would require whole subsystems to be built. You don't need to build your own programming language for Acme, because Acme's state is visible as a filesystem. Same with the window manager. And you don't need to build a custom networking scheme for sharing Acme with your friend on another machine, because you can export Acme's filesystem to that machine (or have your friend export their keyboard onto your machine as a child of the Acme process).

"Everything really is a file" is a good way to sum it up. But that's only possible and relatively safe because of 9P and per-process namespaces.



> Your editor's inner state, for instance, is not visible to other applications, so you need to come up with your own whole programming scheme.

> Same with your window manager.

> You don't need to build your own programming language for Acme, because Acme's state is visible as a filesystem.

I don't see how it's good programming practice to expose your internal state to direct read/write access from other programs. It seems to violate basic encapsulation principles.

Your quotes are making me think of some really important takeaways from the Longhorn disaster with WinFS, detailed in a recent submission[1]:

> More profoundly, Bill’s vision of an ecosystem of applications that all store and share their data in this relational store is in direct conflict with how applications build their data models. While some desktop applications (and almost all internal IT-written ones) use relational stores for their internal data model, they do not want to expose those data models for unmonitored read and write by other applications. I detailed some of the fundamental reasons in the post referenced above, Leaky by Design.[2]

Solutions like this... "what if application state were like a relational data store, or hierarchical FS, that other programs can access", sounds great as a fun programming exercise, but it isn't often how people actually want to design applications.

[1] https://hackernoon.com/what-really-happened-with-vista-4ca7f... [2] https://hackernoon.com/leaky-by-design-7b423142ece0


By "inner state", the parent didn't mean literally the RAM or disk storage used internally by the application, just the logical state that belongs to it. A Plan 9 filesystem is just an interprocess communication API that happens to be structured in terms of virtual 'files' and file operations, kind of like what REST does with HTTP. The application handles all requests itself so it can always limit access or enforce invariants, which was absent in the Microsoft examples you linked.


Exactly.


that sounds really simple and powerful. i am keen to start following this project. Is there a patreon or a donation portal to help fund development?


This isn't really a ’project’ in the sense you seem to intend: it was a 1990s AT&T research project that was abandoned and released under an open source licence in the mid-2000s.


Bum deal. There seems to be some interest at least here on HN, perhaps someone or a group of someones could pick it up and bring it to bear for 2017+?


There is Harvey OS, it's a direct descendant of Plan9 and they accept donations.

https://github.com/Harvey-OS/harvey

The development seems active, the last commit was made 7 hours ago.

Last time I checked the project was still in its early stages. Docs and stability have improved a lot since then.

Sidenote: I think 9P protocol and plan9 userland like ACME editor is available on linux.


Donated. Dropped them a line about a bootable iso

I don't have a ton of cash but I believe in the hacker culture and as an aspiring developer I figure I'd put my money where my mouth is.


Congratulations, HarveyOS is really an intriguing project to support.

It would be nice, if they'd provide an ISO. The thing I noticed about Plan9 clones and Inferno is that, they almost always run entirely in the userland. I think that's the reason HarveyOS does not provide an iso. I am not sure they are building a standalone operating system.

If you're interested you could also try inferno, however getting it up and running is also a hassle.

Lastly, in the case you're not aware, Plan9 and inferno also have a very interesting history. Inferno and Java were once direct competitors. Limbo a programming languages invented for Plan9 is also mentioned in the Dan Brown's best seller Digital Fortress.

IMHO Plan9 spirit still lives in Golang, like the Lisp Machines' spirit lives in Emacs. Maybe with cloud based OS's we could see the ideas behind Plan9 in everyday world. But other than that Plan9 remains an OS for hobbyists and idealist computer folk :).


> It would be nice, if they'd provide an ISO. The thing I noticed about Plan9 clones and Inferno is that, they almost always run entirely in the userland. I think that's the reason HarveyOS does not provide an iso. I am not sure they are building a standalone operating system.

This is a property exclusive to inferno.


Awesome. Thanks.


Wait, are people actually taking plan9 seriously now?


All the Docker (namespaces and cgroups) in Linux seems like a bad copy of Plan9. I'd say yes, but not seriously enough.


That's a really good way of putting it. I could see Plan9 being relevant today. A "unified system" is pretty much what all the cloud stuff is attempting to approximate (and more poorly, of course).


Probably not. But tinkerers love to mess with it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: