I think the most important design criteria in the evolution of Unix to Plan 9 to Inferno was that each step consciously made things _simpler_. Simplify the programming model, use fewer different concepts, get rid of workarounds and hacks by bringing useful features into the OS. Remove redundant utilities and even options to utilities, focus on improving the one may to get something done so it hardly takes any effort to do it, and integrate all the various bits well with each other. It's not an approach that asks for newcomers to hack on all sorts of things to "improve" the OS by adding everything possible to it, which is part of why it doesn't foster a big community.
I think the biggest difference between Plan 9 and Unix is that Plan 9 rids systems programming of many special cases by reusing the filesystem metaphor as far as possible. This is a deep and pervasive change, and makes doing most things on the system just a matter of reading and writing to files. This leads to neat things like the /env filesystem, which is a per-process view of the contents of shell variables as files. (This makes it easy to write make (mk) rules that depend on shell variables, just by listing the files/variables as prerequisites.)
Inferno's biggest difference is that it runs the entire OS on a virtual machine called emu. Kind of like Java, but not just a language. (Inferno has a language too, called Limbo, which is closer to Go than C.)
My first ISP (which also was the first one in our town) used FreeBSD and I'm pretty sure it was FreeBSD 4 at the time. I knew this because they allowed their dial-up users shell access and, in fact, their official instructions on how to change your dial-up password involved using HyperTerminal in Windows. I still wonder if giving out shells was generosity or carelessness on their part [1] but about a year later they changed it so that everyone who dialed in just got passwd(1) as their shell.
[1] Although since I never really did anything untoward with mine and didn't know of anyone who did maybe they'd actually calculated the risk correctly.
Shell access used to be a standard part of all ISP accounts. If you go back far enough, there were no standards like PPP and SLIP to extend TCP/IP to dialup customer computers, and no graphical clients for internet services, so to "get on" the internet, you needed a shell on your ISP's systems.
Your ISP might have existed back then, or been founded by someone who did, or had customers who expected the service.
>Shell access used to be a standard part of all ISP accounts.
>Your ISP might have existed back then, or been founded by someone who did, or had customers who expected the service.
That's a good point. Ours was a small post-Soviet factory town, though, so PPP was well established by the time consumer Internet over phone lines came to us (late 1990s-early 2000s). The local ISPs in the nearest big city, which got online earlier, may have had shell access for their customers at first but by the time I got on the Internet shells were far from expected.
A "founder" (or rather, "employee #1") explanation is the most likely. Our particular ISP was itself part of the government monopoly phone company. An interesting thing was that, as far as I know, at the time they didn't have a standard software setup to run their servers and modem pools. For that reason they gave their locally hired admin a free reign. In our case the admin happened to be an old-school programmer lady who started back in the Soviet days. She might have been the one responsible for giving their customers FreeBSD shells.
Solaris broke off from BSD and is based on System V Release 4 ... which is partly based on BSD. It depends on how far back you want to prune the tree. They just wanted to stick with the pure BSDs that didn't take come from other projects I guess
AFAIK, Solaris doesn't share any code with the 'UNIX' this talks about, or at least historically didn't (dtrace and ZFS got ported to at least some BSDs; some other code may have moved later). At the very least, adding Solaris would make this a forest, not a tree.
That is interesting. If true, it would be the first GNU/Linux derived OS to achieve UNIX(™) compatibility. Whether Linux distributions could trivially be made compatible has been a hypothetical debate so far ("nobody wants to pay the licensing fees.") It would be big news to see that borne out. Hopefully more details will become available.
Nit-picking: the statement that these two things are orthogonal is much stronger than the statement that they are such that neither implies the other. The latter is compatible with a high degree of correlation; the former is not.
No dispute here, I was just pointing out that OS X not only stems from Unix (as does, say, FreeBSD), but the "is-a" property also stems from the Open Group actually putting a stamp on it.
This isn't to say OS X is "more of a Unix" than FreeBSD. It means simply what is says, without any other implication: the group that is allowed to say "yeah, this is unix" said that about OS X.
I just realized one of the reasons I like OpenBSD and DragonflyBSD, but not FreeBSD and NetBSD from that graph. Those nice straight lines with no branching.