4 ms·
Plan 9 from Bell Labs
- tyingq 6y agoThe 9p filesystem found its way into KVM's VirtFS. Curious if there's other active places where parts of Plan 9 are being used.
- lsllc 6y agoMuch of the Golang toolchain came from Plan 9: https://news.ycombinator.com/item?id=8817990 https://news.ycombinator.com/item?id=8817990 EDIT: and the Gopher mascot was designed by Reneé French who also designed Glenda the Plan 9 bunny: https://golang.org/doc/faq#gopher https://golang.org/doc/faq#gopher
- LukeShu 6y agoShoot, much of the Go lang team came from Plan 9. And they brought a lot of code and ideas with them. Currently on my mind os `os.FileMode`; here's a comment I wrote in some Go code that interfaces with Python: // A StatMode represents a file's mode and permission bits, as represented in Python // (i.e. `os.stat()`'s `st_mode` member). Similar to how Go's `os.FileMode` assigns bits to have // the same definition on all systems for portability, Python's `stat` assigns bits to have the same // definition on all systems for portability. And it just so happens that Go's bits match those of // Plan 9, and Python's bits match those of the Linux kernel. type StatMode uint16 PS: If you weren't aware, Renée French's connection to Plan 9 and Go is largely that she's married to Rob Pike.
- lsllc 6y agoI did not know the about Reneé and Rob! Thanks!
- dmitshur 6y agoThe image and image/draw package design[1] is also inspired by Plan 9. [1] https://blog.golang.org/image-draw https://blog.golang.org/image-draw
- glangdale 6y agoIt's used, bizarrely enough, to communicate between the Windows and Linux sides of Windows Subsystem for Linux 2 - if I remember correctly, it's used to expose NTFS to the Linux side.
- PAPPPmAc 6y agoAnd in roughly the same role (Host FS parts exposed to the VMs) in ChromeOS's Crostini container runtime. https://chromium.googlesource.com/chromiumos/docs/+/HEAD/containers_and_vms.md https://chromium.googlesource.com/chromiumos/docs/+/HEAD/con...
- paul_f 6y agoThe original Cisco PIX firewall used modified Plan 9 as the operating system. In fact, despite the official history, the name PIX came from Plan 9, or Plan IX. I know this because the person who wrote the entire PIX software stack, Brantley Coile, told me.
- akhilcacharya 6y agoWhy is the 9P filesystem used to frequently for these applications? Is it just that much better than the alternatives?
- jsolson 6y agoIn general, 9P2000 is simple and fairly elegant. If you don't need POSIX semantics (and fs metadata), it's really quite simple to implement. For a bit more cost in terms of complexity you can go for 9P2000.u which makes things POSIXy enough if you've got a single client (as you do with VM -> host). This is great if you want to provide virtual filesystems, either proxied from the host or backed by something more exotic. In addition to QEMU, the gVisor folks (https://gvisor.dev/ https://gvisor.dev/) have made heavy use of 9P (with enhancements) for similar reasons (in addition to Google being generally populated with Plan 9 aficionados). Then, there's 9P2000.L... This has that "let's just take the filesystem vtable and export it as a protocol" flavor. This works well enough on Linux if you're just looking to translate the calls over into syscalls. I wouldn't recommend implementing a bespoke server for it, though. You're better off just implementing things with FUSE.
- xfer 6y agoIsn't WSL using 9p to mount the linux fs on windows side? https://devblogs.microsoft.com/commandline/whats-new-for-wsl-in-windows-10-version-1903/#how-it-works https://devblogs.microsoft.com/commandline/whats-new-for-wsl...
- williesleg 6y agoWas supposed to be unix 2.0 but all the licensing horseshit from unix left them to shove it right up their butt. Now it's open source. 30 years late, pal. Maybe they can use it in india so they can all put it on their resumes just to say they're all experts in plan 9.
- EVdotIO 6y ago9front is the fork you're looking for.
- lsllc 6y agoHere's the 9front FAQ: http://fqa.9front.org http://fqa.9front.org And the 9front install guide (shields eyes from 90's HTML): http://fqa.9front.org/fqa4.html http://fqa.9front.org/fqa4.html Or maybe this is more useful: https://gist.github.com/99z/740bd7fdc020154049ebd1476f55ada2 https://gist.github.com/99z/740bd7fdc020154049ebd1476f55ada2 HTH.
- LinuXY 6y agoIn before someone ports this to Rust.
- testing_1_2_3_4 6y agoIf you like this, I do a weekly roundup of open source projects that includes an interview with one of the devs you can subscribe to. https://console.substack.com/ https://console.substack.com/
- LukeShu 6y agoA dead comment asserts that the reason Plan 9 didn't succeed as "unix 2.0" is because of licensing, and because it only became open source "30 years late". This is an interesting argument and perhaps has merit, but as a matter of fact: It became open source in 2002, 10 years after the initial 1992 release; albeit under a GPL-incompatible license. In 2014 it was released under the GPLv2; 22 years after the initial release. Either way; less than 30 years.
- calvinmorrison 6y agoIn truth it's closer to this "To get people to switch to X competitor, it needs to not be better, but 10 times better" I am sure I hacked that quote up badly but, the point is, sure plan9 is cool, but it wasn't better-er enough to get people to switch. Instead people brought a lot of plan9 concepts TO other systems. That's a good thing.
- testing_1_2_3_4 6y agoOnly because I was just reading the Wikipedia page before I posted this :) It looks like Plan 9 failed simply because it fell short of being a compelling enough improvement on Unix to displace its ancestor. Compared to Plan 9, Unix creaks and clanks and has obvious rust spots, but it gets the job done well enough to hold its position. There is a lesson here for ambitious system architects: the most dangerous enemy of a better solution is an existing codebase that is just good enough. — Eric S. Raymond
- pjmlp 6y agoWhen you are done praising Plan 9, head on to Inferno and Limbo, which are actually the last OS developed by the authors at Bell Labs and contain the genesis of Go. http://doc.cat-v.org/inferno/ http://doc.cat-v.org/inferno/ http://www.vitanuova.com/inferno/ http://www.vitanuova.com/inferno/ http://www.vitanuova.com/inferno/docs.html http://www.vitanuova.com/inferno/docs.html