Unix's Revenge

With QNX now firmly roadmapped at RIM and Android spreading among vendors like a virus, I wanted to point out that these operating systems share one ancestor: Unix.

A technical triumph

Technically Linux, which underlies Android, among others, is walled off from Unix from an IP point of view, but the philosophical and architectural lineage goes back to 1969’s Unix. It was an amazingly well thought-out operating system which has stood the test of time mostly due to its modular architecture. It was not always clear that Unix would make it this far, and in many ways it was written off.

There is some poetic justice in its comeback. Unix could have become a default for desktop computers. When Windows emerged from the shadow of DOS, Microsoft had the option to base NT on a flavor of Unix. But Bill Gates, no doubt motivated by license fee considerations, hired a group of developers from Digital Equipment Corporation and many elements of the NT design reflect earlier DEC experience with VMS and RSX-11. Microsoft went with that new architecture rather than Unix and that code lives on even in the current Windows 7.

So Unix missed a chance to become the core of the desktop experience throughout the 1990’s. It was relegated to the perilous high end: Sun workstations, servers and supercomputers. It seemed to be at a dead end. Fortunately, in stepped open source. Linux picked up the pieces and forged ahead to become a serious server operating system but never got beyond a toehold in the desktop.

The death of Unix(tm) was also forestalled because of the efforts of others. Sun, IBM and even a startup called NeXT kept development alive. When NeXT was acquired by Apple, OS X was born and in 2000 Unix was once again on the desktop.

Meanwhile, the Linux kernel also became device friendly and it was embedded into an increasing number of vertical applications while powering most of the new web servers that fed the dot com era.

Now we’ve entered a new decade of devices where Unix(-like) operating systems will, on a CPU basis, probably out-install Windows. Not only is iOS based on Unix, but Android and MeeGo and even Bada are based on Linux as are QNX and WebOS. Google, Apple, HP, RIM, Samsung and Nokia are all now betting heavily on Unix or Unix-like implementations. The success is so overwhelming that there are really only two hold-outs: Microsoft and the rapidly depreciating Symbian.

Value Chain Evolution

There is more to this than a sentimental technology riches to rags to riches story. The history of kernel adoption is evidence of the evolution of value chains and the tension between modular and integrated business architectures. It also supports a hypothesis of why Microsoft could not respond to a tectonic shift of power.

As a kernel, Unix was modular which allowed it to scale both down to devices and up to mainframes. It could conform to the applications above it (like being a server or being an embedded controller) and did so far more readily than Windows. In fact, Windows could not conform to applications outside its core PC and server domain.

For Unix, the point of modularity was reached early in the 1990’s and, through the Linux implementation, it allowed the lowest layers of the software to become commoditized (and free). This commodity status was actually what Microsoft tried to avoid by integrating Windows with the layers above it. This was a conscious and deliberate decision which also led to trouble with anti-trust regulators. The decision seemed to have paid off. Microsoft won.

However, the very strategy which Microsoft used to maintain a monopoly caused its rigidity of response to a new, post-PC market. Unix fit right in with the new shift in the basis of competition: toward more personal, portable and conformable computing. Windows did not. Microsoft had to build a completely new OS to deal with devices (Windows CE has little if any shared code with Windows NT et. al.). The dual OS strategy continues to hobble Microsoft as each is stretched into new dimensions: the desktop Windows being dragged into the high end and into tablets while the device Windows is re-written to accommodate new input methods.

