
The Unix system family tree: Research and BSD - jorgecastillo
http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/share/misc/bsd-family-tree?rev=HEAD
======
acc00
This list appears to be missing Plan 9, which is a direct continuation of
Research Unix line (a successor to 10th Edition)

~~~
solarexplorer
Plan 9 is not a Unix. At best it's some kind of spiritual successor to Unix,
like Infero.

~~~
dragonwriter
Inferno has roughly the same relationship to Plan 9 as Plan 9 has to Unix, as
I understand it.

~~~
catenate
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.)

~~~
dragonwriter
> Inferno has a language too, called Limbo, which is closer to Go than C.

Well, probably not surprising given Rob Pike's involvement in both Limbo and
Go.

------
efournie
There is also a nice Unix family tree there:
[http://www.levenez.com/unix/](http://www.levenez.com/unix/)

As it includes Linux, AIX, HP-UX, Solaris, HURD, OS X and their derivatives,
the graph is huge but very interesting!

------
networked
This reminds me of a neat NetBSD 1.3 story that was posted here on HN not so
long ago:
[https://news.ycombinator.com/item?id=6503464](https://news.ycombinator.com/item?id=6503464).

I wonder which of the now-legacy *BSD and OS X releases has the largest
surviving install base. Could it be FreeBSD 4.x? OS X 10.5 on PowerPC Macs?

Edit: 4.x, not 5.x.

~~~
cjg_
More likely FreeBSD 4.* than 5. _

~~~
networked
Yeah, I meant 4.x rather than 5.x. Edited.

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.

~~~
quesera
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.

~~~
networked
>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.

------
fs111
I always liked this massive PDF version:
[http://www.levenez.com/unix/](http://www.levenez.com/unix/)

------
masklinn
Nice timeline. NeXTSTEP's missing, but Rhapsody made the cut, which is nice.

------
whr
Shouldn't iOS be present in this tree too, as derivative of MacOS?

~~~
terabytest
The kernel is probably exactly the same.

------
octotoad
Never realized the 2BSD series was being developed in parallel with 4BSD.

I love to geek out on Unix history when I'm bored, so I'm surprised I never
picked up on this.

------
pavanky
Isn't solaris part of the tree as well ?

~~~
AdamN
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

[https://en.wikipedia.org/wiki/Solaris_(operating_system)#His...](https://en.wikipedia.org/wiki/Solaris_\(operating_system\)#History)

~~~
pavanky
Hmm. In that case I wonder how pure of a BSD OSX is.

~~~
jlgaddis
[https://developer.apple.com/library/mac/documentation/darwin...](https://developer.apple.com/library/mac/documentation/darwin/conceptual/kernelprogramming/BSD/BSD.html)

------
aurora72
It's nice to see Mac OS X stem from Unix

~~~
weland
IIRC it is actually a certified Unix.

~~~
Someone
'Being a certified Unix' and 'Stemming from Unix' are orthogonal properties;
neither implies the other.

~~~
weland
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.

------
contingencies
I'd like to see the same but with a visual diff of syscall syntax you can
access by clicking on any edge.

------
yeukhon
That ascii art - script or hand-crafted?

~~~
arh68
The diffs make me think it's hand-crafted.

[http://svnweb.freebsd.org/base/head/share/misc/bsd-family-
tr...](http://svnweb.freebsd.org/base/head/share/misc/bsd-family-
tree?view=log&pathrev=250150)

------
poobrains
Fitting (or maybe embarrassing) that it's in ASCII art.

------
AdamN
Not yet updated with OS X 10.9

------
asdasf
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.

