Know something we should know? E-mail us your tips! We respect anonymity. »
All About Linux 2008: Aren’t UNIX and Linux the same thing? Yes and no.
  • 26 Comments
by Doug Aamoth on March 24, 2008

unixlinux

The “What’s the difference between UNIX and Linux?” question can be answered similar to the analogy section that many of us had to complete on the SAT test;

UNIX is to DOS as Linux is to Windows.

That’s a grossly oversimplified answer to a complex question and I’ll no doubt get flamed by some of the more advanced UNIX and/or Linux users out there but in the interest of keeping things simple, let’s go with the above italicized sentence.

If you’re no more interested in the differences between UNIX and Linux, then the simple UNIX is to DOS as Linux is to Windows phrase should be enough to keep you from getting knifed at a LAN party. It saved my ass back in ‘99 but that’s another story for another time. Let’s just say that BSD, Bawls, and 21-inch CRT monitors don’t mix.

A Little History

Which came first? UNIX came first. UNIX came way first. It was developed back in 1969 by AT&T employees working at Bell Labs. Linux came about in either 1983 or 1984 or 1991, depending upon who’s holding the knife. The GNU operating system was announced in 1983 by Richard Stallman and started in 1984, while the Linux kernel came about in 1991 courtesy of Linus Torvalds. Torvalds lent his first name to Linux by swiftly and deftly replacing the S with an X, so it could be argued that Linux, proper, was officially born in the early nineties.

Can UNIX stand on its own without Linux? Yes. Can Linux stand on its own without UNIX? Not really — although I’m sure it could be argued differently much in the same way that Windows doesn’t actually rely on DOS anymore even though DOS provided the initial foundation for Windows.

Ownership

Who “owns” each name?

The UNIX trademark is currently owned by The Open Group, which is made up of members from a bunch of different companies like HP, IBM, NEC, Hitachi, Fujitsu, and even the US Department of Defense and NASA. The group exists mostly to enforce standards. Systems that pass can be called UNIX, systems that don’t can be called UNIX-like or UNIX system-like. Linux is a UNIX-like operating system.

The Linux trademark is owned by Linus Torvalds. Companies that use the term “Linux” for commercial distributions are apparently supposed to pay him a yearly licensing fee between $200 and $5000 for use of the name but there’s some dissension as to whether or not they actually pony up. Apparently Red Hat doesn’t pay the license (as of 2005) but companies like Novell do pay. The Linux kernel itself is licensed under the GNU General Public License.

Flavors

Linux has hundreds of different distributions. UNIX has variants (Linux is actually a UNIX variant based somewhat on Minix, which is a UNIX variant) but the proper versions of the UNIX system are much smaller in number. Mac OS X Leopard is built upon UNIX code and certified under the Single UNIX Specification, which is “the collective name of a family of standards for computer operating systems to qualify for the name ‘Unix’”, according to Wikipedia.

Hardware and Cost

Linux can run on “regular” off-the-shelf computers. UNIX-based systems generally require proprietary hardware configurations and can cost thousands of dollars. As such, most people have tinkered with Linux while few have tried UNIX (although when you get into using the Linux command line, it’s very similar to UNIX).

Most Linux applications are available for free, while UNIX applications generally cost money. Linux is much more mainstream now than it used to be, so the line between what UNIX can do versus what Linux can do gets blurrier all the time. Most IT managers would have a hard time selling UNIX over Linux.

Other Differences?

I’m sure there are many of you out there who know a lot about the differences between Linux and UNIX, so please feel free to leave a comment below if I’m missing something important or I haven’t covered something accurately (see below).

[UPDATE] Here are some corrections I’ve gotten from our readers. Thanks to those of you who have left constructive and insightful comments. I’ve filtered out the parts about my inability to cohesively grasp all of the available information, but your comments — even the aggressive ones, provided they also contain some sort of helpful information — are warranted and appreciated because I’ll be the first to admit that I’m definitely not an expert when it comes to this stuff. This is a big, unwieldy concept for a lot of people and I want to make sure to get things straight, so thanks again for the help.

Comments from this post

Linux is no more a ‘variant’ of unix then toyota is a ‘variant’ of ford. Strictly speaking, linux is a clone of unix.. Just as the toyota could be called a ‘clone’ of ford (in other words ford came up with the model a, and toyota used that basic idea in the future, as in the design architechure). Linux isn’t even strictly a unix clone.. Its a kernel clone of minix, while gnu tools are clone’s of unix tools that run on top of linux.

