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

It's a truly distributed operating system and it's unix taken to it's logical conclusion. Everything is a file and everything is network transparent, thanks to 9P. The first wikipedia article is very worthwhile reading - this is a little except that gives you the idea:

> "Unix allows file systems to be built up from disparate resources using concepts such as links and file system mounts. These features masked the original directory; if one mounts a new filesystem on the directory named "net", one can no longer access its previous contents until the operation is reversed.

> Plan 9 introduced the idea of union directories, directories that combine resources across different media or across a network, binding transparently to other directories. For example, another computer's /bin (applications) directory can be bound to one's own, and then this directory will hold both local and remote applications and the user can access both transparently.

> Using the same system, under Plan 9 external devices and resources can be bound to /dev, allowing any device to be shared over the network without any additional code."

So, you can union mount other machines /dev/cpu/ folders into your machine's /dev/cpu folder and then have access to all the CPU's. Same for all other hardware, software and storage.

Just these two things - Union Mounts and 9P - when built into the whole system, create a very dynamic distributed computing environment. I really, really wish more of this would make it into Linux. We've kinda got some of it, but without joining up all the other bits, the real power isn't quite there.

More:

http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs http://plan9.bell-labs.com/plan9/ http://en.wikipedia.org/wiki/9P2000 http://en.wikipedia.org/wiki/V9fs http://en.wikipedia.org/wiki/List_of_distributed_computing_p... http://en.wikipedia.org/wiki/Inferno_\(operating_system\) http://doc.cat-v.org/plan_9/4th_edition/papers/plumb http://swtch.com/plan9port/



"Just these two things - Union Mounts and 9P - when built into the whole system, create a very dynamic distributed computing environment. I really, really wish more of this would make it into Linux."

Union mounts and 9P are already available in Linux.[1][2] What other things would you like to see?

[1] - https://lwn.net/Articles/325369/

[2] - https://www.mjmwired.net/kernel/Documentation/filesystems/9p...


Union mounts only went into the linux kernel 3 years ago (2014) - and have lots of limitations.

It's also not really a central concept. plan9 doesn't have a $PATH env var, for example - you just union mount all your binaries into `/bin`.

Again, yes there's an implementation on 9p for linux - but it's not baked in and it's not used by the system as a unifying abstraction - this makes it fairly useless:

> Unlike most other operating systems, Plan 9 does not provide special application programming interfaces (such as Berkeley sockets, X resources or ioctl system calls) to access devices.

> Instead, Plan 9 device drivers implement their control interface as a file system, so that the hardware can be accessed by the ordinary file input/output operations read and write.

> Consequently, sharing the device across the network can be accomplished by mounting the corresponding directory tree to the target machine.

It's really having this stuff baked in and then combining them that gives you the power & elegance: https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs#Combinin...


> What other things would you like to see?

C replaced by Go, as Inferno replaced it with Limbo for userpace applications.


Go? Why not Rust or a safe language like SML? Personally, I'd much prefer Scheme for user apps.


I agree with you, but given the similarities of Go and Limbo, with the increasing love of system administrators to it, it seems an easier sell.

As for your SML hint, I leave here "Unix system programming in OCaml" :)

https://ocaml.github.io/ocamlunix/




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

Search: