The history of commercial Unix and my pragmatism

February 8, 2015

I've said in the past that I'm a Unix pragmatist instead of a purist (and in general I've wound up a pragmatist about computing in general). In thinking about it recently, it's struck me that it's probably very hard to be both an old Unix hand and a purist, so it's not entirely surprising that I've wound up this way. To put it simply, the history of Unix since the late 1980s is a history of beautiful and pure things getting utterly crushed and ground up by the world. Over and over again, ugly things won.

An incomplete list:

  • beautiful CISC and RISC architectures were driven into the ground by the x86 juggernaut. Modern 64-bit x86 is kind of an okay architecture from what I understand, but 32-bit x86 has always been an ugly register-starved monster.

  • beautiful server hardware and hardware designs were crushed under the PC-compatible juggernaut and its collection of ugly hacks (eg the A20 line, which is probably still being emulated by the chipset on your 2015 vintage server).

All of the Unix vendors were eventually driven into surrender on this. Oh, I think that Oracle will still sell you SPARC based hardware, but almost no one really wants it any more because it very much lost on cost and performance.

  • cool, pioneering Unix companies like MIPSco and NeXT went under or were bought out. This culminated in Sun being bought by Oracle, marking the final coda on the Unix workstation dream (which had died years before if we're being honest).

  • Unix itself went through a series of uglifications in the early 1990s. Sun took SunOS 3, made it SunOS 4, and then engineered a high-speed collision between SunOS 4 and System V R4 that gave us the unappealing Solaris 2. This stampeded many of the other Unix vendors into making OSF/1, which was even worse (it was based on Mach at a time when this was not a good choice, among other defects).
  • Unix vendors did terrible things to software layers on top of Unix. See CORBA, DCE, Motif, and let's be honest, Sun wasn't doing much better here either for a long time.

    It would not be much of an exaggeration to say that almost every architectural decision that most Unix vendors made turned out to be a mistake.

  • Plan 9 was a complete practical failure. The Unix vendors collectively turned their back on essentially everything that came from the very source of Unix itself, and so by and large did Unix users. Later versions of Research Unix (v8, v9, and v10) were similar failures earlier on, with almost nothing from them making it into mainstream Unix.

    (And some of the things that did make the transition were terribly mangled, cf Dennis Ritchie's famous remark that 'streams means something different when shouted'.)

  • Unix vendors in general punted on improving Unix and actually evolving it to be more Unixy for most of the mid to late 1990s. Of course most of them were preoccupied with dying at the time, which didn't help much.

  • Once the era of free Unixes got rolling the open source *BSDs clung desperately to past history, some of which was better off replaced, while Linux reinvented everything, not always very well. Everyone mostly ignored the lessons of Plan 9, late Research Unix, and often even past Unix experience, despite having a golden opportunity to incorporate it into their systems.

And this is a vastly incomplete list of such disappointments.

If you started out as a purist, the past 25+ years of Unix history have mostly been a series of disappointments (some of them fairly crushing). Pick a thing that you cared about and you've probably had your dreams and hopes dashed. I think it's really hard to stay a purist when you're let down so many times and you have to work with such a parade of increasingly disappointing stuff. You can burn out so much that you leave Unix entirely, or you can move slowly from being a passionate purist to being a resigned pragmatist.

(There are passionate purists who have stuck to their guns and still work in Unix, but I don't think that there are all that many of them. You need a lot of fortitude, determination, and sheer bloody-mindedness.)

As a result, I kind of envy and admire the recent Unix people who are passionate purists right now. From my position on the sidelines in an easy chair, I want to cheer them on and tell them 'cling to your idealism as long as possible before the world grinds you down with disappointments'. And who knows? Maybe the next decade or two of Unix will be great, full of technical wins for the passionate. I'd certainly be happy to see Unix beauty win for once.

Sidebar: When I realized that I was becoming a pragmatist

As it happens, I can fairly precisely pinpoint when I became aware that I was turning into a pragmatist. It was when I had the opportunity to run Plan 9 instead of Unix but decided to pass because it would be too much of a hassle, both because of the restrictive hardware needs and due to how fairly cut off from the Unix computing environment around me I'd be. I looked at just how many things I'd be going without and said 'nope, the pure appeal and beauty of Plan 9 is not enough to get me to do this'.

(There's a part of me that's always regretted that I took the easy way.)

Comments on this page:

By Colmcd at 2015-02-08 08:51:31:

One huge problem in my book is just the variance in Commercial Unix's.

You have IBM making AIX, Sun making Solaris (which I believe is more BSD, honestly unsure), HP making HPUX, etc.

This leads to everyone doing things their own way and not allot of common ecosystem ground. With Linux you saw Redhat largely dominate the Commercial Linux space. Mandrake/Mandriva and Suse also shared a common binary system and there was much shared amongst these projects. Ubuntu comes onboard and it works out how to share bug reports back to Debian but also along to Redhat and others.

Basically I feel that with Linux, more work was going into Linux. While with Unix, each vendor seemed to be working on their own Unix. A common ecosystem and even a common unix between HP/IBM could have settled this.

By the time I knew enough to be a purist, I’d already been battered by the real world enough that pragmatism won out. I’ll always be excited by the idea of pure and right and well made, and on occasion will try and set up pet systems at home to remind myself of why. But the for pay computering will be driven by getting the job done. (I drew a line years ago that I wouldn’t touch miscrosoft stuff anymore, for money or not, but I keep hearing interesting things about powershell that make me a little curious…)

You remain a purist at heart, of course. ;)

I'd happily work on Solaris for the rest of my working life if it didn't mean dealing with Oracle Support & Licensing, and if anyone I'd ever encounter actually used it anymore.

By Matt Campbell at 2015-02-12 19:31:58:

Can you give one or two specific instances where the BSDs clung to the past when they'd be better off doing something new? The one I can think of is that Linux got journaling filesystems first. Then again, FreeBSD has had ZFS for years now.

By cks at 2015-02-12 19:59:46:

Here's three examples:

  • The kernel configuration system. The syntax and a bunch of the core semantics of this dates back to Vaxes (or used to), despite it winding up being a bad fit even for Vaxes by the end of the Vax era. The *BSDs carried this forward with an increasing pile of hacks to fit it into the reality of modern discoverable hardware and so on.

    (By the way and for the record, the Linux kernel configuration system is equally a hack in a different direction.)

  • Clinging to the *BSD style rc and rc.local for daemon startup and (non) shutdown. System V has its own flaws but it's such a glaring advance over the old BSD style that BSD should have done something.

  • Packaging systems, where the Linux state of the art put everyone else to shame for at least a decade.
By anon at 2015-02-17 05:49:01:

Regarding server CPUs - the current state is rather sad, almost everything in server space is x86 now. No real competition, no real innovation... although it seems it might change soon, the new SPARC M7 looks very interesting, at least on paper. We'll see once it comes out later this year.

Written on 08 February 2015.
« Trying to move towards Ed25519 OpenSSH host keys: a stumbling block
'Inbox zero' doesn't seem to work for me but it's still tempting »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Feb 8 03:09:05 2015
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.