Linux is a Unix

May 21, 2007

There used to be a meme going around to the effect that Linux isn't Unix
and you shouldn't call it one (I say 'used to be' because I haven't seen
it recently). This has always irritated me; not particularly because I'm
a Linux partisan, but because it's such a small minded claim for Unix
people to make.

When you ask people to support this, they generally point at two
reasons: Linux is not entitled to use the Unix trademark, and Linux's
code (often just kernel code) is not descended from Research Unix.

I do not understand Unix people who can make the first argument with a
straight face. Leaving aside the fact that most of the iconic versions
of Unix have not actually been able to call themselves Unix™,
these people claim to believe that this narrow legality is more
important than everything else that goes into Unix, that a sticker
from some entity is more important than /etc/passwd and mkdir and
creat() and PID 1 (to pick examples at random).

Or in short: Unix is more than Unix™, and always has been.

The second argument presumes that there is some magic contamination that
has passed through the (kernel) code (even though no original AT&T code
remains in things like the *BSDs by now) that was not transmitted
through all of the things that the Bell Labs people wrote and people's
experiences with Unix and so on. Having this now invisible line of
descent somehow makes you special, no matter how little your kernel or
overall source base resembles V7 or 4.2 BSD by now, while not having it
is somehow so big a defect as to overcome all other points.

To me something is a Unix if it feels like Unix; if it follows the
spirit, if it behaves pretty much like other Unixes, if I can find my
way around it without problems.

Sidebar: to nitpickers on the Unix trademark

In theory the Unix™ trademark is currently attached to
passing a set of compatibility tests. However, people don't point to
the compatibility tests (because then Linux might qualify, along with
less appetising things); they point to the trademark, which is subject
to changing policies (and has changed policies in the past). Also, I
believe that no current Unix passes those tests; there is an explicit
grandfather clause for things descended from V7, because otherwise there
pretty much would be no Unix™es.