If you’ve just started reading and learning about Linux, you might have encountered the term “Unix”. The word itself looks similar to Linux, but what does it mean? Perhaps you’re wondering: what is the difference between Unix and Linux?
Generally, it depends on how you interpret each of these two terms, because both can have different (yet related) meanings. In this article we bring you a simplified story of Linux and Unix to help you understand their relationship. As always, you’re welcome to ask questions and add more information in the comments.
The (Hi)story of Unix and Linux
The story of Unix began in the late 1960s and early 1970s, in the computing research department of AT&T Bell Labs in the United States. Together with MIT and General Electric, the Bell Labs were developing a new operating system. Some of their researchers were unhappy with the progress of the project, and withdrew to create their own OS. In 1970 the new product was given the name Unix, and two years later its code was entirely rewritten in the C programming language. This made it much easier for developers to port Unix to different computing platforms.
As the development of Unix continued, AT&T started selling licenses for its usage to universities, and later to commercial vendors. This meant that not everyone could freely modify and distribute the source code, essentially making Unix a proprietary operating system. Soon, derivatives and variants of Unix for different purposes and with different licenses started popping up, with BSD (Berkeley Software Distribution) as probably the best-known among them.
Linux is based on Unix in spirit and functionality, but not in code. As an operating system, it grew out of two projects: the GNU Project, started by Richard Stallman in 1983, and the Linux kernel, written by Linus Torvalds in 1991. The goal of the GNU Project was to create an operating system similar to Unix, but separate from it; in other words, containing no code from Unix so that it could be further modified and distributed without limitations as free software. Since their own kernel was incomplete, the GNU Project accepted the Linux kernel, and so the operating system GNU/Linux was born.
The design of the Linux kernel was influenced by MINIX, a variant of Unix, but the entire code was written from scratch, not borrowed from it. Unlike Unix, which was used on servers, large mainframes and expensive computers at various institutions, Linux was developed for personal computers, a much simpler type of hardware. However, today it runs on more platforms than any other OS, including servers, embedded systems and mobile phones.
What is Unix?
The term “Unix” can refer to the following:
- the original operating system developed by AT&T Bell Labs from which other operating systems derive.
- the trademark – written in all caps, UNIX – held by The Open Group, which also developed a set of standards for operating systems called Single Unix Specification. Only those operating systems which comply with the standards can legally bear the name “Unix”. The certification is not free, and requires the developers of an operating system to pay trademark royalties for the name.
- all operating systems which are registered with the “Unix” name because they comply with the aforementioned standards. They are AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS and OS X – yes, the one that runs on Mac computers. (Interestingly enough, OS X celebrated its 14th birthday this week: on March 24. Congratulations!).
What is Linux?
Strictly speaking, the term “Linux” refers only to the kernel. The operating system is not complete without a desktop environment and applications. Since the majority of applications were and still are provided by the GNU Project, the full name of the operating system is GNU/Linux.
However, nowadays many people use “Linux” to refer to any and all Linux distributions, and use the term as a generic name for all operating systems based on the Linux kernel. The version 4.0 of the Linux kernel is currently in development, as Linus Torvalds recently decided to switch to a new numbering system for kernel releases.
Linux is a Unix-like system, which means that it behaves like Unix, but doesn’t contain its code.
Unix-like systems are often described as Un*x, *NIX, or *N?X, or called “Unixoids” in some languages. Linux doesn’t have UNIX certification, and GNU is said to stand for “GNU’s Not Unix”, so in this respect, OS X is “more Unix” than Linux. However, on the level of functionality, the Linux kernel and the GNU/Linux operating system(s) are very similar to Unix and follow most of the principles of Unix philosophy, like having human-readable code, storing system configuration in plain text files, relying on simple, small command-line tools, having a shell, a login and a session manager…
It’s important to note that it’s possible for a Unix-like system to obtain UNIX certification. In some contexts, all operating systems derived from or based on Unix are referred to as Unix-likes, regardless of whether they have the UNIX certificate or not. Also, they can be commercial or free (and open-source) operating systems.
- Linux is free and open-source, the original Unix is not (but some of its derivatives are);
- Linux is a “clone” of the original Unix, but it doesn’t contain its code;
- Linux is just the kernel, while Unix was/is a complete operating system;
- Linux was developed for personal computers, while Unix was primarily for large workstations and servers. Today, Linux supports more platforms than Unix;
- Linux also supports more filesystem types than Unix.
As you’ve seen, the confusion usually stems from the fact that both “Unix” and “Linux” can mean different things. Whichever meaning is being used, the fact remains that Unix was there first, and Linux came later. Linux was born out of a desire for software freedom and portability, and inspired by the Unix approach to computing. It’s safe to say we’re all indebted to the free software movement because, technology-wise, the world would be a much darker place without it.