The modular Unix just keeps conforming to new applications. It helps that it’s open source but the open sourcing is a result of the modularity not the cause for it. So far, it looks like there is no stopping the revenge of Unix. It’s been a long journey for Unix and I, for one, am cheering the comeback.

  • Vik

    Well designed, well thought out…it is heartening to see that better ideas should win out over time.

  • When I was working in Ericsson in the late 1990s the then CEO Anders Igel made a pact with Microsoft to get windows into as many as possible of our tools and products. At that time the majority of engineering tools were Sun workstations, while proprietary systems were used in the products. When I left I in 2000 Windows NT was being rolled into the non-stop systems – around the time Linux was starting to go mainstream.

    When Igel was given charge of the UK operations he insisted on having a chauffeured limousine and built an office with an entire floor dedicated to his needs which apparently included an en suite.

    Even judged by contemporary reports of executive greed and remoteness from reality, this chief must have masterminded more than any person the failure of this company to thrive in the long term.

  • Pingback: asymco | Unix's Revenge()

  • Alex Khan

    Very enlightening article. It illuminates the current shift of power in the tech industry very well. I learn more from this site about the industry trends than any other site I could think of and I visit a lot of 'em. The amount of utter gibberish on most tech sites and blogs is truly absurd and exasperating to observe.

    It also sheds light on the growing problem that Microsoft faces and their lack of a suitable response or solution. One can sense the squirming going on over at Redmond. Indeed, revenge is sweet! Thanks for the very well-crafted insight. It seems we are emerging from the stagnant dark ages into a new era of vigorous competition and innovation.

    • sheva

      If this pans out, Is there a certain irony?

      If everything is converging to a unix base, isn't competition and innovation stifled, as it won't be economical for anyone to base their platform on anything but unix?

      Is it a wolf in sheep's clothing?

      • MSHYYC

        The difference between Windows dominance and "Unix" dominance is that the former is a single-vendor monoculture. MSFT alone controls the source code, APIs, protocols, even the very destiny of the platform. The "Unix" referred to is not one single platform but rather an "architectural standard".

        There are many kernels a "unix-style" OS may be based around such as Linux (Ubuntu, Fedora, Android, WebOS, Meego…), BSD/Mach (MacOS X and iOS being the most renowned), Neutrino (QNX). Multiple kernels may be shared by multiple vendors, and at higher levels (user-level tools, etc) the same code may be compiled against different CPUs, kernels, etc (for example, the same SSH source code can be built against all of the above OSes, for various processor types like Intel Core, PowerPC, MIPS, ARM, etc.

        Vendor fragmentation of UNIX was seen as its downfall, but with the emergence and observance of REAL, vendor-neutral and unencumbered standards the combination of cooperation AND competition of different vendors actually makes this a STRENGTH of the UNIX-style architectural standard. One virus can't take out EVERYONE because there is enough diversity in implementations, and there is competition to make the best implementation of the standards, yet observing standards enables interoperability. Even without binary compatability you still get at least "write once COMPILE everywhere" and apps that still share common protocols.

        The openness of the platform and establishment of non-vendor standards are its strengths. The nature of the platform allows it to scale from mobile phones to supercomputers, and allowed Apple to not only completely remake its OS very rapidly (compared to the epic fail that was the proprietary project Copland), it gave them a platform that could be quickly migrated to vastly different hardware TWICE (first from PowerPC to Intel X86 on their computers, then to ARM to run on its mobile devices).

        MSFT, in its effort to lock in its market, made its mainline OS so monolithic and purpose built and locked in they had to start from scratch and maintain two separate OS lines (NT and CE based kernels). They tightly control the source code and APIs which slows the adoption of both OSes on the growing diversity of hardware. This is especially problematic in the more diverse mobile space with CE, where MSFT is forced to give vendors carfully controlled access to source code so it can be built against various processor cores and to avoid the fate of NT, which MSFT tried to control too much and for a lack of resources gave up on Alpha and PowerPC implementations of that kernel.

        The open architecture PC hardware displaced all others in the 1980s and 1990s and relegated the closed Mac to a niche product. Technology is changing to emphasise mobile devices that out of practicality are not so open architecture. However the re-emergence of hardware diversity has meant that the SOFTWARE has now got to be open architecture to adapt to differing harddware and user needs, yet still allow for interoperability. As such I can see a very possible trend where MSFT will gradually become a small niche player in software. They are already moving into a phase where they will occupy less than half of the computing-devices market (that is everything from servers to PCs to phones), and unless they adopt the UNIX philosophy they are virtually certain to go into complete decline, to be replaced by a number of players with 20% or less share each.

      • No, not really. The openness of open source means that anyone can make anything they need and not have to be locked into one vendor or even one technology. When most people use the term Unix they are referring to an umbrella encompassing dozens of different yet similar products. It is analogous to using the word "computer." A computer is a device that computes so it can be everything from a single-chip embedded system through a cell phone to desktop to server to mainframe. There is no way to lock it in. It's like trying to lock in air.

  • Shaun

    Nice story but QNX was a fresh architecture and bears no relation to UNIX or Linux. It's a Real Time microkernel with extensive message passing IPC at it's core design. It was designed from the ground up to meet different requirements than UNIX.

    Perhaps you should read QNX's Philosophy document.

    It bears more resemblance to Symbian as an architecture than UNIX. Both feature realtime microkernels, extensive message passing and POSIX compliant layers. Heck, there's even a Qt port on both.

    I'm pretty impressed RIM went with QNX. It's an OS with ideas that deserve more than just being used in the embedded space and it's good to see a phone OS that isn't UNIX or a Java VM on top of what could be any OS like Android. The easy option would have been Linux and a Java VM Blackberry compatibility layer. Lets see if they offer a native SDK though. You would hope they'd see some sense in using Qt as a native development platform.

    • According the the Wikipedia article QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. It also states that QNX 4 was written to be POSIX compliant and that the networking stack is NetBSD. It also ran the X Window System. You may argue that its microkernel architecture is not Unix but there are many other Unix-like OSs which aren't either.

      • Steven Noyes

        I am with Shaun on this one. At it heart, QnX is nothing like UNIX. It is POSIX but so can NT be POSIX as this standard is not tied to a specific OS. QnX really is a different beast.

      • Larry McVoy

        The previous poster is correct, QNX is a completely different architecture. I know this for a fact, I was friends with Dan Hildebrandt who was one of people who built the core of the QNX systems (I say was, he died of a brain tumor in 1998).

        QNX is the only microkernel that is (or was) actually "micro". For a long time the kernel would fit completely in a 4K instruction cache. That's micro, unlike the bloated mess known as MACH (that apple ended up using).

        I used QNX, time shared with several other users, on a 640KB 8086 back in the day. Worked amazingly well for what it was.

        The POSIX stuff was added later and it is a layer on top. They did a nice job but it is a mistake to say that QNX is based on UNIX. It's closer to Plan 9 than UNIX.

      • Lonny

        I agree, QNX is not UNIX. There are similarities in the tools and applications that come with it (which may or may not be installed as you wish, same with drivers). I worked extensively with QNX 2 more than 15 years ago. Back then, it would run on just about anything and the OS (bootable) and all of the utilities would fit on a single 1.44 floppy. DOS at that time was 6 floppies, and QNX ran circles around it in performance. POSIX compliance came in QNX 4. CLI work with the OS was almost like working in UNIX, but network apps in C were far easier to program with app-to-app atomic message passing built in – even apps on other hosts. An app registers a name on the OS, and any message sent to that "name" magically made its' way to the app. Heaven compared to network apps in DOS, and even easier than sockets.

      • steve

        QNX (pre-POSIX, early 90's) was the best OS I have ever worked with. Small, lightweight, multitasking, multiuser, real-time, message based. Ideal for factory control apps. Easily networked, all resources readily available to any other resource on the network. Although the shell was similar to UNIX sh, it was definitely not a UNIX OS. There is a another reason QNX was selected by RIM – both are Canadian companies!

      • Karl Stevens

        Even if that was true (which is dubious, as others have shown by presenting links to reputable sources, rather than an uncited wikipedia page), your article contains the statement <cite>Android and MeeGo and even Bada are based on Linux as are QNX and WebOS.</cite> which is patently false.

        QNX is not based on Linux.

        You might want to correct that.

      • Samuel Bronson

        Guys, remember that Plan9, as the sequel to Unix, is more Unix than Unix ever was. It seems a pity that it’s still so obscure, though I admit the UI takes a lot of getting used to — when I tried it, I kept making those things that looked like geese because of something I was trying to do with the keyboard when I (iirc) had to use the mouse for it…

    • MSHYYC

      The story made a factual error in linking QNX and Linux, but I have to disagree with you in part. QNX is most definitely Unix LIKE. Kernels are not operating systems–they are merely a important components of an operating system. MACH-based OSes like MacOS and iOS and BSD Unix are vastly different in architecture from the original/"true" UNIX with its monolithic kernel. Also, Linux-based OSes, though more similar to the original UNIX and have a monolithic kernel structure, share nothing in common with the original UNIX either.

      The point being made here is the UNIX *architecture*–at the OS level ve the kernel level– and its philosophy are superior and encroathing on MSFT dominance. The NT kernel is a microkernel too techically, but the whole OS above it carries its closed, locked-in, monolithic approach. All the UNIX-like OSes observe standards more faithfully, are more portable, more scalable (since they are based upon the philosophy of many small components working together and things like XWindows GUI can be lopped off without major difficulties) and more robust.

      I Agree, QNX is very much its own beast, but I also disagree–QNX, perhaps even more than UNIX itself–embrases the origian "UNIX way".

      • Thanks, you're making my point far better than I could have.

  • GoodyBird

    it's remind me what Gates said in that joint interview with Jobs,
    that the industry will standardize and de-standardize according to
    shifting needs.

    Right now, MS most prominent competitor are heavily based on standards,
    while MS is still ambiguous at best.
    In collapse, Jared Diamond say, that a prospers civilization can collapse when the the thing that led to their greatest achievement is now the source of their demise.

  • MattF

    You mention that Win NT is a descendant of VMS… some additional details are at:

    I don’t know enough about IBM’s mainframe OS’s to comment, but it certainly looks like -all- major current OS’s have genealogies that go back to the 60’s.

    • Philip E. Evans

      Having worked with the development of microcomputers since 1972, I've watched the evolution of these systems since virtually day one. Let's look at NT. Even though there were many new ideas and certainly many differences brought to NT, it was still always constrained by the Intel architecture. Take away the GUI and it's fancy features, and underlying, you still had an OS that resembled DOS. But where did DOS come from? DOS very closely resembled CP/M, from which it was basically derived. Of coarse it also drew features along the way from it's competitors such as IBM's PC/DOS. But ultimately, CP/M was virtually a "clone" of DEC's RT/11 OS, which was DEC's real time OS for the PDP/11 line of computers. When VMS was developed, it of course still had similarities to it's predecessors, RS/X-11M and RT/11. When you really consider the "general" origins of the more modern OS's, you reall are left with the idea that most evolved over the years from really just 2 main lines: UNIX and DEC.

      • Samuel Bronson

        Actually, x86 wasn't NT's first architecture: they started on something else specifically so that it would not be stuck on x86 forever. (They succeeded, in that they can still run on several different architectures; the fact that they are currently running x86 programs on all of those architectures is not really their fault.)

      • Gheorghe Musca

        For years, the NT setup CD had 2 folders: 386 and alpha. The 2nd one was for a processor developed by DEC.

  • "but the open sourcing is a result of the modularity not the cause for it"
    Perhaps. But the open sourcing was key in its adoption. Nowadays very few companies have the resources or want to spend the resources to create an Operating System from scratch. Projects like WebOS and Android… even Mac OS X, exist in large part because the respective parent companies were able to leverage Open Source. I wonder if in the back of the mind of the people at Apple they regret open sourcing WebKit, as it is a key component of most of its competitors in the mobile arena.

    • Vertti

      WebKit is based on open source so it has to be open. Apple made deliberate decision with WebKit. At those days (sooo long ago 😛 ) Apple wanted and needed partners to brake up the IE's dominance and open up the Internet. Now we can say that the WebKit project has been more than succesful 😉

      • WebKit is based on KHTML, which is Open Source but is licenced under the LGPL, not the GPL. I believe that would have allowed Apple to ship WebKit as closed source. You are right, the original goal of WebKit were achieved, which I tend to word as follows: ensure the Mac does not rely on a third party (MS) for a key piece of functionality (web browser).

        This is unrelated but interesting: you can replace MS for Adobe and Flash for web browser, and it tells a lot about Apple insistence on keeping Flash out of iOS.

    • ben

      Android was not open source it was proprietary than bought by Google and open sourced. If the owners did not get their cash they would not have had the drive to create it .

      • Even before Google bought Android, it used the Linux kernel. It was not an all-new Operating System.

  • Mark

    You forgot one other OS that has UNIX as an ancestor, iOS, which runs those phones and PDAs from that little company called Apple.

    • aysmco

      "Not only is iOS based on Unix, but Android and MeeGo and even Bada are based on Linux as are QNX and WebOS."

  • Mark

    With all due respect, this essay is a fantasy. The real history of these systems is far more complex, interesting, and nuanced. It's true that certain UNIX concepts (byte streams for files, pipes, etc.; filesystem concepts; process concepts) have been widely used and replicated. That's what POSIX is — an API abstraction widely implemented on a variety of kernels. (In fact, POSIX standardized threading long before UNIX supported kernel threads!) But the UNIX codebase is an entirely different story. It was too old and crufty and NON-modular, and so by the late 1980s and early 1990s it was surpassed/replaced by things like Mach, Solaris (the re-write), and NT (which was agnostic as to application APIs, but fully supported POSIX sematics). For example, UNIX didn't support kernel-level threads, or even thread preemption in kernel mode (necessary for SMP scaling) until System V; Mach, Solaris, and NT all did much earlier.

    Linux is also a completely separate and largely much more impressive story in terms of modularity, etc. Linux added kernel preemption rather late (late 1990s), but thanks to a combination of decentralized development AND big investments by huge companies like IBM, H-P, etc., Linux is the most modular and flexible OS of all time. (Only the crufty GUI stuff mars its clean architecture.)

    Microsoft realized its modularity mistake in the mid 2000s and started the widely-known MinWin effort, which has re-layer/re-wired the NT system, and is largely done (but hasn't produced any tangible productized results — yet).

    QNX, as a previous comment notes, is another strand in the story — a POSIX API, yes, but otherwise (like NT) NOTHING to do with Unix.

    The real story of the history of operating systems over the past 25 years is complex, nuanced, and fascinating. UNIX plays an important role, true, but largely as a source of a few key concepts better implemented by other operating systems. In short, this essay is not even a reasonable over-simplification of that story.

    • Tom, the consumer

      Ouch! Where is google translate when you really need it?

    • Robert Sanders

      I'm not sure what you mean by that Solaris comment. Unless you mean the retro-named Solaris 1, aka SunOS, which was a — for many people, THE — UNIX derivative. SunOS 4 supported LWPs (aka threads) long before Solaris or any flavor of Windows had threads. I think you got your fantasy backwards.

      There are still very successful Unix descendents today, and while of course they aren't the *same* codebase, they are evolutions of it. FreeBSD, NetBSD, OpenBSD, Solaris, HP-UX.

      Microkernels were the ne plus ultra of "modularity", and look at what happened to most of them and the OSs based upon them. It's the old monolithic architecture underlying Linux and the BSD-derived Unixes that kept the flame alive.

      Mach in its currently relevant incarnations (OS X, iOS) looks a lot like old BSD Unix from many points of view, including how little it looks like a microkernel and a fair amount of both kernel and userland source code.

      POSIX — aka "Portable Operating System Interface for uniX" — is one of the most successful parts of the heritage of Unix. It's not a coincidence that Unix implemented them; it ORIGINATED them. As the saying goes, what was good in POSIX was not original, and what was original was not good. That the POSIX APIs, and so many programs written to them, as well as a fair amount of Unix-derived code, are ascendent again certainly sounds like Unix's revenge to me.

    • Vertti

      Yes the history of the Unix takes a long wall to present…

      UNIX History:

      • Interesting that QNX is listed as a Unix…

      • Charlie

        That site omits to mention Maemo and MeeGo yet includes the more recent iOS, so the fact it incorrectly references QNX as a Unix derivative is hardly surprising as it's not exactly authoritative.

        As has already been stated several times, QNX is similar to Unix only by virtue of it's POSIX compliance, nothing more. You could claim QNX (and many other Unix/Linux derivatives) are based on Plan9 using the self same argument that is used to claim that QNX is based on Unix.

        QNX is a very interesting move by RIM, but I do wonder how they're going to support two incompatible operating systems when they don't have a common cross-platform native run-time. Qt gives Nokia a huge advantage here and means that supporting two incompatible operating systems is a viable proposition – maybe RIM should support Qt on their two operating systems, but RIM don't strike me as the kind of company that would consider that option.

      • MeeGo is mentioned, use search to find it or re-read the article.

      • Charlie


        I'm referring to this site:

        UNIX History:

        There is no mention of Maemo or MeeGo, so it's clearly incomplete and it's inclusion of QNX is inaccurate.

    • PMC

      Nice and knowledgeable response!

    • This is closer to the truth!
      Having lived through it all as a Unix developer-1985-1990, Microsoft Employee (1990-2000), I can attest to the fact that the article is just a fantasy. Microsoft won because they had a better desktop solution. Unix was not very "Accessible" in the way that Linux is today. Unix was marketed and manufactured as a mini computer/mainfraime competitor. Further, the really holdback was a lack of HW horsepower.
      It is amazing how the 20 somthing folks' marvel at linux, but most of them have never written a line af assembler…. 30 years ago, speed meant C+Assembler. Doing extensive work like that was not available on Unix because only large corporations had license and access to the code.

      Microsoft bashing may be a sport, but thier contributions are far, wide and deep. The vision to comoditize the notion of Personal computing is thier crowning achievement. Everyone should be thankful to them for that.

      I recived a PC Jr. In college in 1984 froma relative that worked with IBM. It was an amazing thing. (Made the ole commodore 64 and RadioShack computers look boring). MS DOS opened the door to everyone for computing. Yes, Apple was out there, but it was largely viewed as a Game platform… FACT. Do your homework.

      I did work with QNX as well. It is a beautiful concept. They simply lacked a User Interface and standard development kits. Had they taken the charge, they might have been today's linux.

      I like Linux, Android today. I still like Windows. There is really a place for all. Hating Msft as a sport my be fun and cynically driven, but you are really missing part of the story with that attitude.

      I am choosing between Android, Windows Embedded, Linux and QNX for a project that spans 100'000+ systems and devices. Honestly it all will come down to two things: 1) Tool chain 2) Talent to get the work done. Aside from that, they all can do the work. In fairness, where it not for Intel/WindRivers support for Android, it would not be a contender. From a business point of view, Windows Embedded and QNX are much better business decisions.

      • chrysten

        Having worked on the code base for the internals of R7 through SVR4.2, and the SunOS/Solaris ports, it is just amazing to see y'all quibble over nonsense.
        Think about the basics -what is it in the basic architecture, the philosophy,, etc. Particulars, such as threading and light-weight processes, and many other points of contention were often simply part of one implementation/distribution and not part of another. :closed-source: – not. almost every computer science department across the land got a copy – even for a PDP-11 w/ a whoppingly huge 2platter 12" 4mb disk system.

  • Alagoverde

    Great post Horace:

    I knew a good part of the data, but connecting the dots like you do is an entirely different matter.

  • Pingback: Why Unix survived | Smash Company()

  • Couple of things.

    Microsoft had a Unix license their offering was called Xenix but they lost intertest when OS/2 came along and sold it to the people who ported it for them and it became known as SCO Unix.

    One of the people who wrote off Unix was none other than Rob Pike :
    "Not only is UNIX dead, it's starting to smell really bad."

    The GPL saved it, damn them all to hell.

    [WORDPRESS HASHCASH] The poster sent us '0 which is not a hashcash value.

    • Philip E. Evans

      SCO owned XENIX. I think you'll find that Gates was an investor in the Santa Cruz Operation (SCO). At one point, Gates decided that XENIX would not survive and not the way he wanted to go) and sold off his shares of stock in SCO. It was then that SCO rewrote their by-laws and made it such that no individual investor could control more than 15% of their stock, so that Gates could not come back later and gain a controlling interest. Though XENIX was dropped from SCO's line, it was still supported until Y2K. There were still thousands of mainframe consoles being used that ran on XENIX, but unfortunately XENIX was not Y2K compliant and SCO did not want to put any more into it to make it so.

    • Philip E. Evans

      I forgot to mention that XENIX was not a complete true version of UNIX. However, SCO did have a true version of licensed UNIX, and when they bought out Unix Systems Labs (USL), they gained the true title to UNIX (the copyright to the name UNIX and the UNIXWare system that they marketed along with UNIX OpenServer.. This was what lead to many fights between SCO and Ray Noorda and his then "Caldera" company.

  • Mark Hernandez

    Wow, I used to use RSX-11. But I don't feel old!

    • Philip E. Evans

      RSX-11M was a great little OS. I only donated my last PDP/11-23 about 4 years ago to a computer museum. It still ran great and was fun to play with (though it did consume a good deal of power compared to today's computers).

  • Pingback: Unix’s Revenge : gobbits()

  • Mark Hernandez

    i think we all agree with the other Mark that the history of UNIX is complex, nuanced and definitely fascinating. But take care with using blanket disqualifiers such as referring to Horace's article as "fantasy" which are anything but nuanced or helpful.

    The challenge here is having to use English to describe UNIX's evolutionary tree which really should be presented in picture form and would be large enough to cover a wall.

    I always think of communication using language as this process where we take a complex image or story in someone's head and then deconstruct it and send it serially through a tiny straw (words) and hope that when it's reconstructed by the listener at the other end it vaguely resembles the original image, concept or idea.

    We can only do our best, and it's great when the commenters, like all the ones we're blessed with here, are all educated and experienced people who help fill in the gaps and make the picture even clearer!

    I call that collabo-blogging. (you may quote me 😉 ) he he

    • Tom, the reader

      Or diablogging?

  • Pingback: Unix’s Revenge « Tapinja()

  • Pingback: asymco | Unix's Revenge at The WordPress GPL Debate()

  • bob

    ok but unix kicks linuxs butt and that walled off IP comment is a bit silly.

    Torvalds wrote linux it is not unix and it never will be.

  • Ben Rosengart

    Windows NT's POSIX system is not a serious thing, as far as I know. Just a sop to US DoD check-boxery. Whereas I believe one can run real UNIX software on QNX without too much porting work. I don't know whether Symbian is more like NT or more like QNX in this regard — if I had to guess, I'd guess NT.

  • manish

    very well written article.

  • To me, Android is a Linux with Unix part torn out. So it's like revenge of unix's chidren.

  • Jan Gray

    I agree with Shaun and Larry McVoy above. IMO this article is not particuarly informative about the origins of QNX (nor of Windows NT).

    QNX has its Send/Receive/Reply message passing roots in Thoth (,, as did Waterloo Port, the V System, and Harmony.

    All of these early OSs encouraged and rewarded a modular decomposition of a system into asynchronous cooperating services coordinated by message passing. QNX just took these concepts to a sublime level of modularity, efficiency, orthogonality, and out into industry.

    (This nice JOT article reflects the relevance of these ideas in the SOA world. .)

    (At the time, Waterloo also had a robust Unix hacker community — Unix's lessons, strengths, and weaknesses were well known.)

    — an early Harmony and QNX application developer

  • sheva

    If this pans out, Is there a certain irony?

    If everything is converging to a unix base, isn’t competition and innovation stifled, as it won’t be economical for anyone to base their platform on anything but unix?

    Is it a wolf in sheep’s clothing?

  • UNIX is crap.

    No, I'm no fanboy, I use Linux every other day, and used to work on a MAC (as a dev).

    However, I've increasingly got lost in Unix's inner workings. Why?
    It is over-engineered, hence overly complicated.

    And as with most systems out there, it's documentation is…let me put it nicely….empty of any real value.

    That together with ridiculous limitations (such as the use of the space character, the sheer number of legacy folders, etc.) really really pisses me offf.

    I've always fantasized rewriting my own OS, the existing ones are done pretty bad…..

    • Dude. You suck so much! 😛

      Now internet has people who haven't picked up "The Art of UNIX Programming" or any other book on same lines, telling other guys how software should be. Saddening.

      • Anuj, that book is one of the reasons for my reply.

        People are using such a bible as an excuse for bad (REALLY bad) coding practices.

        People, move on. If I ever get an Android, I don't care if it uses sudo or not, it is practically useless. It is, for example, a solid browser/framework that Is Important.

      • If there is anything The Art speaks of, then its to keep things simple. Not "It is over-engineered, hence overly complicated". Documentation of most open source projects kicks some serious butt, and even if it would suck, it wouldnt matter to me, because that is better than having Windows NT running on your PC with you not knowing what the fuck is happening (Dll fuck ups, BSODs… You know what I am talking about)

        "That together with ridiculous limitations (such as the use of the space character, the sheer number of legacy folders, etc.) really really pisses me offf."

        Every OS has those.

    • DaveG

      see my comment below on MVS. Till you have programmed JCL you have not lived.
      And it was a contemporary, and a competitor, and market leader….
      The triumph of Unix over that family is something to celebrate.

  • And since the whole world is shifting more and more towards personal, portable and conformable computing, it means something for future UNIX evolving..

  • @sheva frankly has windows ever brought innovation whatsoever? Having copied others for ages and just on all desktop by illegal means just make people happy slaves, the worst enemies of freedom.
    Even MacOSX is based on BSD (Unix flavor). Do you think that innovation is way more possible when it can rely on something that is NOT bound to the UI and does its job as an actual Operating System?
    Windows is a retarded OS, though younger than Unix. What a lesson, technology excellence prevails greedy company.

  • DavidGB

    Interesting article, but let's not forget Unix's PARENT.
    In the early 1960's, General Electric was contracted to create MULTICS, the first usealbe multi-user system. Or at least the first multi-user system in whch you could put something into the file system and have a ope that it might still be retreivable the next day!
    When Bell labs withdrew from this project, Ritchie and Thompson los their account on the system and (cutting a long story short) wrote UNIX as a single-user system to run on the DEC

    • But I believe Unix was written as the antithesis of Multics (hence the pun in the name). From the wikipedia article on Multics:

      "The name Unix (originally Unics) is itself a hack on Multics. The U in UNIX is rumored to stand for uniplexed as opposed to the multiplexed of Multics, further underscoring the designers' rejections of Multics' complexity in favor of a more straightforward and workable approach for smaller computers."

    • J Osborne

      "MULTICS, the first usealbe multi-user system"

      Um, MULTICS did a break ground in many areas (shared libraries, aggressive memory mapping, capability biased, even some of the VM work was brand new), many of them even good. Useable however didn't describe it.

      The original hardware specs called for what was at the time a hugely beefy system, one that could support 100s or 1000s of users on it's native OS (admittedly a batch OS), and was spec'ed to support 30 interactive Multics users (with some specific performance requirements). The OS that got produced got at best one tenth of the performance requirements with only a single user logged on, or in other words supported 0.3 users not the 30 it was targeting, and clearly not the 100s that the hardware could really handle.

      Unix more or less did everything the way MULTICS didn't. MULTICS did memory mapped I/O ONLY (devices that could in theory produce an infinite amount of data, like a TTY (keyboard) were just assumed to be "really big", and if you got too much maybe you could close it and open it again, or something), Unix did stream based I/O ONLY (memory mapped I/O got added in at UCB in the early 80s). MULTICS had a complex security model. Very very complex. Unix had only normal users, a very simple access control system (and it only applied to files!), and a single "super user" that could do anything without regards to the access control system.

      In other words the only way MULTICS was a "parent" was Unix regarded it as a strung out worthless wineo and resolved to never ever itself take as much as a sip of wine in a social setting. Oh, and of corse decades later it has drifted down some of the paths it's parent took, but it hates itself for it 😉

      Seriously, look at V6 Unix (the oldest you can get any reasonable access to), and Multics, I'll bet you can find 500 design choices Multics made and Unix made the total reverse choice. Likely another 500 where the choices are "diffrent" but not easy to describe as the reverse. At best 20 choices that are the same (like "use strings to name files, not numbers").

      Modern Unixes have reinvented a lot of what Multics did, in part because Multics generated a lot of research papers that can be mined for ideas that didn't catch on at the time, but the world has changed and the ideas might be good now….for example when Multics was new taking a 15% performance it to have position independent shared libraries was an awful idea, and made the whole system slow. It is better to keep the code small, and require more main memory, and besides fixed disk drives aren't that much slower then core memory (10x?). Now die to larger register files and/or instruction sets designed to make PC relative addressing simpler shared libraries are a smaller performance hit (2% to 5%), and main memory isn't 10x slower then the hard drive it is 1000x worse. So the tradeoffs favor shared libraries, and the fine folks at Sun either reinvented them in the late 80s, or dusted off 1960s or 70s era Multics papers (sorry, I haven't looked at them since the 90s, so dates get fuzzy) and were inspired.

      In the 40ish years of Unix it has been "inspired" by many other OSes to take good (and some bad) ideas from them. Multics isn't special in that regard.

      "wrote UNIX as a single-user system to run on the DEC"

      I'm pretty sure it was intended to be a multiuser system. I'm also pretty sure it was originally intended to be able to drive the graphics display so they could clone the spacewar game and have a bit of fun 🙂

      I know by the time there was a "portable" Unix that was written largely in C (and that is the fundamental innovation of Unix — that it is a largely portable OS written in a largely portable language) Unix supported multiple users. 256 of them (255 "normal" users, and one super user).

      I don't think Multics had a fundamental innovation,it was a morass of good and bad ideas. IBM's VM/SP was the first virtual machine, very innovative, and IBM almost missed that they had invented something customers wanted, it was really intended to be an internal testing tool! The IBM 360 invented the concept of a line of hardware that would remain (largely) compatible across future releases (and has been so since before nix existed, to the current day!).

      (I don't think all OSes need a fundamental innovation, for example I think L4 is an amazing peice of work, but the closest to innovation it got was "Mach didn't disprove the concept of the microkernel, it just did it wrong and we can do it right")

  • DavidGB

    An interesting article. But let's not forget that there was life before UNIX. In fact, it had a PARENT.

    In the early 60’s, GE was contracted to create MULTICS, the first reliable multi-user system. Or, at least, reliable enough that you could put something into the file system and have a hope that it would still be there the following morning!

    When Bell Labs pulled out of the project, Ritchie and Thompson lost their MULTICS accounts and so, to cut a long story short, they wrote UNIX, a single user (at that time) operating system to run on the disused DEC PDP 7 sitting in the corner of their lab.
    The GE MULTICS developers were eventually retasked to write MINIX to run on the Honeywell Level-6 minicomputer. It shared many of the MULTICS features that are also found in UNIX. By the time it launched, marketing had renamed it GCOS-6, and it later became HVS, which is still in use I believe, running under a level-6 emulator, on the IBM RS6000.

    More than you ever wanted to know, right?

    • Mario M

      GCOS-6…I never thought I'd hear that again. That was my first job after graduating in….well I won't say. Was pretty cool at the time, but the Honeywell hardware was not very reliable. Memories….

      • Lou OQuin

        I did like the fact that the Level 6 mini’s had floating point registers, though. Very handy.

  • Pingback: Unix’s Revenge | Horace Dediu | Voices | AllThingsD()

  • don

    ". Windows did not. Microsoft had to build a completely new OS to deal with devices (Windows CE has little if any shared code with Windows NT et. al.). "

  • don

    ". Windows did not. Microsoft had to build a completely new OS to deal with devices (Windows CE has little if any shared code with Windows NT et. al.). "

    As an engineer who worked at Microsoft from 1991-2001, I'm pretty sure this isn't true. I can't say I actually looked at CE source code, but what is being said here is contrary to my perceptions, i.e., it's my belief there was shared code from CE all the way up to NT Server. Perhaps someone reading this can correct this if I'm wrong, but……it's my impression that, love or hate Windows Mobile (and I'm sure it can be argued that it's been a big failure), I believe it has an NT heritage.

  • Len Reinhart

    I have been working in the computer systems engineering business since 1976. I have worked on more operating systems than I can easily remember. UNIX had a chance to become the dominate operating system, but the vendors fragmented UNIX making each variant somewhat unique in an attempt to lock you into their flavor of UNIX. That is what killed UNIX. Linux is fragmenting now. IBM was the bad guy back then and Microsoft was viewed as a gutsy David taking on Goliath. Then IBM treated software as if it had no value. They gave it away to sell hardware. VMS was amazingly efficient on a one mip machine (the VAX). VMS is still alive and well. NT 3.51 was a great operating system, the choice to integrate the user interface into the NT kernel set it back and it is still recovering from that decision. QNX is not UNIX, but a very nice, efficient operating system. BeOS is perhaps one of the most elegant and clean operating systems, and lives on in the guise of Haiku. Android avoids a lot of the baggage of Java user interface creation and is interesting for that reason.

    • Tom

      1. IBM gave away its software to avoid antitrust issues.
      2. As Android becomes increasingly fragmented, pulled in many directions by OEMs and carriers, all disregarding the Open Handset Alliance, its fragments will be frags of frags of frags of….

  • Well… Windows won the battle back then… and many people made billions of dollars… It also made computing spread like wild fire to homes… Windows was the key to dot com boom era you know… Only Unix won't be able to achieve what Windows did… Still many people love Windows… Its not as sinister folks…

    • Unix-like systems have already made Windows into a marginalized market. Windows exists as a major force only on the desktop. Everywhere else is dominated by a Unix-like product. And as soon as people finally get it through their skulls that they do not have to put up with viruses and malware you'll see a dumping of Windows off of the desktop, too.

    • david

      the u.s department of defense and federal agencies gave bill gates and microsoft a defacto monopoly when they standardized on his inferior technology. lazy bureaucrats at the pentagon decided it was too difficult to deal with incompatibiliy between text document formats, and selected the format to their liking –instead of waiting a year or two longer and watched innovation in the marketplace deal with document conversion … and now we have open document standards.

      instead they allowed a single company to cost the taxpayers billions every year even when free more reliable alternatives exist. everything the microsoft provides could be downloaded off the web for free.

      imagine the savings to our federal government — bet we could reduce the national deficit overnight.

  • Tom

    I'd like to point out something of a minor error – Samsung's bada is not based on Unix – in fact, bada is nucleusRTOS (, it does use portions of GPL software such as GNU compiler toolchain from (, and other GPL libs.

  • I remember learning a rag tag and bobtail of OSs in the 1970s and being heartened by an article entitled "Unix – the Operating System of the 80s". My boss pooh-poohed Unix because it wasn't tied to a hardware vendor, and we put our money on GCOS-6. Needless to say the company I worked for and GCOS-6 are history.

  • Mario M

    Anyone out there have any thought on WANG VS. I worked on it for 1985-1989 and I have to say it was one of the best environments I ever worked in but I have no clue as to it's origins. One thing I know is that compared to GCOS-6 and other OSes of the time it was like Warp Drive compared to solid fuel rockets. And never ever crashed. Too bad it's gone.

    • Steve

      Hey Mario, 'New VS' has been virtualized to run on intel/linux hosts at double the performance benchmark and double max concurrent users of the legacy VS on Wang hardware. Keeps the old COBOL apps going and provides a very affordable virtual mainframe for enterprise.

    • david

      it's interesting how all the great technologies die in the hands of medicoracy.

    • Wow, thanks for bringing up Wang, that's awesome. My mother did Wang for 15 years, and was great at her job. My first computing experiences were using the VS and OIS machines when I'd go to work with her on Saturday — not much fun for a kid, but good experience to get anyway.

  • MiddleTommy

    The more you learn about this doesn't it just feel like on big game of "Risk" ? Where Microsoft has more armies in more countries. If only the dice would start rolling in favor of ….

    • Not sure what board you're looking at but, in the concept of Risk, MS is sitting on Australia with a handful of armies and no cards. The rest of the world is dominated by a number of different "players" with thousands of armies all working together in a rock-solid truce. At the moment MS has enough resources to keep Australia. But they can't break out and, eventually, they will be crushed.

  • There's allot of semantic arguing going on here. Linux isn't Unix. QNX isn't Linux or Unix. Blah, blah,blah. While all of the above is technically true, it's all forest & trees. The term Unix, in the current IT consciousness, actually means Unix-like. If it walks, talks, acts and quacks like a duck… Therefor, the meaning and intent of the original article as completely valid. Yes, fixing some of the minor technical statements would be a good thing. But they do not take away from the reality that Unix(-like systems) won in the end.

    • Philip Robar

      Just to make this discussion complete I'd like to point out that while UNIX used to refer to a particular code base (albeit one that began to fragment rather early in its youth), that implemented a particular philosophy of OS design and user experience; it now refers to a set of behaviors and APIs. If you've got the technical resources and the money then you too can be UNIX(R)—all you have to do is pass the test ( and write a check.

      While several people have mentioned Windows' POSIX layer, I'm surprised that no one mentioned Microsoft's Windows Services for UNIX, Cygwin, Interix or the MKS toolkit; anyone of which, given sufficient desire and resources, could probably be used to turn Windows into "real" UNIX(R).

  • david

    unix didn't die.
    no, not at all.
    unix lives on.
    it just changes names.

    kind regards,

  • Steve

    Oh yes, I *do* love a good old partisan OS article. Having been force-fed Unix academically in the early 1980s, I am an unapologetic fanman (too old to call myself 'boi') and I confess that I am delighted to see so much of what I loved about 'Unix' (whatever that is) driving the proliferation of the new mobile device platforms.

    For me, the key Unix-ish attractions have always been elegance and openness. Regarding the elegance, I didn't fully appreciate the sublime power of the posix apis, file system, pipes, and tool set until I started developing in MS Windows in the early 90s, where I felt hobbled by the environment and astounded at the ugliness of the system 'architecture'.

    As for openness, this has been an abiding theme of the Unix story, primarily through a fluke of corporate history. AT&T/Bell was bound by an earlier antitrust settlement that prohibited it from being in the computer business and forcing it to license computer source codes to anyone who asked. This drove the pervasive adoption of Unix by academics and government, who in turn drove new innovations that were folded back into commercially licensed variants. It also inspired the open source movement, epitomized by Richard Stallman's GNU project started in 1983 to achieve a free Unix ecosystem, which became Linux when Linus Torvalds capped it off with a better kernel in 1992.

    Microsoft has been wildly successful at locking down the desktop and has fed well on the twin teats of Windows and Office. Its tight control of a pervasive but closed-source system has allowed it to protect the desktop turf not so much by innovation as by strategic positioning and standards manipulation to block competition and hold the bought-in user base in cement.

    Microsoft now finds itself failing abysmally in the new mobile frontier due to over-reliance on its successful desktop strategies. When Windows NT first came out it had an innovative hardware abstraction layer to support alternate processors and a POSIX API for software abstraction and standards compliance. Unfortunately for Microsoft, they ditched processor independence and standards based APIs because these didn't serve the monopoly. Microsoft hoped their closed mobile OS offerings would extend the monopoly to the new devices, but Apple set the benchmark on what a mobile device should be and Linux was already positioned to outperform Windows on competing handsets. The open nature of Linux further motivated manufacturers to get out from under Microsoft.

    Nice to see elegance and openness on the ascent. Interesting times ahead. Some will sink, some will swim, anyone's game to win.

    • Acutally, Msft i loosing the mobile game because Windows CE was never "Cool". CE was envisioned as an extension of Windows XP, which doomed it.

      Architecturally, it is a nice OS, fully capable of competing with any OS out there. The GUI and tool chain have been thethered to the rest of the MSFT suites as an Add on. Had MSFT seriously invested in CE with better strategy and packaging, it would be a better OS.

      Unfortunately, the cat is out of the bag. It is kind of hard to go from NOT cool to COOL.

  • I miss my FreeBSD Unix boxes, I had them hosting hundreds of websites flawlessly for years…. was sad to see them go.

  • Pingback: Links 1/10/2010: Sabayon GNU/Linux 5.4, MeeGo Linux Can Run on Google-branded Phones | Techrights()

  • JohnMc

    What is an overall excellent piece is degraded by a lack of understanding in Unix/Linux taxonomy. Something that Shaun points out quite well. But your descent starts here —

    "…Fortunately, in stepped open source. Linux picked up the pieces and forged ahead to become a serious server operating system but never got beyond a toehold in the desktop."

    Quite frankly you have it exactly reversed. The dispersion of Linux back in the 1990's via the early Internet (that being a singular event in and of itself) is what made it possible for FOSS to come into existence. FOSS did not step into anything till Linux showed up. Granted QNX and Minix predate Linux, their ability to gain traction was limited and as a consequence FOSS as a concept would not bud out.

    Trust your commenters. Many of us lived through the Unix wars (at one point there were 70 some variants of approved Unix editions out there commercially). We know the history because we lived it/created it. I myself, nearing 60, worked for several Unix vendors as a developer during the period. Unix ecosystem was complex then, reasons for its early relegation to the upper end of the platform market many, though mostly technological.

  • The Other Steve

    Well well, this is all very zero sum isn't it ? Try this simple exercise : imagine a world where there is room for more than one kind of operating system, and that it includes operating systems that you don't like for whatever reason, and imagine that this situation continues indefinitely.

    Imagine that it is not some highlander like fight to the death where there can be only one.

    If this makes you uncomfortable, seek help, because it's a reasonable description of the real world and you're just going to have get used to dealing with it.

  • Pingback: Linux, Unix, BSD, what does it all mean? And where does Windows fit in? | Scali's blog()

  • dave

    nice article.

    it is not often that authors get it right on unix. there are IT professionals around me that do not seem to comprehend that android is linux is unix.

  • Site7000

    This article and its comments were a delight to read–so much information! As someone who started my first subscription to Byte in 1985, right after buying a Fat Mac as a first computer, the historical references help clarify the picture nicely. Actually the only thing that's in dispute here is the classic dispute between generalists (forest) and literalists (trees). Since they think so differently, there's no possibility of a shared conclusion, but seeing both sides has been highly educational for this generalist. Another data point is the people; that is, the quality of leadership behind Sun, Linux, Apple, Microsoft, Google, etc. But that's another story!

  • Hamranhansenhansen

    Also very much the revenge of NeXT. The Web was written on NeXT in 1990, but went mainstream in 1995 on Windows 95, which copied the NeXT interface.

  • Pingback: 65% of Apple’s sales from iOS powered devices and 90% depends on its own OS | asymco()

  • Bazz

    I read of a Programmer in the 70's who fell in love with Unix because it was so game friendly!
    AND he said that the game complexity is the same them as now but the visuals and landscape has increased immensely!

  • Bazz

    Steve Jobs started his other computer company in the 1980's..It was not without irony that it was called NEXT.

    AND at its core was Unix based! And Unix is ubiquitous now!

  • Pingback: In memoriam: Dennis Ritchie | asymco()

  • Anonymous

    > If everything is converging to a unix base, isn’t competition
    > and innovation stifled … [?]

    No. That’s Windows. There is not just one Unix, there are many. Each is as similar to other Unix systems or as different from them as it needs to be. The idea is that they are not arbitrarily different, or that wastes millions of human lives working around meaningless, arbitrary differences, like “/” (Unix) or “” (Microsoft) as the directory separator.

    Not everything is a competition. There is also cooperation. Both are necessary for a balanced approach that provides solutions to all problems. It’s great that competition sometimes leads people to invent new things, but it is also great that all computers can talk to the Internet. The latter happens through cooperation, not competition.

  • DaveG

    I saw a multics demo in the 80’s where they pulled a disk out and the system just carried on running. You could also take out processor boards in the same way. That was innovative – even for now.
    But the commands was verbose and the syntax complicated (but not as verbose as VMS or Sintran). But they had a comittee that vetted new commands and interfaces so you did not have annoyances like -R or -r meaning different things in different commands like in Unix.

  • DaveG

    You should try writing a script in JCL for MVS. MVS BTW has no filesystem. You just allocate some cylinders on a system dis when you need it. No kidding.

  • Anthony Lewin

    An insightful piece. It is also notable that Apple was able to scale down its Mac OS UNIX architecture develop its hugely successful IOS in contrast to Microsoft’s dual platform strategy with WP7 and W7 and soon to be released W8. It will be interesting to see where these companies stand in 5 years (or more).

  • Pingback: Baidu-droid; Samsung ‘no to WebOS’; Amazon Kindle tablet; Apple iCloud design – Telco 2.0 News Review | Outlooks & Insights()

  • Pingback: The parable of RIM | asymco()

  • Pingback: asymco | Unix’s Revenge - mediumrareplease | mediumrareplease()