Introduction
In common usage, "Linux" often refers to a group of operating system distributions built on the Linux kernel. But in a more specific sense, Linux refers only to the kernel itself. To build a complete operating system, Linux distributions typically include tools and libraries from the GNU project and other sources. More recently, more developers have been using Linux to build and run mobile applications; the operating system has also played a significant role in the development of affordable devices such as Chromebooks, which run operating systems on top of the kernel. In cloud computing and server environments in general, Linux is a popular choice for certain operational reasons:
- Its distributions are up-to-date and supported by other developer communities.
- This operating system can run on a wide range of hardware and can be installed alongside existing systems (a useful feature in local development environments).
- Supports centralized installation of software from pre-built repositories.
- Its resource requirements are low.
- When developers are building programming ecosystems and the tools needed for servers, Linux is usually the first choice, leading to high compatibility.
- It allows you to make necessary changes to operating system behaviors.
Linux also has roots in the free and open source software movement, which is why some developers use it for ethical and operational reasons:
- For some developers, using Linux means a commitment to open access and freedom of expression.
- The Linux community is also attractive to some developers: when they have a question, they can refer to the resources produced by this community or contact one of the active maintainers directly.
To understand the role of Linux in the developer community (and beyond), this article outlines a brief history of Linux through Unix and examines some popular Linux distributions.
Roots in Unix
Linux has its roots in Unix and Multix, two projects that aimed to develop a robust multi-user operating system.
The beginning of Unix
Unix evolved from the Multix project at Bell Labs' Computer Science Research Center. The developers working on Multix at Bell Labs and elsewhere were interested in building a multiuser operating system with single-level storage, dynamic linking (in which a running process could ask the system to add another section to its address space so that it could execute code from that section), and a hierarchical file system.
Bell Labs stopped funding the Multix project in 1969, but a group of researchers, including Ken Thompson and Dennis Ritchie, continued to work on the original principles of the project. In 1972–73 they decided to rewrite the system in C, which made Unix uniquely portable: unlike other contemporary operating systems, Unix could move from its hardware and keep it alive.
Research and development continued at Bell Labs (later AT&T), however, and the Unix Systems Labs developed versions of Unix in collaboration with Sun Microsystems that were widely adopted by commercial Unix vendors. Meanwhile, research continued in academic circles, particularly the Computer Systems Research Group at the University of California, Berkeley. This group produced the Berkeley Software Distribution (BSD), which inspired a variety of operating systems, many of which are still in use today. Two historic BSD distributions include NeXTStep, an operating system pioneered by NeXT that became the basis for macOS and other products, and MINIX, an educational operating system that became a benchmark for Linus Torvalds when developing Linux.
Key Features of Unix
Unix focuses on the principles of clarity, portability, and concurrency.
- Resolution: Unix's modular design allows functions to be executed in a limited and specific manner. Its file system is unified and hierarchical, which simplifies data manipulation. Unlike some of its predecessors, Unix implements hundreds (not thousands) of system calls, each of which serves a direct and clear purpose.
- Portability: By writing Unix in C, the Bell Labs team prepared Unix for widespread use and adoption. C was designed to provide shallow memory access, minimal runtime support, and an efficient relationship between the language and machine instructions. Unix's foundation in C meant that the operating system was adaptable and could easily run on a variety of hardware.
- Synchronization: The Unix kernel is purpose-designed (in collaboration with the Multix project) to support multiple users and workflows. Kernel space in Unix is distinct from user space, allowing multiple programs to run simultaneously.
The Evolution of Linux
Unix raised important questions for developers, but in its early versions it was still proprietary. So the next chapter in its history is the story of how developers worked within and against the framework, leading to the creation of free and open source alternatives.
Open source experiments
Richard Stallman was a central figure among the developers who were inspired to create non-proprietary alternatives to Unix. While working at the MIT Artificial Intelligence Laboratory, he began work on the GNU Project (which stands for "GNU's not Unix!") and eventually left the lab in 1984 to distribute components of GNU as free software. The GNU kernel, known as the GNU HURD, became the focus of the Free Software Foundation (FSF), which was founded in 1985 and continues to be led by Stallman.
Meanwhile, another developer was working on a free alternative to Unix: Linus Torvalds, a Finnish undergraduate student. After becoming frustrated with the MINIX license, Torvalds announced to the MINIX User Group on August 25, 1991, that he was developing an operating system that would be similar to MINIX. Although the kernel was initially developed on MINIX using the GNU C compiler, the Linux kernel quickly became a unique project, with a team of developers releasing version 1.0 in 1994.
Key Features of Linux
Although the Linux kernel inherits many of the goals and features of Unix, it differs from the previous system in the following ways:
- Its core component is the kernel, which is developed independently of other operating system components. This means that Linux uses different sources (such as GNU) to build a complete operating system.
- It is a free and open source operating system. Its kernel is licensed under the GNU General Public License (a result of the FSF's work on the GNU project) and is available for download and modification. The GPL stipulates that derivative works must retain the license terms of the original software.
- Linux has a monolithic kernel, similar to Unix, but can dynamically load and unload kernel code.
- This operating system has support for multiprocessors (SMP), unlike traditional Unix implementations.
- Its kernel is predictable, which is another difference from Unix.
- Its kernel does not differentiate between threads and normal processes.
- This operating system has a command line interface (CLI) and can also have a graphical user interface (GUI).
Popular Linux distributions
Developers maintain many popular Linux distributions today. Among them, one of the oldest is Debian, a free and open source distribution with 50,000 software packages. Debian inspired another popular distribution, Ubuntu, which is funded by Canonical Ltd. Ubuntu uses the deb package format and Debian's package management tools, and Ubuntu developers contribute changes to Debian.
There is a similar relationship between Red Hat, Fedora, and CentOS. Red Hat created its own Linux distribution in 1993 and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that uses the Linux kernel and components from the GNU project.
Result
In this article, we've covered Linux's roots in Unix and some of its defining features. If you're interested in learning more about the history of Linux and Unix variants (including FreeBSD), a good place to start might be our series of articles about FreeBSD. You can also check out our Getting Started with Linux series.