Actually, no, that is not correct. If you read Linus’s biography, he is clear that he thought very little of Minix… The Minix kernel is based on a micro kernel design while the Linux kernel is based on a monolithic design. They are two very different animals.

First, Linux is not a variant of UNIX in any sense. Variants of UNIX all grew out of the UNIX code base. The Linux kernel was a ground up, clean implementation of the UNIX api, with plenty of rethinking and redesign along the way. The Linux userland is primarily GNU. GNU = Gnu’s Not UNIX (meaning is doesn’t use any of the UNIX codebase). While Linux is very UNIX-like, it is not UNIX.

Second, to say that Linux could not stand on its own with UNIX is false. There isn’t any UNIX to remove from Linux. If your point is that Linux resembles UNIX, well, yes it does. If your point is that Linux is a derivative of UNIX, no it isn’t.

You state: “Mac OS X Leopard is built upon UNIX code.”

Actually, Mac OS X Leopard is built upon the BSD code base (with a little GNU thrown in here and there). While it is true that BSD was originally based on the UNIX code base, the BSD developers replaced all the original UNIX code long before Apple based its OS on BSD. Therefore, it is incorrect to state that Mac OS X Leopard is based on UNIX code as it does not include any UNIX code.

You’re missing the fact that there’s a difference between Unix, and UNIX®.

UNIX® is a registered trademark owned and enforced. For something to be UNIX® it has to pass a barrage of compatibility tests. For instance, Mac OS X 10.5 is UNIX®.

The Unix community uses Unix (not all-caps) to refer to the family of operating systems descended from v7 Unix at Bell Labs. That includes the commercial Unixes descended through AT&T System V (SYSV), and the mostly non-commercial Unixes descended through BSD.

What complicates the picture is the question of what it really means for something to be based on something else. Saying it needs to have code from it doesn’t really work, as there’s very little v7 code left in OS X.

In the case of Unix, the best guideline for whether something is Unix or not is POSIX compliance. Both SYSV and BSD are moving towards the same POSIX standards for everything. Since Linux and Minix are too, and since they’re both modeled on the core Unix design elements from v7, it makes sense to say that they are Unix, even if they aren’t UNIX®–just like FreeBSD is Unix, even though it isn’t UNIX®.

Comments from Digg

IMO that analogy isn’t accurate enough. There are many flavours of UNIX, some arguable much better. These include Solaris and System V. No one uses DOS anymore in a corporate environment but many people still use UNIX. UNIX has a GUI FYI!

Unix is an operating System start was written in 1969. Just like most people say an operating system comprises of a Kernel and some user based tools, Unix consists of a kernel and some simple tools like sh (shell) and cc (c compiler). Then Stallman wanted Free Software so he started to replace all the UNIX tools with free alternatives starting with these userland tools. Those replacements included gcc (GNU C Compiler) and BASH (Bourne Again Shell). These tools were written for the UNIX Kernel. Then Linux, not acting as a part of the GNU team wrote Linux, a replacement for the UNIX kernel. Then people who wanted a free UNIX ran the GNU tools and the Linux Kernel to create a complete OS replacement.

