OPINION

Is Linux Unix?

My Web logs show that somebody asked Google an interesting question sometime just before 08:03:41 Eastern on January 24th and then again sometime before 04:54:29 Eastern on January 26th. As entered the first time, the search was for “linux to unix relationship,” although that became “relationship of linux to unix” a few minutes later and “what is the relation of Linux to Unix” two days after that.

Since my personal site isn’t the first one that comes up when you do these searches, I decided the person must have been very interested in pursuing the question. So I set out to answer that question in this column. Aside from legal considerations associated with trademarks and copyrights, I know, of course, that the answer is obvious: Linux is Unix. Duh. Even Scott McNealy has said so.

On the other hand, experience suggests that about half of everything I know is wrong, and IDC, in its work for Red Hat, certainly claims that Linux isn’t Unix. Red Hat’s Mark de Visser recently said the path to Redmond is through Mountain View, which means the company is focusing on Unix now to displace Microsoft on the desktop in the future.

So, is this just a marketeer’s attempt to differentiate his x86 Unix from Sun’s x86 and Sparc-based Solaris, or is there a significant difference that isn’t accounted for by relative scale and maturity?

Starting with History

History may give us a place to start. Everybody knows Unix started at what was then AT&T Bell Labs and went through two enormous growth phases, the first at Berkeley in the early 1980s and the second at Sun 10 years later, but surprisingly few people know where Linux came from.

Before looking at that, however, it’s important to be clear that Linux is actually a composite. The Linux platform includes the Linux kernel, the same GNU utilities found in virtually all versions of Unix, the same GUIs and applications available for most Unix variants, and hundreds of device drivers either custom-developed for Linux and (mostly since) ported to Unix variants like Solaris for x86 or ported from Unix variants such as OpenBSD and SCO Open Server.

The current kernel is fundamentally the work of Linus Torvalds and people he recruited into the kernel development and maintenance process, but the kernel he started with — Andrew S. Tanenbaum’s Minix — was unambiguously described by its author as “an open source Unix clone.”

Stacking the Case

That’s actually important for another reason too: Tanenbaum’s 1987 book, Operating Systems: Design and Implementation, was one of the first to include both the source and an absolutely clear open-source license agreement along the lines laid out by Richard Stallman’s Free Software Foundation.

Both history and composition therefore stack the case toward believing that Linux is indeed Unix. Unfortunately, history isn’t enough; after all, the same argument would support the belief that Yorkshire Terriers are Alaskan Malamutes on the grounds of genetic heritage and a shared interest in chasing mice.

What’s really needed to settle this is a definition of Unix. Unfortunately, there’s no obvious definition against which we might compare Linux. The systems we all accept as unambiguously Unix — that is, BSD, HP-UX, Solaris and Tru64 — have more functional differences than, say, Linux and Unixware. Old standbys like the System 5.3 compatibility test risk having to certify zOS and Windows 2003XP with Services for Unix as Unix — and we know that’s wrong.

A better idea, therefore, may be to look at what the product is intended to do, rather than how it does it, to see whether Linux meets Unix expectations.

From the Mouths of Developers

For this, consider what Dennis Ritchie, one of the original Unix developers, had to say in a paper on “The Evolution of the Unix Time-sharing System”:

From the point of view of the group that was to be most involved in the beginnings of Unix (K. Thompson, Ritchie, M.D. McIlroy, J.F. Ossanna), the decline and fall of Multics had a directly felt effect. We were among the last Bell Laboratories holdouts actually working on Multics, so we still felt some sort of stake in its success.

More important, the convenient interactive computing service that Multics had promised to the entire community was in fact available to our limited group, at first under the CTSS system used to develop Multics, and later under Multics itself. Even though Multics could not then support many users, it could support us, albeit at exorbitant cost. We didn’t want to lose the pleasant niche we occupied, because no similar ones were available; even the time-sharing service that would later be offered under GE’s operating system did not exist.

What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.

What he means here isn’t just time-sharing on a single machine, but a collaborative environment in which the system is used to provide communications among people and thus enable them to share goals and ideas while contributing to each other’s work.

So does that sound like a description not so much of Linux but of the fellowship that’s sprung into being around it? Of course it does, and combining that usage with the origin in Minix, the shared GNU and open-source heritage, and obvious functional compatibility with Unix settles the question: Linux is Unix, and no ifs, buts or maybes about it.


Paul Murphy, aLinuxInsider columnist, wrote and published The Unix Guide toDefenestration. Murphy is a 20-year veteran of the IT consultingindustry, specializing in Unix and Unix-related management issues.


