The University of California, Berkeley, has been authorised by Alcatel-Lucent to release all Plan 9 software previously governed by the Lucent Public License, Version 1.02 under the GNU General Public License, Version 2.
You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License.
I never really dove too deep into Plan 9, but it has always fascinated me. I think it’s time to learn more – and I suggest you do so too. It’s weekend, after all, right?
This video is a must-see for fans of Plan 9, Raspberry Pi, or both. It’s also a great introduction to the OS itself.
https://www.youtube.com/watch?v=O7ZELOUIyvw
I can imagine the stuff shown in the video would have been pretty impressive in the 70s. Nowadays, however, Plan9 just appears hopelessly out of date. Looking at that video I felt like I had entered a time machine: http://www.youtube.com/watch?v=JLPiMl8XUKU
Well, when I use GNU/Linux these days I tend to stay in either Openbox or xmonad, so Plan 9 does appeal to me on a certain level. I’m a minimalist at heart.
Sure, to each their own, but you have to realize that being for a limited audience necessarily carries with it smaller developer numbers and maintaing a modern OS (even just the kernel) requires *tons* of work. Drivers don’t write/port themselves, bugs need fixing, new CPU revisions need support changes, etc. etc. I guess if you really focused down on what matters to you and tightly controlled your entire execution environment (hardware/software/etc.) you could limit this to a manageable size, but anything close to general-purpose nowadays requires a lot of work, and hobbyist efforts by a small community can only get you so far.
I never said otherwise.
I’m an OS hobbyist, as are many of the readers and contributors here, and I know Plan9 isn’t feasible for a daily use OS. Neither are Amiga, OS/2, BeOS, Haiku, BareMetalOS, Syllable, and dozens of other obscure, outdated, or tiny projects. That doesn’t mean they are uninteresting or not worth reading and talking about. And that’s all I’m doing, sharing my joy for such niche OSes. I don’t think there’s anything wrong with that, especially on this website.
A lot of experimental OS development is done under the GPL, so this should definitely increase cross polination between projects.
Also, I still remember getting the boxed set of Plan 9 for Christmas while in high school…
http://www.vitanuova.com/images/p9box_wbg.jpg
I remember emailing Brian Kernighan a question about it, when I could barely write a hello world program in C, and amazingly he replied (wish I still had that email).
Here’s what he had to say about plan 9 in an interview: ” As for Plan 9, I think that’s too late, unfortunately. I think Plan 9 was a great idea and it should’ve been released under an open-source license when it was first done, eight years ago, but our legal guardians would not permit it. I think that they made a grievous mistake. The current open-source license is definitely worth having but it’s not clear whether Plan 9, at least as a general-purpose operating system, will have much effect except in a relatively small niche. It has many things going for it which make it valuable in different areas, particularly where you need a small and highly portable operating system, but is it going to take over from Linux? Probably not.”
source: http://www.cs.cmu.edu/~mihaib/kernighan-interview/
Edited 2014-02-15 01:36 UTC
I wonder what implications, if any, this has for Glendix:
http://www.glendix.org/
Edited 2014-02-15 02:40 UTC
By the looks of it, very little. The last commit to Glendix was 2009
Little.
Very few Plan9 code can be directly compiled on Linux (or any other OS), thanks to the unusual C syntax and includes of the Plan9’s compiler and standard library, respectively.
Plan9 is not a POSIX compliant OS, indeed, Plan9 was made for the very purpose of replacing UNIX and his concepts. It does offer a compatibility layer to port POSIX/ANSI C things to it although.
So, code made specifically for Plan9 usually stays on Plan9.
Embrace, extend. Where have I seen this before….
I’m afraid this dual-licensing announcement (together with the fact that it is made by UCB, not Lucent) means that Lucent revokes all funding of the project – there were Lucent employee still working on Plan 9 – which means nothing particularly good for Plan 9 in short term.
P.S.: If anyone is interested in running Plan 9, it is probably better to start with 9front,[0] which appears to provide better end-user experience on common i386 hardware at this point.
P.P.S.: Actually the community around Plan 9 doesn’t like GPL too much,[1] so I am puzzled with the motivation behind this move.
[0] http://9front.cat-v.org/
[1] http://harmful.cat-v.org/software/
Yeah I am afraid I can’t give that page (http://harmful.cat-v.org/software/) high marks. There is little (if nothing) in terms of well thought out reasoning, and instead there is just endless damning by anecdote, and accusations. Hell the page on Java even admits the information on Java is out of date but doesn’t care.
That whole section can (to my mind) be read as “here are things we don’t like, and we will use any argument to justify it”.
If that is how the 9front team actually thinks then I personally consider them harmful…
Most of that stuff was maintained by Uriel, he was also a bit opinated, as you can see in a FOSDEM 2006 presentation.
http://www.youtube.com/watch?v=VJSlvoUFkBA
Sadly, he is no longer among us. I miss my discussions with him over at HN/Reddit about Go.
I have no problem with opinionated, but to simply assert things and only provide anecdotes is just intellectually lazy. His assertion that CVS/tarballs is better than SVN is particular example.
I am not asking you to defend him, or anything he said; but honestly 9front would be better off ditching that whole section and simply saying “these are the things we prefer” without any justification.
At first I read “cat-v” as “catb”, and was like, yeah, duh, esr went off the deep-end a few years ago…
ddc_,
“Harmful Things: GPL, LGPL, Apache Software License, MPL, CC.”
“Less harmful Alternatives: SC, MIT/X, BSD, CC0, public domain.”
This is interesting; Too bad they did not provide justifications there. The dislike for the GNU tools kind of makes sense in the context of plan 9, but I don’t get why GPL/LGPL are listed.
Some of us consider the GPL license to be a less free choice than BSD. Of course, in this context I mean code freedom rather than the GNU definition.
Had plan 9 been released under BSDL, parts of it could have been added to *BSD, Linux and various other projects. Now, it’s limited to just GPL licensed stuff.
For someone not in agreement with the GPL, it is almost as frustrating as not having source code because we can’t actually use it. We can modify the original system, but not take the good parts and cross pollinate it.
Note, it is not the change of license, it is dual licensing. Given that Plan 9 community has long track record for not being particularly interested in licenses, I would expect that new commits will continue being dual-licensed, and I’m pretty sure that LPL is acceptable for everyone (with notable exception of RMS and other people who don’t accept anything but ‘[A-Z]*GPL’).
Given how GPL code has coexisted with the BSD licensed nuts and bots in FreeBSD land for a while. What is stopping Plan9 systems to be adopted by the FreeBSD folks are probablytechnical issues rather than silly licensing red herrings.
GPL is actually a pretty good license choice for a small project like this one. When resources are very limited you want to make sure you can get some return from sharing your codebase.
Edited 2014-02-16 22:36 UTC
Here is explanation: http://aiju.de/rant/GPL
(Although it’s a personal blog, I believe it is in line with general cat-v thinking.)
Me, too, I’m puzzled with the license decission. After all, Berkely came up with BSD license and now they push for GPL? It’s both stupid and wrong.
BSD, MIT, Apache would have been much more wise decissions.
Tangentially on topic: one application from plan 9 that is more widely known is Acme text editor that also runs e.g. on Linux:
http://en.wikipedia.org/wiki/Acme_%28text_editor%29
Last I used it years ago, it looked like crap but it seems several people in e.g. fosdem were still using it in GoLang devroom (I wasn’t there, but just noticed that in my twitter stream).
Maybe time to try it again to celebrate the occasion…
Go community has a certain adoration for all things Plan 9 given the background of the language designers.
Having said this, a few things of both Go and ACME are influenced by Oberon.
The ACME mouse interactions are based on the way Oberon GUI works, for example.
What makes plan9 shine is it’s way of implementing things behind the scenes. They learned from the mistakes of others and apply this knowledge to build far better programming interfaces.
Experienced programmers should appreciate plan 9’s achievements in bringing extremely well thought out designs into reality. It’s consistent. Network transparency is more natural. I only wish I got to use it more.
http://www.faqs.org/docs/artu/plan9.html
Plan 9 is what posix should have been. I’m probably biased, but I think posix is holding the industry back.
Plan 9 is a full blown OS, Posix is just an API. A bit of apples to oranges no?
tylerdurden,
You got me there… damn your pedantic musings
How do I fix this. Ok, lets say plan9 had predated the initial posix standards, the standards would have been better to formally adopt the plan9 APIs than what we have now. For better or worse, posix was aimed at formalizing existing unix vendor interfaces rather than designing good ones.
This lengthy rant reflects some of my feelings:
http://www.samba.org/samba/news/articles/low_point/tale_two_stds_os…
Have you even used plan 9, and if so have you used its API in any meaningful form?
tylerdurden,
Yes I used it, albeit a long time ago when I was doing OS research. I didn’t do anything “meaningful with it”. The GUI was off putting and probably still is, but it’s hard to deny the elegance of its functional designs, especially in the context of the nuanced issues that crop up on other platforms. Ultimately though plan9 failed to gain traction, and POSIX designs won out.
So basically Plan 9 (an OS) is better than POSIX (an API) because it is better. OK then.
Edited 2014-02-18 18:42 UTC
tylerdurden,
I don’t see anything in this thread that warranted your response. You never really asked what was better and I had no reason to assume you didn’t know.
However, for those who don’t know, plan 9 takes the ‘everything is a file’ concept from unix and applies it more cleanly & consistently. For example, unix strayed from the everything is a file with ioctls, signals, netfilter/netlink, etc, with plenty of caveats along the way. This leads to the dependence of specialized local userspace tools to administer & control the system state. This might be ok, except you loose the network transparency that plan9 gives you for free. To achieve the same thing on unix you’d have to build some new client & daemon to shuttle commands from a remote system, perform authentication, and call the local syscalls. Every new syscall needs a new build of the daemon & client. So it’s not too elegant, to say nothing of the potential security risks of running a unix userspace daemon as root. Plan9 is elegant because we get all of it for free using the tried and tested security model of the file system.
Plan9 also encourages regular applications to include “file servers” that can be unified into the namespace, which is a very powerful way to query and control running applications.
POSIX signals, on the other hand are overloaded, scale poorly, and less intuitive (ie sending “kill -USR1” to dd to tell it to print it’s status, tells apache to reload configuration & restart, etc). Signals also have their own implementation problems, such as being dropped, restricted to “safe functions”, interrupting normal code flow through the event loop.
My conclusion only a restatement of what’s already been said: most people like the elegance of plan9’s approach, however the vast majority (ie everyone) still continues to target POSIX because it’s the official standard for writing portable code. I don’t know if there’s any mainstream software anywhere that takes advantage of plan9’s features. I would absolutely love if someone could point one out.
Edited 2014-02-18 21:51 UTC
I am going to suggest a slight correction to that statement. If it were just that then all POSIX would need is some refactoring of its APIs into this metaphor to gain all of its benefits.
The way I see Plan 9 is that it sees everything as objects (which can be filesystems) in a namespace ^aEUR” for a specific definition of object and namespace. Because of this things like file version become much easier because the current version of a file is really a namespace representing the head of all current files.
Indeed I think you can get yourself in trouble by reading a path as a collection of files. When I used it, I thought of a path as a collection of objects that interacted with one another.
It was a JOKE. I personally managed to figure you were also jesting when you called me pedantic. Apparently I can even ask a simple question without getting downvoted…
I wasn’t asking what was better, I was simply trying to figure out the actual technical arguments for those claims were. Stylistic preferences are highly subjective, so I tend to ignore them. That’s all.
IMO POSIX is an API for portable code (not necessarily distributed), so perhaps it would make more sense to compare Plan 9 to other distributed systems like Amoeba, OpenSSI, or Kerrighed.
Thanks for the response, in any case.
That is what many think.
However, anyone here that has done POSIX development across multiple UNIX systems can surely agree with me how far from the truth that is.
– Not UNIXs support the same version of POSIX
– Like C, POSIX leaves a few things undefined for the respective OS implementation, signals handling semantic is one example
– POSIX only covers command line applications and daemons, but not how daemons are integrated into the OS
You always end up with OS specific code, and makefiles that try as much as possible to be portable.
I have a pattern with Plan 9. A ritual if you will.
Every two or three years I’ll read an article that will get me excited about Plan 9.
The next day I’ll research Plan 9: parse its documentation, research supported hardware/VMs, scour the web for posts and testimony of Plan 9’s use.
On day three I install Plan 9 and poke around by issuing commands to rc, acclimating to acme with its “mouse chording,” and then attempting to get networking setup.
Day four is my Plan 9 day of rest.
Day five I become apathetic to Plan 9, say “meh” and install another OS.
And that’s the thing. I think the architecture of Plan 9 is fascinating and revolutionary, but the UI is firmly stuck in the 70s/early 80s; there isn’t that much useful software (unless you live on the command line); and sooner or later you realize you have work to do.
Syllable, MorphOS, AmigaOS, et al all have some form of modern browser and enough of the modern necessities that you can live there ^aEUR” if you are dedicated enough.
Were I the Plan 9 team, I would evolve the existing ui/window manager to be more like Bluebottle OS (the current incarnation of the Oberon OS), and get a decent Webkit/Gecko based browser going.
I couldn’t agree more. Maybe the GPL license will get some people interested that weren’t previously, but I guess that will be marginal.
Of course this topic came up on the 9fans list, but it doesn’t look like much came of it, other than the conversation straying here and there to how much they dislike GNOME and GTK+, with a few voices of reason trying to keep the conversation on topic:
https://groups.google.com/forum/#!topic/comp.os.plan9/GRfjY9ICcLg
Jondice,
I’m not so sure about this, at least for me the license was never the problem. I could not afford to target such a tiny niche, at least not professionally, so I overlook it simply because it’s too small (rather than because it has no merit). This catch-22 is the biggest slap in the face to any small project and it kills me inside that I’m guilty of it myself.
I guess I’m cautiously optimistic that the best parts of plan 9 will be adopted into other operating systems now that it’s GPLed. However it’s hard to judge whether this would lead to the increased participation the plan9 community is seeking.
That conversation, oh my.
No matter how “elegant” or “beautiful” Plan 9 is, it is nothing more than a footnote unless it contains the things that users actually need.
I find it deeply ironic that the Plan 9 crowd if critical of Unix because the “everything is a file” metaphor is either stretched to the breaking point (according to them) or not followed. And then you see them spinning their wheels because they can’t map the web to Plan 9’s metaphor.
Is it really better to be pure over pragmatic? Pure only takes you so far, sooner or later you have to bend or break. Real world systems are “ugly” because they have to adapt to the realities of the real world.
I am not dismissing their goals out of hand, but holding back things that are needed for general acceptance is the wrong approach; and if you can’t adapt your metaphors to what is needed… maybe the problem is with their metaphors.
a couple of decades ago I designed what I called a universal information manager. It combined email, calendar, contacts, tasks, etc into a single interface. I started with the idea that everything fit on a timeline with search being the way to change how you looked at information.
At first everything worked great. I had a handful of friends testing it and they loved it. Of course it was missing lots of features and I endeavored to add them in. Many fit nicely into my timeline system, others (like contacts) had to be wedged in. Some had to be pounded into place with a hammer.
I realized it was collapsing under its own weight, and so I walked away. These days I think Apple and Google got it right: discreet apps that can share data, that is the best way to handle that domain model. Pragmatism won.
I have yet to see a case where pragmatism doesn’t ultimately end up being “better”, because “better”, “beautiful”, “elegant”, “ugly” are all subjective. There aren’t objective measures for them, at least when it comes to software. When someone tells me thing X is better, the next thing I want to know is “at what?”.
But do you want to know the worst part about that thread? It was more than 13 years ago, and from what I can tell nothing has changed…
Eventually everything was being pounded into place, and it was becoming a stretch to fit them into my timeline metaphor. The system was becoming uglier and harder to use and maintain because I was doggedly sticking to my metaphor.
Sorry that last sentence “Eventually everything…” should appear before the paragraph “I have yet…”. I don’t know what happened there…
jockm,
Really? I’m not exactly sure what you are referring to since they follow this metaphor even more than unix does (successfully I think). The concept of processes as files (/proc) in unix/linux/bsd was cloned from plan9. They took it to a whole new level with distributed computing using 9p.
https://en.wikipedia.org/wiki/9P
But this is how brainstorming works, it’s *good* to talk these things through like this to see if there’s a better way to do things. It seems a little harsh to judge the project by what was, in retrospect, nothing more than a very brief (and off topic) discussion on the potential of applying unix tools to the web that took place over a decade ago. It didn’t work out, so what? What would you have had them do, not discuss their ideas at all?
What is more disappointing to me is that the OP was discouraged from contributing:
However there was a voice of reason back then:
It’s probably for this reason that the GPL based license was adopted, they need the help of others and going with GPL can help get it.
Edited 2014-02-17 07:40 UTC
…that really tells all, doesn’t it. I laughed out load at that, really. Tk? Really? Not saying looks are all that matters but being an eyesore isn’t an asset.
I don’t see how tcl/tk is somehow quantitatively better than Gtk (and I don^aEURTMt even like Gtk).
It wasn’t clear from that conversation, but from others I read it is clear that the reason they liked TK more is because it it had a “cleaner” model to their mind and could map onto their metaphor better. Looks (and functionality) literally took a back seat to serving (and not evolving) the metaphor
Then I probably didn’t express myself clearly enough. I am all for brainstorming, brainstorming is good. It is vital. I am not saying the discussion of how to map the web to their metaphor is spinning their wheels because they had the conversation, but because they more or less stopped.
They absolutely should try to map the we to their metaphor, but when they found that they couldn’t; the logical thing to do ^aEUR” to my mind ^aEUR” would be to say “oh well this needs to be an exception”. Because they didn’t get there and just let the subject drop without any real conclusion; that (and only that) is why they say they spun their wheels.
If they had subsequently implemented any form of modern web browser I wouldn’t have reached the conclusion I did. But because ^aEUR” nearly a decade and a half later ^aEUR” they still haven’t then I (again personally) think my conclusion is justified.
My point is that metaphors only take you so far, if you can’t make something needed fit, you should either make an exception or adapt your metaphor.
That conversations, along with many others I have read (I have followed Plan 9 for decades now and even ran it for a bit) have made it clear to me that they are not interested in pragmatism
(minor edits for formatting only)
Edited 2014-02-17 17:57 UTC
BTW I meant to call out the 20MB MP3 player thing, but I was already long.
What I loved about that comment was that it was simply made without any attempt to say how big an MP3 player should be; just that (somehow) 20MB was too big.
That might hold Plan9 back, but on the other hand having a project that pushes a specific metaphor to the limit comes handy for other more pragmatic projects to decide where such metaphor really works and where it doesn’t.
That would be fine in Plan 9 were a research OS only; but since the team and the company created to market Plan 9 sold it as a general purpose OS for everyday use; it isn’t.
You are talking about mid-90ies, do you? It was released as free software in 2002, and it really wasn’t much behind in any aspect, even in web browsing back then.
Well I guess it depends on how important CSS was to you. It was vital for the websites I was using at that time.
No matter what’s the intention of the dev team behind Plan 9 it can still be regarded and used as kind of a research OS by third parties.
An incubator or potentially interesting implementations of the “everything is a file” metaphor, if you will.
It seems likely that the reason for choosing GPLv2 was for compatibility with the Akaros project at Berkeley, which made this announcement. Ron Minnich, an experienced Plan 9 developer, recently joined Akaros.
Thom, how about an article on Akaros? I don’t think OSAlert has covered it yet.
That just raises more questions, like why is Berkeley using the GPL?
Why wouldn’t they use it?
Berkely are the originators of the BSD license…
Just because a particular institution originated a license doesn’t mean everyone and every project within it has to think it’s always a good idea. I’m not really sure what would have led you to believe such a thing.