6 ms·
What is Plan 9?
- Eikon 9mo agoZeroFS [0] is very thankful for what it brought to Linux with the v9fs [1] subsystem which is very nice to work with (network native) compared to fuse :) [0] https://github.com/Barre/ZeroFS https://github.com/Barre/ZeroFS [1] https://docs.kernel.org/filesystems/9p.html https://docs.kernel.org/filesystems/9p.html
- watersb 9mo agoI believe that the Windows Subsystem for Linux (WSL, really a Linux subsystem on Windows) uses the Plan 9 network protocol, 9p, to expose the host Windows filesystem to the Linux virtual environment.
- franciscator 9mo agoI would love to see more Rust on Plan9 implementations, IMHO, could be a good modern combination.
- AlexeyBrin 9mo agoAFAIK there is no Rust compiler for Plan 9 or 9front. The project is using a dialect of C and its own C compiler(s). I doubt adding Rust to the mix will help. For a research OS, C is a nice clean language and the Plan 9 dialect has a some niceties not found in standard C. If you really want Rust, check this https://github.com/r9os/r9 https://github.com/r9os/r9 it is Plan 9 reimplemented in Rust (no idea about the project quality): R9 is a reimplementation of the plan9 kernel in Rust. It is not only inspired by but in many ways derived from the original Plan 9 source code.
- euclaise 9mo agoThere isn't, though you can run it over wasm on it. I tried it a while back with a port of the w2c2 transpiler (https://github.com/euclaise/w2c9/ https://github.com/euclaise/w2c9/), but something like wazero is a more obvious choice
- pjmlp 9mo agoIt is kind of interesting that C inventors, contrary to the folks that worship C, not only did not care about ANSI/ISO compatibility, they ended up exploring Aleph, Limbo and Go. While Bell Labs eventually started Cyclone, which ended up influencing Rust.
- solarexplorer 9mo agoI don't know. I use a lot of Swift and C++ and while both are OK languages there is an absurd amount of complexity in these languages that doesn't seem to serve any real purpose. Just a lot of foot traps, really. Coming back to Plan9 from that world is a breeze, the simplicity is like a therapy for me. So enjoyable. If "modern" means complex, I don't think it fits Plan9.
- einpoklum 9mo agoI don't know about Swift, but in C++, the complexity serves at least three purposes: 1. Backwards compatibility, in particular syntax-wise. New language-level functionality is introduced without changing existing syntax, but by exploiting what had been mal-formed instructions. 2. Catering to the principle of "you don't pay for what you don't use" - and that means that the built-ins are rather spartan, and for convenience you have to build up complex structures of code yourself. 3. A multi-paradigmatic approach and multiple, sometimes conflicting, usage scenarios for features (which detractors might call "can't make up your mind" or "design by committee"). The crazy thing is that over the years, the added complexity makes the code for many tasks simpler than it used to be. It may involve a lot of complexity in libraries and under-the-hood, but paradoxically, and for the lay users, C++ can be said to have gotten simpler. Until you have to go down the rabbit hole of course.
- flopsamjetsam 9mo agoAs a Swift noob, I would appreciate hearing what these foot traps are. This is in the context of Swift as a systems programming language?
- exitb 9mo agoI’m fairly sure that Rust compiler is bigger than the entire 9front (and 9front has Doom in it).
- VorpalWay 9mo agoSince Rust depends on LLVM, which is massive, that is almost certainly true. It seems likely even if you don't include LLVM though.
- anthk 9mo agoYou would like Golang more than Rust. At leat the authors (and ex-authors) for sure they are aware of Go, they invented it too.
- __patchbit__ 9mo agoAn author of the Golang ARM port has ideas for how Go could be better done. Not throwing away names in the compile process is one that is general.
- smorrow 9mo agoDozer might be the most likely path to that. https://notgull.net/announcing-dozer https://notgull.net/announcing-dozer
- irusensei 9mo ago>9front.org frequently questioned answers Knowing that project am I going to be rickrolled?
- rcarmo 9mo agoPeople wanting a Retina-capable drawterm to access Plan9/9front from their Macs are welcome to have a look at https://github.com/rcarmo/drawterm https://github.com/rcarmo/drawterm
- tucnak 9mo agoOoh la la
- xelxebar 9mo agoThanks for the improvements! Two small quality of life fixes over the original that I particularly appreciate: - Window resize works as expected, - Doesn't lose input focus on resize or move, and - *Dyamic* scaling. That last one has been really nice when screen sharing with colleagues.
- rcarmo 9mo agoIt had to happen. I was constantly annoyed at having to RDP over to a Linux box to try stuff. And I might end up doing a Plan9 RDP server as well.
- pjmlp 9mo agoThe transition step between UNIX and Inferno, and between C and Limbo as main userspace language, by its authors. Which tends to be forgotten when praising Plan 9.
- krmboya 9mo agoIs it correct to say Golang is bringing Limbo to the masses?
- pjmlp 9mo agoPartially, Go still doesn't support a few Limbo features. However the influence is quite clear, plus the Oberon-2 style methods and SYSTEM package.
- rcarmo 9mo agoNo, it's bringing Aleph to the masses. Limbo is a cousin, and Dis was certainly very interesting and something I wish had caught on.
- pjmlp 9mo agoAleph lacked GC, which Rob Pike considered the main reason for its implementation failure on Plan 9, and initially bounds checking was also missing. Two key design difference from Go and its two predecessors. Dis is an implementation detail, Go could offer the same dynamism with AOT toolchain, as proven by other languages with ahead of time toolchains available.
- ruslan 9mo agoIs there Plan9 port for RISC-V (RV32I) ?
- chrsw 9mo agoProbably not. And there aren't many 32-bit RISC-V cores with an MMU. I guess you can use a simulator if you found one.
- ruslan 9mo agoI use one written in SpinalHDL. :-) Next question is how much RAM it needs to boot and can it be used without rio ?
- ori_b 9mo agoThere's a 9legacy port, and an in-progress 9front port. https://m.youtube.com/watch?v=EOg6UzSss2A https://m.youtube.com/watch?v=EOg6UzSss2A
- ruslan 9mo agoThat's interesting, thanks. I feel a need for simple multitasking/networking OS for synthesizable RV32I core (not RTOS like, but more like Unix or CP/M). Would be nice to try Plan9 on it once port is out.
- rramadass 9mo agoIMO, the biggest curse of the Internet age is how Distributed OS's did not become mainstream. Maybe we should repackage these as Unikernels and run our apps using their distribution services directly on a hypervisor.
- zozbot234 9mo agok8s is really just a distributed OS implemented on top of Linux containers, only with extra facilities for automated tuning, scaling and overall management that are lacking on bare plan9.
- ori_b 9mo agoPlan 9 is still alive and kicking -- The next Plan 9 conference will be in Victoria, BC in Canada later this year. https://iwp9.org/ https://iwp9.org/ 9front averages several commits a day: https://git.9front.org/plan9front/9front/HEAD/log.html https://git.9front.org/plan9front/9front/HEAD/log.html
- __turbobrew__ 9mo agohttps://git.9front.org/plan9front/9front/b18221b10c83d81a9eb4d5f896ad02e3b69095f5/commit.html https://git.9front.org/plan9front/9front/b18221b10c83d81a9eb...
- i4k 9mo ago> Theo is more specific than troll; it presents insults from OpenBSD founder Theo de Raadt. check fortune(1) command.
- __turbobrew__ 9mo agoThat makes a lot more sense, especially as someone who has been on the receiving end of Theo on the OpenBSD mailing list.
- pseudohadamard 9mo agoIt's a kind of mark of distinction, like Rodney Rude fans being personally insulted by him. I wonder if there's various grades? Does a personal insult in private email rate higher than a general one on a mailing list?
- tombert 9mo agoI’ve been on/off playing with 9front on an old laptop. I’ve been having a lot of fun with it, it’s fun to write code for, but i have had a hard time using it as anything but a toy. I would love to use it as my main desktop, but ultimately (and kind of unsurprisingly), the blocker is the lack of a modern browser and a lack of video acceleration. I’m sure I could hobble something together with virtualization for the former but I don’t see a fix for video acceleration coming. Maybe I could install it on a server or something.
- jes5199 9mo agoI’m not sure it still makes sense to do OS research so close to the metal. Most computing is done up on the application level, and our abstractions there suck, and I haven’t seen any evidence that “everything is a file” helps much in a world of web APIs and SQL databases
- marssaxman 9mo agoSome of us are still interested in the world underneath all that web stuff! Multiple experimental operating systems at multiple abstraction levels sounds like a good idea, though. What sort of system software would you like to build?
- ogogmad 9mo agoOperating systems are where device drivers live. It sounds awfully impractical to develop alternatives at this stage. I think OP is right. I think OSes should just freeze all their features right now. Does anyone remember all the weird churn in the world of Linux, where (i) KDE changed from version 3 to 4, which broke everyone's KDE completely unnecessarily (ii) GNOME changed from version 2 to 3, which did the same (iii) Ubuntu Linux decided to change their desktop environment away from GNOME for no reason - but then unchanged it a few years later? When all was said and done, nothing substantive really got done. So stop changing things at the OS level. Only make conservative changes which don't break the APIs and UIs. Time to feature-freeze, and work on the layers above. If the upper layers take over the work of the lower layers, then over time the lower layers can get silently replaced.
- lproven 9mo ago> Ubuntu Linux decided to change their desktop environment away from GNOME for no reason Oh, there absolutely were reasons. I covered them here: https://www.theregister.com/Print/2013/06/03/thank_microsoft_for_linux_desktop_fail/ https://www.theregister.com/Print/2013/06/03/thank_microsoft... I have never had so much negative feedback and ad-hom attacks on HN as for that story, I think. :-D Short version, the chronology goes like this: 2004: Ubuntu does the first more-or-less consumer-quality desktop Linux that is 100% free of charge. No paid version. It uses the current best of breed FOSS components and they choose GNOME 2, Mozilla, and OpenOffice. By 2006 Ubuntu 6.06 "Dapper Drake" comes out, the first LTS. It is catching on a bit. Fedora Core 6 and RHEL 4 are also getting established, and both use GNOME 2. Every major distro offers GNOME 2, even KDE-centric ones like SUSE. Paid distros like Mandriva and SUSE as starting to get in some trouble -- why pay when Ubuntu does the job? Even Solaris uses GNOME 2. 2006-2007, MS is getting worried and starts talking about suing. It doesn't know who yet so it just starts saying intentionally not-vague-at-all things like the Linux desktop infringes "about 265 patents". This is visibly true if you are 35-40 years old: if you remember desktop GUI OSes before 1995, they were all over the place. Most had desktop drive icons. Most had a global menu bar at the top. This is because most copied MacOS. Windows was an ugly mess and only lunatics copied that. (Enter the Open Group with Motif.) But then came Win95. Huge hit. After 1995, every GUI gets a task bar, it gets buttons for apps, even window managers like Fvwm95 and soon after IceWM. QNX Neutrino looks like it. OS/2 Warp 4 looks like it. Everyone copies it. Around the time NT 4 is out and Win98 is taking shape, both KDE and GNOME get going and copy the Win9x look and feel. Xfce dumps its CDE look and feel, goes FOSS, and becomes a Win95 copy. MS had a case. Everyone had copied them. MS is not stupid and it's been sued lots of times. You betcha it patented everything and kept the receipts. The only problem it has is: who does it sue? RH says no. GNOME 3 says "oh noes our industry leading GU is, er, yeah, stale, it's stagnant, it's not changing, so what we're gonna do is rip it up and start again! With no taskbar and no hierarchical start menu and no menu bars in windows and no OK and CANCEL buttons at the bottom" and all the other things that they can identify that are from Win9x. GNOME is mainly sponsored by Red Hat. Canonical tries to get involved; RH says fsck off. It can't use KDE, that's visibly a ripoff. Ditto Xfce, Enlightenment, etc. LXDE doesn't exist yet. So it does its own thing based on the Netbook Launcher. If it daren't imitate Windows then what's the leading other candidate? This Mac OS X thing is taking off. It has borrowed some stuff from Windows like Cmd+Tab and Fast User Switching and stuff and got away with it. Let's do that, then. SUSE just wearily says "OK, how much? Where do we sign?"
- lizknope 9mo agoWhy did BSD make Unix sockets something outside of the file system? I can do this in bash but I always thought it would be more elegant to do a similar thing in C. I thought Plan 9 handled it more like this? cat < /dev/tcp/localhost/22 SSH-2.0-OpenSSH_10.0
- somat 9mo agoThey did not have the original unix vision. and it is a lot easier to to design an interface as a programming interface than shoehorn it into a filesystem interface. I think having a filesystem interface is pretty great, and plan9 showed it could be done. but having to describe all your io in the [database_key, open(), close(), read(), write(), seek()] interface. can be tricky and limiting for the developer. It is pretty great for the end user however. Having a single api for all io is a super power for adaptive access patterns. I think the thing that bothers me the most about the bsd socket interface is how close it is to a fs interface. connect()/bind() instead of open(), recv()/send() instead ot read()/write() but it still uses file discripters so that stuff tends to work the same. We almost had it. As much as I like BSD and as great an achievement that the socket interface was, I still think this was their big failure.
- enriquto 9mo ago> can be tricky and limiting for the developer. It is pretty great for the end user however. This seems to be a great general principle of api design! The best apis are those that are hated by the developer and loved by the end users.
- arghwhat 9mo ago> The best apis are those that are hated by the developer and loved by the end users. No, just those loved by the API consumer. Negative emotions on one end doens't do anything positive. In the case of plan9, not everything can be described elegantly in the filesystem paradigm and a lot of things end up having really awkward "ctl" files which you write command strings to that the fileserver needs to parse. It also handicaps performance due to the number of filesystem operation roundtrips you usually end up making. Maybe if combined with something io_uring-esque, but the complexity of that wouldn't be very plan9-esque.
- mentalgear 9mo agoModern Plan9 web version https://github.com/tractordev/apptron https://github.com/tractordev/apptron
- yjftsjthsd-h 9mo agoThat's cool, but what about it is plan9-like?
- flippyhead 9mo ago> A printed version of the proceedings will be provided to the attendees How adorable!
- nubinetwork 9mo agoI was hoping it would explain "what is Plan 9", or rather, "why is it called plan 9, and what were the other 8 plans?"...
- nticompass 9mo agoIts name ("Plan 9 from Bell Labs") is a reference to the movie "Plan 9 from Outer Space" :-)