Hacker News new | comments | show | ask | jobs | submit login
The Unix system family tree: Research and BSD (freebsd.org)
81 points by jorgecastillo on Dec 4, 2013 | hide | past | web | favorite | 40 comments

This list appears to be missing Plan 9, which is a direct continuation of Research Unix line (a successor to 10th Edition)

The graph at http://www.unix-diagram.org/ has it as well as many others not listed in the article.

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

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

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

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

There is also a nice Unix family tree there: 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!

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.

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.

More likely FreeBSD 4.* than 5.

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.

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.

This is making me recall memories of doing SLIP via Slirp: http://slirp.sourceforge.net

I always liked this massive PDF version: http://www.levenez.com/unix/

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

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

The kernel is probably exactly the same.

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.

Isn't solaris part of the tree as well ?

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


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

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.

EDIT: just read sibling comment. From there, read http://en.wikipedia.org/wiki/Solaris_%28operating_system%29 for verification. Solaris was based on http://en.wikipedia.org/wiki/System_V_Release_4#SVR4. You never are too old to learn.

Solaris was mostly based on SysV, but SunOS, Solaris' predecessor, was based on BSD, and should be included, I think.

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

IIRC it is actually a certified Unix.

http://www.opengroup.org/openbrand/bpl/ Your options for certified UNIX seem to be Solaris, HP-UX, AIX, OS X and Inspur K-UX. WTF is Inspur K-UX?

> WTF is Inspur K-UX?

That is really interesting: http://beta.slashdot.org/submission/3145593/unix-03-certifie...

Rebranded RHEL?

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.

Lasermoon Linux was the first POSIX certified distro:


For Linux distros they are either too small to be certified, or too large to care for it anymore.

Red Hat Linux was certified UNIX sometime in 5.x days, IIRC.

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

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'd like to see the same but with a visual diff of syscall syntax you can access by clicking on any edge.

That ascii art - script or hand-crafted?

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


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

Not yet updated with OS X 10.9

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.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact