12 Unix
I think Unix and snowflakes are the only two classes of objects
in the universe in which no two instances ever match exactly.
I think that’s right, and it reminded me of another story.
Some years ago, when I was being a consultant for a living, I had a
job at a software outfit that was building a large graphical user-inter-
face sort of application. They were using some kind of Unix on a
PDP-11 for development and planning to sell it with a board to
OEMs. I had the job of evaluating various Unix variants, running on
various multibus-like hardware, to see what would best meet their
needs.
The evaluation process consisted largely of trying to get their test
program, which was an early prototype of the product, to compile
and run on the various *nixes. Piece of cake, sez I. But oops, one
vendor changed all the argument order around on this class of system
functions. And gee, look at that: A bug in the Xenix compiler pre-
vents you from using byte-sized frobs here; you have to fake it out
with structs and unions and things. Well, what do you know, Venix’s
pseudo real-time facilities don’t work at all; you have to roll your
own. Ad nauseam.
I don’t remember the details of which variants had which problems,
but the result was that no two of the five that I tried were compatible
for anything more than trivial programs! I was shocked. I was
appalled. I was impressed that a family of operating systems that
claimed to be compatible would exhibit this class of lossage. But the
thing that really got me was that none of this was surprising to the
other *nix hackers there! Their attitude was something to the effect
of “Well, life’s like that, a few #ifdefs here, a few fake library inter-
face functions there, what’s the big deal?”
I don’t know if there’s a moral to this story, other than one should
never trust anything related to Unix to be compatible with any other
thing related to Unix. And oh yeah, I heard some time later that the
software outfit in question ran two years over their original schedule,
finally threw Unix out completely, and deployed on MS-DOS
machines. The claim was that doing so was the only thing that let
them get the stuff out the door at all!
In a 1989 posting to the Peter Neumann’s RISKS mailing list, Pete Schill-
ing, an engineer in Alcoa Laboratories’ Applied Mathematics and Com-
puter Technology Division, criticized the entire notion of the word