Linux has a lot of distributions to cater to different types of users. We have Ubuntu which has a full-blown graphical user interface making it perfect for desktop users and beginners to Linux, especially the ones coming from Windows and macOS. Then we have distributions like Red Hat Enterprise Linux, abbreviated as RHEL. Red Hat is a Linux distro designed for Enterprise or commercial purposes. Red Hat is usually a top choice for server environments, given its stability and regular security patches, which boost its overall security. We also have a distribution called Kali Linux. Kali Linux is a Debian-based Linux distro designed for penetration testing and conducting digital forensics. It ships with out-of-the-box tools meant for penetration testing. Kali Linux is meant for Cybersecurity experts and students who want to venture into penetration testing.
Unlike other commercial operating systems, you would notice that Linux has different flavors that often cater to specific audiences. On the other hand operating systems like macOS and Windows usually come in one solution fits all package. Windows has a different server solution, but at the end of the day, it's Windows that has been modified and contains some special programs to run on a server. The offerings are not varied and user-specific, like Linux distributions, and are all maintained by one company that is Microsoft in the case of Windows and Apple in the case of macOS.
What is an Operating System
To understand Linux, it's crucial to understand what is an operating system. By definition of it, an operating system (OS) is software that manages a computer's hardware resources. An operating system performs two distinct operations:
1. An Operating System acts as an interface between the user and the applications.
Let's understand these operations. The first operation is about allowing the user to interact with the hardware and the application on the system. Using an operating system, a user can use the input hardware, such as the keyboard and mouse, and see the output using a monitor. The user can also pass instructions to various applications, such as a web browser, and get the required output.
2. An Operating System provides an interface for applications to access hardware resources like the CPU, RAM, printer, and storage.
Secondly, the operating system provides an interface for the applications to interact with the hardware. It takes instructions from applications that need to be processed by a computer's hardware. Then, it converts these instructions to machine-readable format and sends them to the hardware to be processed and sent back to the applications.
Why Linux is a Distribution
If you have noticed, I have been calling different flavors of Linux as distributions, and referred to Windows and macOS as operating systems. Is a distribution like Ubuntu not an operating system? The answer lies in the history of Linux.
Linux is Just A Kernel
The first version of Linux was released by Linus Torvalds in the year 1991. Since its inception and first release, Linux has always been a kernel, not a full-blown operating system. Now we already understand what an operating system does, and the most crucial component of the operating system is the kernel. The kernel is responsible for interacting with bare metal or computer hardware. It converts the instructions received by applications and converts the instructions to a binary format which is understood by the hardware. Linus is a kernel and not the complete operating system. Since all the Linux distros use the Linux kernel under the hood and combine it with other operating system components, such as the shell, desktop environments, etc, they are called Linux Distributions and not the operating systems.
All the Linux distributions use the Linux kernel under the hood. Hence, they are more of a distribution with the same kernel but different implementations to provide the user with a complete operating system.
What Can You Do Next 🙏😊
If you liked the article, consider subscribing to Cloudaffle, my YouTube Channel, where I keep posting in-depth tutorials and all edutainment stuff for software developers. You can also follow me on Hashnode; my profile handle - Cloudaffle. Leave a like if you liked the article; it keeps my motivation high 👍.