Not just "developed by Bell", but developed by the original authors of UNIX.
Everything gets an overhaul. Dennis Richie and Pike clean up C -- hell, even make(1) gets a complete makeover in mk(1), after 30 years of talking with users and having to use it.
From the perspective of software development, UNIX is the "build one to throw away" version. Plan9 is UNIX on steroids.
Plan 9 is definitely not a second system from UNIX; the aspects of it that failed are not due to over-complexity. Far from it.
Plan 9 failed for a combination of reasons:
1) Gratuitous NIH: the whole lack of support for a POSIX runtime, C++ compiler, etc. meant you couldn't run "normal programs" on it. So no web browser, no access to the gigantic pile of programs that run everywhere else.
There was a project called "APE" (The ANSI Posix Environment) but it was never really kept up to date.
What this meant was first, you couldn't run stuff like a web browser on Plan 9 (and you still can't; please no-one write to inform me that some dweebish half-assed attempt at a web browser is a solution), so you were always using other machines, and second, the design of the system was never impacted by the idea of running "Lots of Software Written By Other People".
It's pretty easy to decide you don't need shared libraries, for example, when your graphics/UI library is written by one guy.
2) The assumptions made about hardware went rapidly wrong: the gap between "CPU servers" and the thin-client-ish things you logged on to were substantial at the time; this assumption went out of date rather rapidly with the explosion of fast PC hardware. Similarly, "everything is a file" based windowing/graphics systems ("/dev/bltblt") started to look nutty with 3D acceleration. Many of the things that looked great in 1992 started to look kinda weird in by 1998.
3) Somewhat related: it never was entirely clear what Plan 9 was for. People keep calling it a research OS, but aside from the early 'research-ish' ideas, I don't think there was a lot of actual research. It was sort of more a "daily driver that won't go" (see point 1). There wasn't a whole lot of reevaluation of design decisions either (point 2). There were some really good ideas in it, right from its inception, but calling it a research OS is weird.
> What this meant was first, you couldn't run stuff like a web browser on Plan 9 (and you still can't; please no-one write to inform me that some dweebish half-assed attempt at a web browser is a solution)
Granted, at the time it was possible, however that didn't fit into it's philosophy.
Notably, there was a way to interface to the internet -- Plan9 has a filesystem for exactly that purpose, all that needed to be written was the frontend.
Like you say, it was possible at the time the decision was "made"; we're talking about duplicating NSCA Mosaic circa 1993, not Chrome.
And in any case, it wasn't necessary to write a web browser from scratch. What was necessary was to support a "normal" side environment to run POSIX, gcc/g++, etc. This would have been a fair bit of effort, but if it had been done (a nice first stop would be to have avoided gratuitous incompatibilities, like "ken c"), the OS could have supported programs not written at the Labs (and a tiny number of other places) and been an actual daily driver.
I write this out of frustration but with a lot of positive feelings about Plan 9; I would have loved to see it thrive. The gratuitous incompatibility made it almost immediately a museum piece, as did the fact that many of the intriguing-for-1990 research decisions made for it went obsolete shortly after with the rise of cheap, powerful PC hardware.
> The gratuitous incompatibility made it almost immediately a museum piece
And yet it made it what it was.
The entire point of plan9 was not to be "Unix System 8" or whatever, it was to go beyond that and shed off the half a century of accumulated kludge. But if it had done what you are suggesting, that's exactly what it would have been.
I don't think this was a failure of Plan9, they just never intended it to be the case. After all, there is no reason to support c++, etc., when many other systems already do that quite well. The goal of Plan9 was to create new systems that would take computers in a different direction, and to do this it is better to avoid legacy.
> it never was entirely clear what Plan 9 was for. People keep calling it a research OS, but aside from the early 'research-ish' ideas, I don't think there was a lot of actual research. It was sort of more a "daily driver that won't go" (see point 1). There wasn't a whole lot of reevaluation of design decisions either (point 2). There were some really good ideas in it, right from its inception, but calling it a research OS is weird.
i always thought it was just a proof of concept for the filesystem they built which was a networkish extension of the original unix ideal (everything on the network is a file)? seems kinda researchy.
it was also good for blowing up some crt displays as the video drivers often tried to drive them with unsupported modes.
was cool that it fit on a few floppies though. i think it was a tech demo.
I wish the plan 9 commentators here would get their facts straight because I'm so bored of dispelling them that I can barely be bothered to do so anymore. tl;dr this post is full of misinformation.
1) Plan 9 has the Mothra web browser which was originally written by Tom Duff but doesn't support any modern features as it was built in the 90's. However, there is a "working" (send patches) port of Netsurf with JS support.
"was a project called APE" ??? You mean there is a library called APE, which has allowed people to port things like video codecs. See the Treason video player.
2) everything as a file is just an abstraction between services and resources. /dev/bltblt is also long long long dead and replaced by /dev/draw sometime in the mid 90's. Where did you get such outdated nonsense from? /dev/draw is a 2d engine that you load text and bitmaps into and issue commands to draw them to the screen. Rumor has it someone is working on a 3D subsystem too. It'd also be nice to have a /dev/gpu where we can load different graphical kernels or gpgpu kernels into. Though have fun reading through 1500+ page hardware manuals for each gpu architecture, if you can get them (it's an extremely hard problem for any os community to solve outside of big corps.)
3) You information is woefully incorrect and your 2/3 points moot. There are a few people who have the ability to run it as a daily driver today if you put the effort in. It hasn't been research since bell gave up on it. It's a lovely little lightweight os with built in network transparent rpc between all programs. Very clean interface and design. It's a shame you didnt put more effort into learning about it and instead post misinformation.
I'm enjoying your tone of weary condescension here, as you incorrect me or barrage me with irrelevant counterpoints on almost every point.
Mothra - and Abaco, and all the others - are a fiasco. None of them have ever been quality browsers for the time; the fact that no-one has given themselves a hernia trying to carry them forward is just an understandable add-on.
The obvious answer has always been right in front of everyone: support standard languages, compilers and tools, even in an emulation layer. Perhaps it could be called "APE", which for some unknown reason you feel the need to furiously incorrect me about ("You mean there is a library"). There was not just a library but a series of programs designed to support the Rest of the World, by Howard Trickey. At one stage I recall claims that it compiled X11.
I'm not entirely clear how a project that came with a brace of different executables and its own environment is a "library", but you do you.
Your point about /dev/draw is not as profound as you think it is. /dev/bltblt got replaced by some other "everything is a file" resource that works in a roughly similar way? You could have knocked me down with a feather. Meanwhile, the rest of the world will keep pumping rich type-checked (more or less) binary data structures into graphics devices, the way they have for the past 2 decades.
There are so many things I really liked about Plan 9; I used it almost exclusively from 1992-1994. The networking was astonishing for the time. The ability to go back to a given day on the file server!!?! But there were a brace of bad decisions that no amount of yelling in Irate Fanboy will compensate for.
I wish the things about Plan 9 had been preserved with a view towards building a viable system that, I dunno, was good for more than LARPing for the handful of people that are "willing to put in the effort to run it as a daily driver". Plan 9 as a 'living system' could have re-evaluated some of the architectural decisions that were made in the late 80s and early 90s as practically every detail of hardware, software and networking changed (notably, the idea that a 'thin client' was a good idea pretty much quietly expired). Instead, it's a museum for people to worship every bad decision made by a small group of smart people; every decision glued together into an unwieldy and incompatible ball.
> Plan 9 as a 'living system' could have re-evaluated some of the architectural decisions that were made in the late 80s and early 90s as practically every detail of hardware, software and networking changed
But that's exactly what it did. And that's exactly the reason you're claiming for it's failure.
What it seems like to me, is that you're trying to have your cake and eat it here. You're saying, on the one hand, that you like Plan9 because of what sets it apart from contemporary and modern systems. Then you're saying that you dislike the distance that it had from those systems because you wish it could have had better interoperability. Do you see how this is inherently contradictory, though? You quite literally cannot have the changes that Plan9 had, and have better interoperability, because those changes were made on a base that is fundamentally conflicting.
It sounds like what you wish they had written UNIX System 8, with Plan 9 Addons™
I think you've misinterpreted what I said: the obsoleted architectural decisions were made by Plan 9 in the late 80s and early 90s.
Main line Plan 9 never went through any real iterations - by 1996, attention was elsewhere, and all of the original designers went off to other things.
If the original designers had still been working on it, they may well have reworked a number of those decisions with the rise of fast and cheap local CPU and storage, 3D acceleration, etc.
I dislike the gratuitous incompatibility of Plan 9. The features that made Plan 9 good have nothing to do with having a weirdo variant C and no working C++ compiler. They broke all sorts of compatibility for no particularly valid reason. As such, they built a system that couldn't run 99% of programs written by people sitting outside the Unix Room.
If they hadn't been so stubborn about this Plan 9 might well be where Linux is - or at least, one of the livelier BSDs.
It's one thing to have original ideas in the OS. I suspect if you hew too close to Linux in an attempt to pick up device drivers, user space programs "entire" (e.g. system call compatibility), you wind up building... Linux. But not being able to run a large pool of programs is laughable. It makes for Bad Research not to mention a really crappy Daily Driver: something that requires amazing levels of Stockholm Syndrome to claim is workable as a regular use OS.
I'm not really sure how that applies here. Apparently Brooks describes this as:
An architect's first work is apt to be spare and clean.
He knows he doesn't know what he's doing, so he does it
carefully and with great restraint.
As he designs the first work, frill after frill and
embellishment after embellishment occur to him. These
get stored away to be used 'next time.' Sooner or later
the first system is finished, and the architect, with
firm confidence and a demonstrated mastery of that class
of systems, is ready to build a second system.
This second is the most dangerous system a man ever
designs. When he does his third and later ones, his
prior experiences will confirm each other as to the
general characteristics of such systems, and their
differences will identify those parts of his experience
that are particular and not generalizable.
The general tendency is to over-design the second
system, using all the ideas and frills that were
cautiously sidetracked on the first one.
(https://wiki.c2.com/?SecondSystemEffect)
But this is not really the case. Since UNIX went through at least two revisions of the basic design in the first stage. Furthermore, Plan9 outright meets all the design goals of the system, and is a genuine improvement on UNIX as a concept. Rob Pike admitted the only reason he stopped using it was because he wasn't interested in porting all of his software to it (And ran Acme in a virtual machine for a very long time while working at Google -- I seem to recall?). Much of the Plan9 software was ported to UNIX, and as I understand it a number of the creators still use parts of it to this day, as much as they are able to.
I don't think Plan9 "failed" because of any technical reason, such at failing to realizing over ambitious goals. It was a research project which worked out very well from what I can see.
CTSS is kind of the great-grand-daddy of operating systems. As well as influencing Unix (via Multics), it also had a lot of influence on DEC operating systems and IBM mainframe operating systems (in particular CP/CMS which evolved into VM/CMS and now z/VM). You can even trace Windows as having ancestry from CTSS via multiple historical paths (CTSS -> Multics -> Unix -> Xenix -> DOS 2.0 -> Windows; CTSS -> CP/CMS -> CP/M -> DOS 1.0 -> DOS 2.0 -> Windows; there's probably even some CTSS heritage in VMS and VMS in-turn influenced Windows NT)
Commits don’t have to be in date order. The date (technically dates, plural) is an attribute of the commit.
Try it yourself by committing and then rebasing the commits into a different order. Or directly edit the metadata by specifying explicit values for the commit and author time stamps.
You are viewing them by date: newest to oldest. Possibly as an artifact of Git's architecture. But more likely because it would be slightly annoying to implement differently, and nobody wanted to do the extra work just to make the user's life easier.
Pandora's been around for 16 years and they only just added a sort button to My Collections. You still can't search your collections.
Pagination-by-grouping-criteria is a holy-grail for so many. It’s not easy to implement, but your users will thank you. Especially if hovering-over the page number button immediately displays the range of data in that page.
GitHub needs it. Web forums need it. Every CRM’s obligatory giant table of customers sorted by name needs it.
There were no commit messages. Since 2002, the change were pushed on a public server with nightly snapshots. At some point, there was a changelog, but it didn't last long.
Brantley Coile noticed the Plan 9 trademark expired and bought it on November 25, 2020.
It was before the transfer of the Plan 9 copyrights to the Plan 9 Foundation (March 23, 2021).
It's finally becoming possible to run Plan9 as a full modern desktop. With the recent Chinese / Subcontinental penetration of Linux, finding other secure alternatives is more important than ever.
It’s a distributed operating system, developed by Bell, as a replacement for Unix, as per Wikipedia [0]
[0]: https://simple.m.wikipedia.org/wiki/Plan_9_from_Bell_Labs
Edit: It might be also important and relevant as fao kindly pointed out to mention that it's "developed by the original authors of UNIX"