History aside it’s worth noting that UNIX is still here and the GNU toolkit still runs against it. Nexenta (http://www.nexenta.org/os) is a flavour of UNIX that looks and feels just like Ubuntu. It has a copy of X, a copy of gnome, the GNU C Compiler but has a kernel based on Solaris (which is a version of Unix).

I think this pretty picture does the history much more justice: http://www.netneurotic.net/mac/unix/images/UNIX.pn …

If I was writing an article to submit to digg however (rather than just a comment) I would have provided references for my material.

Linux isn’t a unix-variant it’s unix-like. It’s just a kernel that uses GNU which stands for Gnu’s Not Unix.

Comments rss icon

  • A good analogy between Linux and Unix is akin to what is kosher. Both dishes are prepared in a kosher manner but only one dish, Unix, is blessed by the Rabbi, aka The Open Group. That’s it pretty much in a nutshell. But what does that make Windows?

    Windows is that pagan religion that bows down to the golden calf, aka Wall St. bull, and demands you tithe each time you kneel at the altar of Microsoft. You have to kneel because there are no chairs due to several incidents with altar boy Ballmer.

  • This is REALLY INACCURATE and you seriously need to do your homework. Your almost trying to rewrite history.

    “I’ll no doubt get flamed by some of the more advanced UNIX and/or Linux users out there but in the interest of keeping things simple”

    – Simple is okay…wrong isn’t. If your addressing a “simple” audience then saying UNIX is to DOS as Linux is to Windows…your effectively saying UNIX doesn’t have a GUI and Linux does. I mean thats the SIMPLEST description of the differences between DOS and Windows yes?

    This is really really misleading.

  • doug.. Linux is no more a ‘variant’ of unix then toyota is a ‘variant’ of ford. Strictly speaking, linux is a clone of unix.. Just as the toyota could be called a ‘clone’ of ford (in other words ford came up with the model a, and toyota used that basic idea in the future, as in the design architechure). Linux isn’t even strictly a unix clone.. Its a kernel clone of minix, while gnu tools are clone’s of unix tools that run on top of linux.

    I realize you are trying to dumb it down, but dumb doesn’t need to translate to ‘wildly inaccurate’ or even ‘outright false’.

    I DO appreciate that you guys are trying to get linux some exposure though!

    -olly

    • Okay. Instead of saying “Linux is a UNIX variant” I should have said “Linux is a kernel clone of MINIX, which is a UNIX variant.” Is that accurate?

      • Actually, no, that is not correct. If you read Linus’s biography, he is clear that he thought very little of Minix. Olly is incorrect in stating that Linux is “a kernel clone of minix.” I am surprised that your hair girl didn’t tell you that the Minix kernel is based on a micro kernel design while the Linux kernel is based on a monolithic design. They are two very different animals.

        Like the Dunkin guy, I think you are struggling with the difference between UNIX-like and UNIX variant. UNIX variant = derivative of the UNIX code base. UNIX-like = Uses an API and userland which in many superficial ways resemble UNIX.

        By the way, Minix is UNIX-like and not a UNIX variant. Education is fun!

      • When Linus began creating a kernel he used the Minix file system. Today, as you know, Linux can be installed on a few, if not several, different file systems. Orginally, Linus used an existing file system as he began creating a new kernel (a.k.a. Linux).

        The following passage is located at: http://e2fsprogs.sourceforge.net/ext2intro.html

        “In its very early days, Linux was cross-developed under the Minix operating system. It was easier to share disks between the two systems than to design a new filesystem, so Linus Torvalds decided to implement support for the Minix filesystem in Linux. The Minix filesystem was an efficient and relatively bug-free piece of software.
        However, the restrictions in the design of the Minix filesystem were too limiting, so people started thinking and working on the implementation of new filesystems in Linux.”

        As you know, cross-development is used regularly.

        I write this to add something to the mix, not to claim any great expertise. No, not at all like Ken Brown who wrote the book, “Samzidat” to tell us all about how Linux Torvalds could not have possibly created Linux. The book was apparently printed but never distributed. I have written to him at the Alexis de Tocqueville Institute http://www.adti.net and asked him to put it on the Internet for all to read. I have neither heard nor seen anything except an excerpt I was able to locate many moons ago. If he is as proud of his work as he claimed, I would really appreciate him making it available to all. I suppose he libeled too many people to take the chance.

  • it is a little “too dumbed down”, doug, but that’s all i’m gonna say. love the linux coverage…finally. it’s a nice change of pace from all the crApple love and losers bitchin’ about vista…

  • Doug, you are seriously confused. Also, your analogy is broken. First, Linux is not a variant of UNIX in any sense. Variants of UNIX all grew out of the UNIX code base. The Linux kernel was a ground up, clean implementation of the UNIX api, with plenty of rethinking and redesign along the way. The Linux userland is primarily GNU. GNU = Gnu’s Not UNIX (meaning is doesn’t use any of the UNIX codebase). While Linux is very UNIX-like, it is not UNIX.

    Second, to say that Linux could not stand on its own with UNIX is false. There isn’t any UNIX to remove from Linux. If your point is that Linux resembles UNIX, well, yes it does. If your point is that Linux is a derivative of UNIX, no it isn’t. Try doing a little research next time.

    • Yep, shoulda done some research indeed. Instead, I just asked the guy behind the counter at Dunkin’ Donuts about it and he was like, “It’s definitely a variant of UNIX” but then the girl that cuts my hair was like “No, it’s a clean implementation of the UNIX api but it’s not actually UNIX” and I went with the Dunkin’ Donuts guy like an idiot.

  • well, i’ve never really “used” UNIX or LINUX but the difference i know is that LINUX just have an “L” more than UNIX ^^… joking

  • Another error.

    You state: “Mac OS X Leopard is built upon UNIX code.”

    Actually, Mac OS X Leopard is built upon the BSD code base (with a little GNU thrown in here and there). While it is true that BSD was originally based on the UNIX code base, the BSD developers replaced all the original UNIX code long before Apple based its OS on BSD. Therefore, it is incorrect to state that Mac OS X Leopard is based on UNIX code as it does not include any UNIX code.

    Just for verification, I check with my personal trainer. He had to look it up, but then he agreed.

  • “Most Linux applications are available for free, while UNIX applications generally cost money… Most IT managers would have a hard time selling UNIX over Linux.”

    Like a lot of people, you seem to think that commercial UNIX = all UNIX. This just isn’t the case. Solaris, HPUX, AIX, etc are all commercial UNIX variants. They cost a lot and are designed to run on high end, expensive hardware.

    You fail to consider the free variants of UNIX. FreeBSD, NetBSD, OpenBSD, and DragonflyBSD are all examples of freely available decedents of UNIX that run on all sorts of inexpensive hardware.

    Further, your statements about UNIX applications and Linux applications is about 6 or 7 years out of date. The big commercial UNIX applications (Oracle etc) are now available for Linux. Open Source “Linux” applications (apache, etc) have always been available for UNIX.

    • “You fail to consider the free variants of UNIX. FreeBSD, NetBSD, OpenBSD, and DragonflyBSD are all examples of freely available decedents of UNIX that run on all sorts of inexpensive hardware.”

      You failed to do your UNIX history homework. There is no AT&T SYSV code in *BSD. All those parts were rewritten – read some history on the BSD. So todays derivatives of Jolitzes’ 386/BSD are no more UNIX than Linux is. Both of them are Unix-like and not Unix, strictly speaking. But whereas Linux kernel was written from scratch by person who wasn’t coming from the ‘hacker’ community of the US universities, BSD was written/rewritten by people who got access to the original AT&T SYSV codebase.

      The only still relevant today real UNIX systems are HP-UX, AIX and Solaris (they all still contain the original SYSV code).

      • To say that the modern BSDs are not UNIX really isn’t accurate. While it is true that the BSDs have replaced all original legacy UNIX code, the original BSD was in fact built out of the original UNIX code base. It is also key to note that AT&T pulled quite a bit of BSD code back into their UNIX (It was even the subject of a lawsuit which went in Berkeley’s favor).

        Being that the UNIX code base (including SYSV) includes lots of code ported from the BSD code base, which AT&T calls UNIX, we can only conclude that the same code being in BSD makes it UNIX. Your view that the only “real” UNIX systems are HP-UX, AIX and Solaris isn’t accurate and isn’t even shared by The Open Group, the owners of the UNIX name.

        BSD and AT&T UNIX were cross pollinated for a long time. BSD eventually shed all AT&T code, but to this day, all major UNIX variants still include BSD UNIX code. To say that BSD is not UNIX is to deny history and to fail to give credit to the hard work done on UNIX at Berkeley.

        • “While it is true that the BSDs have replaced all original legacy UNIX code, the original BSD was in fact built out of the original UNIX code base. It is also key to note that AT&T pulled quite a bit of BSD code back into their UNIX (It was even the subject of a lawsuit which went in Berkeley’s favor).”

          All true.. I agree with you.
          but… the BSD code that got incorporated into SYSV and during ‘unix wars’ of the ‘80 today is NOT part of free *BSD systems. The original vi written by Bill Joy is in my HP-UX system but on my other FreeBSD system I got only nvi written by Keith Bostic. Some of the original BSD code written in late seventies and eighties is now part of the AT&T UNIX but this code is not present in todays *BSD systems like FreeBSD, NetBSD or OpenBSD. Why? Because it was so heavily dependent upon original AT&T UNIX code that it had to be rewritten from scratch to allow for free redistribution under BSD license. It is all deeply discussed by McKusick in his essays on BSD history.

          So once again, STRICTLY speaking *BSD is not UNIX because it does not contain any proprietary AT&T UNIX code, but at the same time *BSDs and Linux
          are Unix in the sense they are built according to Unix principles.

          I am the last person not to give FreeBSD due credit (I’m contributing code to the Project) but truth must be told regardless. I consider Unix as a family of operating systems built according to the ideas first devloped by Thompson and Ritchie.

          Last thing – the development of *BSD systems is not really different from the development of Linux – both projects started as an effort of amateur programmers, not professionals like CSRG or AT&T Bell Labs. There is no real continuity of BSD development from the ‘80 to the era of Internet and free *BSDs. BSDs now are being developed by mostly amateur programmers from around the world, same as Linux…
          You look for continuity of code and talent? look for OpenVMS (now owned by HP)
          developed by DEC in late seventies and still going strong, developed mostly by the same people… I also think that HP-UX, AIX and Solaris are true descendants of the original AT&T UNIX codebase.

          Thanks for reading it :)

  • Doug’s failure was his inability to port the Unix code to his own wetware – DOUG! I told you to not to use the gcc tool chain. I, personally, find bits of Linux in my stool and I run the original Bell Labs code on my alarm clock.

  • You’re missing the fact that there’s a difference between Unix, and UNIX®.

    UNIX® is a registered trademark owned and enforced. For something to be UNIX® it has to pass a barrage of compatibility tests. For instance, Mac OS X 10.5 is UNIX®.

    The Unix community uses Unix (not all-caps) to refer to the family of operating systems descended from v7 Unix at Bell Labs. That includes the commercial Unixes descended through AT&T System V (SYSV), and the mostly non-commercial Unixes descended through BSD.

    What complicates the picture is the question of what it really means for something to be based on something else. Saying it needs to have code from it doesn’t really work, as there’s very little v7 code left in OS X.

    In the case of Unix, the best guideline for whether something is Unix or not is POSIX compliance. Both SYSV and BSD are moving towards the same POSIX standards for everything. Since Linux and Minix are too, and since they’re both modeled on the core Unix design elements from v7, it makes sense to say that they are Unix, even if they aren’t UNIX®–just like FreeBSD is Unix, even though it isn’t UNIX®.

  • I’ll stick with the simplified forest gumpest quote “UNIX is to DOS as Linux is to Windows”, otherwise the universe might implode.

    Its all good, except for the SCO i really hate that guy.

  • I’d like to add the most useful quote I’ve ever heard on the topic:

    “All version of Unix are exactly the same, except for the parts that are different.”

  • This is great!

    Doug, don’t worry. It’s not all that important what your metaphor is. I could as easy talk about the difference between cats and dogs: Dogs have owners; Cats have staff.

    If you’re interested in what I consider the “Full Story”, Dr. Peter Salus wrote _The Daemon, the GNU & the Penguin_ which is available online at Groklaw:

    The Daemon, the GNU and the Penguin

    (just in case linking doesn’t work, Groklaw.net is not too hard to search)

    Highly recommended reading.

    In the metaphor department, I like Neil Stephenson’s. They’re all cars. Microsoft is the big, expensive, full-service dealership which sells the cars with the hoods welded shut. Apple has another dealership across the road, much the same but more expensive and very pretty in comparison to the somewhat utilitarian MS vehicles.

    Across the intersection are the upstarts, who are giving away their vehicles for free. They’re tanks. Not lumbering awful stinky things, but modern M1-Abrams tanks with atomic engines that sip fuel, ready with the keys in them for anyone to take. Variations in colour, style, size, all there for the taking or design your own. (this is linux, bsd, etc)

    Yet, regardless of how much hollering, shouting and hand-waving the people at the field of uber-tanks do, other people still go into the expensive dealerships and spend hard-earned money for less. Much, much less.

    http://www.cryptonomicon.com/beginning.html

  • An accurate analogy to take from the DOS world would be that UNIX is MS-DOS and Linux is DR-DOS (or whatever other xx-DOS operating systems you want to pick, if you don’t like DR or MS). Geoworks** graphical environment would run well on either, much as X-Windows runs well on Linux or UNIX. The graphical portions are the same; it’s the underpinnings that are different.

    **MS Windows would be a bad example since MS intentionally diddled with it to cause problems with people running MS-Windows on DR-DOS.

  • Seems like we are basically in agreement. Though I would like to posit the following. At one time BSD contained AT&T UNIX code and was therefore UNIX. At the time it was viewed as a “branch” of UNIX. People spoke of AT&T UNIX and BSD UNIX. As time moved forward, the BSD folks replaced the original AT&T code. Why does that suddenly make it not BSD UNIX?

    At the time that HPUX, SunOS, Xenix, etc were created, they were not UNIX. For the simple reason that they were not allowed to use the name. However, everyone knew that they were in fact UNIX.

    I think the broader issue is that this article attempts to give a simple answer to a fairly complicated issue, and makes a huge misstep in assuming that Linux is derived from the UNIX code base.

    Once cannot begin to answer the question, “what is the different between UNIX and Linux” without discussing quite a bit of history. What did UNIX originally mean? What do people generally mean when they use the name “unix” now? Etc…

  • The original post was a trollsters post if ever i saw one. Since its been proven to include some inaccuracies, i am left wondering why it remains on-line?

  • Linux is what Unix was…20 years ago.

Leave Comment

Commenting Options

Enter your personal information to the left, or sign in with your Facebook account by clicking the button below.

Alternatively, you can create an avatar that will appear whenever you leave a comment on a Gravatar-enabled blog.

bugbugbug