In popular usage, “Linux” often refers to a group of distributed operating systems built on top of the Linux kernel. In the strictest sense of the word, though, Linux only refers to having the kernel itself. In order to install a complete operating system, distributions often include a set of tools and libraries from the GNU Project and other sources. Other developers have recently been using Linux to build and run mobile applications; it also plays a key role in the development of affordable devices such as Chromebooks that run an operating system at the core. In cloud computing and server environments in general, Linux is a popular choice for several practical reasons:
- Its distributions remain up to date and supported by other developer communities.
- It can operate on a wide range of hardware and is installed alongside existing systems (a useful feature of local development conditions).
- It supports centralized installation of software from pre-existing repositories.
- Its resource requirements are low.
- This is often the height of the mind when developers build ecosystem applications and server hardware, resulting in a high level of compatibility.
- It supports the required changes in the behavior of the operating system.
Linux also has its origins in the open source and free software movement, and as a result, some developers choose it for its combination of ethical and practical considerations:
- For some developers, using Linux represents a commitment to accessibility and freedom of expression.
- The Linux community also attracts some developers: when they have questions, they can refer to resources received by that community or go directly to one of the many active maintainers.
To understand the role of Linux within the developer community (and beyond), this article will provide a brief history of Linux through Unix and also discuss some of the popular Linux distributions.
Roots in Unix
Linux has its roots in Unix and Multics, two projects that share the same goals of creating a reliable multi-user operating system.
Unix is developed from the Multics project in Computer Science Research Center at The Bell Laboratories. Developers working on Multics at Bell Labs and elsewhere have been interested in building a multi-user operating system with storing a sibling, dynamic linking (in which a running process can request the addition of another segment to the address space, allowing it to execute the code of that segment) and a hierarchical file system …
Bell Labs ended funding for the Multics project in 1969, but a group of researchers, including Ken Thompson and Dennis Ritchie, continued to work with the core principles of the project. In 1972-3 they made the decision to rewrite the system in C, which made Unix uniquely portable: unlike other modern operating systems, it can move around and outlive its hardware at the same time.
Research and Development at Bell Labs (later AT&T), a follow-up with Unix System Laboratories, is developing a version of Unix, in collaboration with Sun Microsystems, to be widely adopted by commercial Unix vendors. At the same time, research continued in academia, most notably the Computer Systems Research Group at the University of California at Berkeley. This group produced the Berkeley Software Distribution (BSD), which inspired a number of operating systems, many of which are still in use today. The two BSD distributions for historical reference are NeXTStep, the operating system started with NeXT, which became the basis for MacOS, among other products, and MINIX, the educational operating system that formed the basis for Linus Torvalds, from this basis and developed Linux …
Basic Unix Features
Unix is centered around the principles of clarity, portability, and concurrency.
- Clarity: Unix’s modular design allows functions to run in a limited and specific way. Its file system is unified and hierarchical, which simplifies data processing. Unlike some of its predecessors, Unix implements hundreds (not thousands) of system calls, each of which is intended for a straightforward and clear purpose.
- Portability: By writing Unix in C, a group at Bell Labs has positioned Unix for widespread use and acceptance. C was designed to have low-level memory access, minimal runtime latency, and efficient communication between the language and machine instructions. The C framework makes Unix more flexible and easier to run on a variety of hardware.
- Concurrency: The Unix kernel is tailored for the purpose (in conjunction with the Multics project) to support multiple users and workflows. Kernel space remains distinct from Unix user space, allowing multiple applications to run concurrently.
Unix raises important questions for developers, but it also remained proprietary in its early iterations. In the next chapter of his story, how the developers worked inside and against him to create free and open source alternatives.
Open source experiments
Richard Stallman was a central figure among developers who were inspired to create non-proprietary alternatives to Unix. While working at the Artificial Intelligence Lab at MIT, he began work on the GNU Project (recursive for “GNU is not Unix!”), Eventually leaving the lab in 1984 so that he could distribute GNU components as free software. The GNU kernel, known as the GNU Hurd, has become the focus of the Free Software Foundation (FSF), founded in 1985 and now led by Stallman.
Meanwhile, another developer has developed another free Unix alternative: Finnish student Linus Torvalds. After becoming frustrated with MINIX for a license, Torvalds announced to the MINIX user group on August 25, 1991, he began developing his own operating system, which resembled MINIX. Although originally developed in MINIX with the GNU C compiler, the Linux kernel quickly became a unique project with kernel developers, releasing version 1.0 of the kernel with Torvalds in 1994.
Torvalds was the executor of GNU code, including the GNU C Compiler, with its kernel, and it remains true that many Linux distributions rely on GNU components. Stallman has lobbied to expand the term “Linux” into “GNU / Linux”, which he claims will capture both the role of the GNU Project in the development of the Linux system and the underlying ideals that the GNU Project and the Linux kernel fostered. Today “Linux” is often used to refer to the presence of the Linux kernel and GNU elements. At the same time, embedded systems on many portable devices and smartphones often use the Linux kernel with few GNU components.
Key Linux features
Although the Linux kernel inherits many goals and properties from Unix, it differs from the previous system in the following ways:
- Its main component is the kernel, which is developed independently of the other components of the operating system. This means that Linux borrows elements from various sources (eg GNU), which unifies the entire operating system.
- It’s free and open source. Support from the developer community, kernel licensed under the GNU General Public License (an offshoot of the FSF work on the GNU Project), and available for download and modification. The GPL stipulates that a derivative work must support the licensing terms of the original software.
- It has a monolithic kernel similar to Unix, but it can dynamically load and unload kernel code on demand.
- It has symmetric multiprocessing (SMP) support, unlike traditional Unix implementations. This means that a single operating system can have access to multiple processors that share main memory and access to all I / O devices.
- The kernel is preemptive, another difference from Unix. This means that the scheduler can force a switch to a driver or other part of the kernel at runtime.
- The kernel does not distinguish between threads and normal processes.
- Includes command line interface (CLI) and may also include graphical user interface (GUI).
Popular Linux distributions
Many popular Linux distributions are supported by developers today. Among the oldest is Debian, which is free and open source, which has 50,000 software packages. Debian has inspired another popular distribution, Ubuntu, funded by Canonical Ltd. Ubuntu uses the deb package format and Debian package management tools.
A similar dependency exists between Red Hat, Fedora, and CentOS. Red Hat created the 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 elements from the GNU Project. Red Hat is also affiliated with the CentOS project, another popular Linux distribution for web servers. This ratio, however, does not include billable maintenance. Debian, CentOS is maintained by the developer community.
In this article, we’ve looked at Linux’s roots in Unix and some of their characteristics. All comments can be left below in the comments.