Linux and Unix are often compared to each other. If the similarity in their names wasn't enough, Linux is technically a descendant of Unix, and they share a number of similarities in tool kits and overall structure. They aren't exactly the same, though, and the approaches and philosophies behind them are radically different.In this tutorial you will learn:
- The History of Unix
- The History of Linux
- How Unix and Linux were Developed
- Linux vs Unix Philosophy
- Difference between Software And Utilities
In order to really understand the differences between Linux and Unix, you first need to take a step back through time and understand how each one started out. Their origins are very different, and those differences helped to color the nature of each operating system.
Unix started out as a research project at Bell Labs in the mid 1970's where it was initially developed for research purposes on Bell's PDP-11 computers. As the C programming language was also being developed by primary Unix developers, Ken Thompson and Dennis Ritchie, they began converting the Unix source code to C, making it one of the first portable operating systems. That means that Unix, unlike many other computer operating systems of the era, could be used on multiple different computers.
It didn't take long for educational institutions, including top universities, to see the merit in Unix. They began adopting it both for their own mainframe systems and as a teaching tool for their computer science programs. Bell licensed Unix and its source code to these universities, leading to a whole generation of developers who learned on Unix, and making it the primary choice in both academic and business settings.
Over time, Unix swelled in popularity, and other major players began developing their own versions of Unix, including HP-UX, Solaris, AIX, and the Berkeley Software Distribution(BSD). During the 1980's and early 1990's Unix was everywhere, and it dominated the infrastructure powering most major businesses. Unix did make it into the home, too. Apple's Mac OS is based on its own version of Unix, Darwin.
In 1991, a computer science student at the University of Helsinki named Linus Torvalds grew frustrated with the restrictive licensing of MINIX, another operating system descended from Unix. In response, he decided to replicate the functionality of MINIX in his own Unix-like operating system kernel. That kernel later became Linux.
Torvalds decided to release his kernel under the GNU GPL free software license and distribute it on a young internet for collaboration and improvement. His decision would shape the way Linux is developed to this day and give rise to the Linux distribution.
Originally, Linux was used and built with the MINIX utilities, but for licensing reasons, it became clear that Linux needed its own set of utilities. That's when a natural match was made.
Earlier, in 1983, a researcher at MIT, Richard Stallman, decided to replicate Unix and release it under free software licenses for everyone to be able to use. He called his project GNU, or GNU's Not Unix. In 1991, when Torvalds was looking for an ecosystem for his kernel, GNU had all the necessary utilities for an operating system, except the kernel. Pairing the two to form the modern Linux operating system, GNU/Linux, was a no-brainer.
From there, developers began pairing the Linux kernel with their own collections of software from the GNU project and other compatible sources. These software distributions were each their own fully functional operating system, built around the Linux kernel. It wasn't long before corporate players began getting involved with this inexpensive replacement to the license encumbered Unix, with some developing their own distributions.
You can probably see from here that the origins of each operating system dictated who was developing each and how.
Unix: The Ordered Approach
Unix was a commercial product, and there are still commercial versions of Unix out there. They are developed by a single corporate entity internally and released in accordance with the corporations scheduling and deadlines.
The BSDs are open source Unix operating systems that, although released freely, are still developed in a more ordered way. The core of BSD and its core utilities are all handled by the same developers. They're finely tuned to all work in accordance with each other, and the system isn't released until everything's ready. Then, the other BSD distributions go and put their own spin out the outer parts of the system. The result is a much more controlled and measured system.
Linux: Unix Meets Anarchy
Linux is pretty much the exact opposite of Unix. Everything about Linux is chaos. The Linux kernel is overseen by a core group of developers employed by the Linux foundation, but they receive literally thousands of code submissions from independent developers and large corporations alike. They sort through that code and wrangle it into one cohesive kernel(hopefully).
Linux distributions are no different. Even corporate distributions like Ubuntu and RHEL are the result of their developers taking hundreds of independent projects and stitching them together to form a single system. Updates need to be managed on a case-by-case basis to provide one independent software project from breaking a dozen others.
It all sounds pretty bad, right? This chaos has always been Linux's strength. It creates options. If a project falls behind or takes a dubious direction, there are five more waiting to replace it. Linux distributions are able to tailor themselves to specific use cases, and play to unique areas of focus and strengths.
Both of these operating systems view themselves and their role in the computing world very differently. Again, these different viewpoints influence where each excels.
Unix was and still is a product. It doesn't come with any kind of social consciousness or political goal. The purpose of Unix is to serve is a stable operating system for getting things done, that's all.
The BSDs have adopted a more middle-ground approach. The BSD license allows BSD to be freely distributed, shared, and modified. However, unlike the GPL, the BSD license doesn't require projects based on BSD to remain free. As a result, BSD has become a favorite of hardware manufacturers who use BSD as the basis of their own proprietary operating systems. Plenty of routers are based on BSD, and the Playstation 4 even used BSD as the basis of its own operating system.
The Linux kernel is licensed under the GPLv2. Most of the core Linux utilities are from the GNU project and are also GPL licensed. The result is a system that must remain free and open source software. That's why RHEL, a commercial product, leaves its source open, leaving the door open for CentOS to built a clone with the same code.
The GPL also means that if any company wants to base something off of Linux, they need to leave the source open. While this might discourage some, most cases have resulted in companies contributing their code to Linux as a whole and reaping the benefits along with everyone else. Google used the Linux kernel for the core of both Android and Chrome OS. Now, they are one of the biggest contributors to Linux development.
Linux has always been about community collaboration. While that may produce its share of chaos, it also allows for a truly open ecosystem that allows the best contributions to rise to the top.
Software And Utilities
There isn't much to say here other than that BSD has its own specific set of utilities while Linux used GNU and whatever else the distribution maintainers decide will work best for their system. In fact, there are plenty of Linux distributions that borrow tools and utilities from BSD. The raw adaptability and flexibility of Linux has always been what has allowed it to survive and thrive.
Both operating systems are stable and reliable. Unix tends to be better at predictability. It's tame, well engineered, and generally runs smoothly. Linux, on the other hand, can be as rock solid or wild as the people assembling the system want it to be. If you want something that won't change for ten years, install RHEL or CentOS. Do you want to fly by the seat of your pants on the bleeding edge, put Arch on your machine. Maybe you don't like any of the available options. Go ahead a build your own Linux distribution for yourself. No one's stopping you.