12 Comments

  • I am a bit of an IT dinossaur but I started using Apples in 1980 (IIe) and in 1985 I bought a 286AT along with Xenix to run a Point of Sale system for my business. To explain Xenix was a cut down version of Unix and was designed to handle up to 256 terminals. The software was distributed by Santa Cruz Organisation (SCO) and by the standards of the day was very expensive. It was most definitely copyrighted and had warnings about illegal distribution. I still have the software. I know that in the mid-90s Santa Cruz org sold out but cannot remember to whom.

    • Actually the orginal licence, printed in the book with the source is available at: http://www.cs.vu.nl/pub/minix/LICENSE. It’s fairly
      clear:
      "Distribution and use of the MINIX operating system in source and binary forms, with or without modification, are permitted provided that the following conditions are met…"
      with the usual opne source conditions following.

      • Right, Xenix was developed by SCO under contract to Microsoft from AT&T System V code. That’s why Microsoft recently signed a continuation of their AT&T code use rights with SCOsource inc.
        When SCO’s exclusive contract with MS ran out they obtained the right to market the product as SCO Xenix and then spent nearly ten years getting the last MS code out so they could release an upgraded version as SCO Open Unix.
        That was the product whose code was used in the IBM Monterey project -leading in part to the present mess where some of this code is (I believe) in Linux.

          • Linux will never be UNIX. UNIX is a complete operating system and Linux is just a kernel. The complete Linux operating system is GNU/Linux, and it’s composed by the Linux kernel and some GNU utilities. What is GNU? Gnu’s NOT Unix.

            As the creators defined, Linux can’t be UNIX, because there’s no UNIX code in it (except for some contributions, if any). Why there’s no UNIX code? Because Linux was written "from scratch", being always "UNIX-like" but not mixing. GNU/Linux is POSIX compliant but it is still a different thing: it’s GNU/Linux.

            Another thing: Linux is free, and its concept is just (or was just) educational. UNIX is for commerce. Linux grew up because of its characteristics, and now it can be used to do anything you want. Believe me… there’s an enormous difference between both.

            Cheers! Dark-Proximity.

          • Unix is not commercial only, most every *BSD OS is free (unless you count windriver), and works just as well as a home desktop system as Linux, and Solaris is free (in price) for educational/non-commercial purposes.
            :
            The reason the name UNIX is important is because of what it symbolizes. It encompasses a desire to work with the community to ensure that any software designed for it can easily be ported to a new hardware/software platform that is also unix compliant. That is the reason you have to have open group approval. That is what the Unix93/95/98/03 part means. It all comes down to common APIs.
            :
            Linux is NOT Unix, no matter how you look at it, for this reason. To my knowledge, Linux is not even fully POSIX compliant. The Linux APIs are changed at whim, leading to a large amount of software that will not compile cleanly on any form of Unix. The kernel team does not go for Unix compliance certifications both because it cannot currently achieve it, and because they have no desire to. Linux is no better than Windows in this aspect.
            :
            If you use the author’s reasoning of "A better idea, therefore, may be to look at what the product is intended to do", then it has nothing to do with legal reasons, it all comes down to the APIs used by the system. Using this view, it is not Unix by any stretch of the imagination. I don’t see how the author can write an article on this subject and leave this out, given that it is the only valid point?
            :
            As a side note to the Unixware/Linux differences, nothing made by SCO complies with the Unix98 or later standards either, so chances are anything new added to SCO OSes since 95 was added with the intention of adding Linux API support.
            :
            As to the vast uses of Linux compared to Unix, this really comes down to the fact that Linux has more people working on obscure ideas, and more corparate backing in developement (Not commercial, eh?) than any open source Unix does.

  • The article says "but the kernel he started with — Andrew S. Tanenbaum’s Minix — was unambiguously described by its author as "an open source Unix clone.""
    This is misleading. Linux does not now, nor has it ever, included Minix code. And tanenbaum used "open source" in a way far removed from the modern usage, which was popularized by Eric Raymond 6 or 7 years ago…he simply meant that the source was available to read. You weren’t allowed to distribute modified versions, or distribute it period; if you had a patch, you had to send it to Tanenbaum because only he could change minix. It was frustrations with the slow change (he wanted to keep it simple as a teaching tool) that caused Linus to develop linux in the first place; the fact that Linus once used software described as a unix clone really has no bearing on the issue.

  • The analogy of dogs is a great example of how Linux and Unix actually differ.
    First off, Linux is not a genetic derivative of UNIX; A genetic derivative of a unix system would be a direct copy of the source-code, which would then be modified for the given hardware.
    The argument, Yorkshire Terriers are Alaskan Malamutes on the grounds of genetic heritage and a shared interest in chasing mice, don’t apply to linux and Unix, because they don’t share a genetic heritage.
    Linux borrows the idea of the unix-system
    for the file-system, device-drivers and basic applications typically available to the base system.
    However, a Collie is not a German Shepherd,
    even if they are the same size, run at the same speed, and are both used for shepherding sheep.
    German shepherds have retained the predator skill of tracking, which is why they are used as police dogs.
    The same goes for UNIX. If current unix implementations, like SUN-OS, were ported to x86, including the years of tweaking to security and optimization, you would see stark differences between that unix and RedHat9, for instance.
    I think most would agree, Linux is more domesticated for the average user.
    All OS’s have needs for configuration tweeks, fixing security holes and adding new apps.
    However, RPM’s are much easier than compiling sourcecode for the same application.
    The biggest concern I have is the current trend to throw out the German Shepherd for the Collie, just because the Collie is now the favorite hobbie-dog to have.
    You might be able to train the Collie for tracking, but you still have many generations of the shepherd refining this skill.
    This leads me to my final argument.
    The reason why cats (MS) are losing out, is because they have lost focus on what makes them so popular; They’re EASY to maintain!
    Ok, so Linux and MS are both popular, because of relative ease of use. This is argueable, because ease at doing what? They are really two seperate things; But, this is only because one is a dog and the other a cat, and cats get fur-balls, which require spit-up sessions, where the owner has to wait….

    • To me, your most interesting point is the one about porting SunOS to x86; you may not be old enough to know this but that was done, by Sun, back in the 80s when Intel introduced its first 32bit CPU: the 80386/80387 combination.
      SunOS, of course, had a full 32bit GUI environment at the time but PC-dos was still limited to 16bit blocks with a 4bit latch to give it 16 blocks of 64K. ten of them user accessible.
      Thus when Microsoft ported Excel and Word from the Mac they had neither a GUI nor a 32bit environment to run on and for some time more people -apparently including Microsoft’s own developers- ran the product under the SunOS dos emulation than on PCs.
      As for the rest of what you say, well, SCO is going to win on merit; Solaris handles rpm; the Sun desktop system so rapidly gaining popularity was put together under Solaris for SPARC and ported first to x86 and then to Linux; and people who finds MS "easy" to maintain probably don’t do their own security management.

      • Quite right; look at trademark and legal issues and linux isn’t Unix. Look beyond that, however and it is.
        You are also right about special versions not being Unix in the sense of being complete implementations meeting the legal standard for trademark use. I maintain, however, that even embedded versions of Unix are Unix by virtue of heritage and purpose. That’s the opposite of the legal view; but I can live with that.

        • You end your article by saying:
          "Linux is Unix, and no ifs, buts or maybes about it."
          However, consider the first sentence of your latest reply, which can be paraphrased like this:
          "[IF you] look at trademark and legal issues … [then] linux isn’t Unix. [BUT l]ook beyond that … and it is."
          Something’s not adding up here…
          But anyway, doesn’t the Open Group control the *functional* definition of UNIX as well as the trademark? So however you look at it, the actual answer to whether Linux can be called UNIX is "Not unless the Open Group certifies that it satisfies all the requirements."

  • By legal and technicial definations Linux is not actually Unix. There is one company that owns the Unix Trademark (the open group). I think you’re asking the wrong question anyway. Unix is something you have to pay to be able to call yourself. On top of that, Linux is a kernel. Unix is not just a kernel (kernel + userland). A more appropiate question might be "Is distribution Y POSIX compliant". There’s too much clutter and history with the term UNIX. When you’ve got something that stuck in history, it becomes almost impossible to pull it out of the tar pits. The problem is, if Linux is UNIX, then there’s a lot of things we can’t change, because they are too closely tied to UNIX.
    . . .
    . . .
    There’s just too much variation on how a Linux distro is assembled. The varation is a great thing because then you can get specialized tools for the right job. But, then you lose your ability to fit into a defination. If Linux fit the defination of UNIX where would it end? If I make a linux based PRV using diet libc and busybox, do I have a UNIX PRV? I’m still using the linux kernel, so it’s still Linux. What if I remove the CLI and make it a web configurable mail server. Is it still UNIX then? UnixWare doesn’t do cool stuff like that. It probably never will. It’s stuck in the rigid defination that really serves little purpose today.

Leave a Comment

Please sign in to post or reply to a comment. New users create a free account.

Which cybersecurity hazard do you fear the most as an individual?
Loading ... Loading ...

LinuxInsider Channels