What exactly is Linux?
Linux is a Unix-like operating system (OS) for PCs, servers, mainframes, mobile devices, and embedded devices that is open source and community-developed. It is one of the most widely supported operating systems, with support for almost every major computer platform, including x86, ARM, and SPARC.
What is the purpose of the Linux operating system?
Every Linux OS version manages hardware resources, runs and manages applications, and provides a user interface in some way. Because of the large development community and vast range of distributions, there is a Linux version for practically any task, and Linux has infiltrated many fields of computing.
Linux, for example, has become a popular operating system for web servers like Apache, network operations, scientific computing workloads that demand large compute clusters, running databases, desktop and endpoint computing, and running mobile devices with OS versions like Android.
The Linux operating system can be found in a variety of situations and can be used for a variety of purposes. The following are some examples of how Linux is used:
Web servers, database servers, file servers, email servers, and any other sort of shared server use this operating system. Linux is well-suited for all types of server applications because it was designed to enable high-volume and multithreading applications.
For personal productivity computing, use a desktop operating system. For people who prefer open source to commercial operating systems, Linux is a free and open source desktop environment.
For systems that do not require a graphical user interface (GUI) or a directly connected terminal and keyboard, a headless server OS is used. Remotely managed networking servers and other devices frequently use headless systems.
Embedded device or appliance operating system for systems with low computational capabilities. Household appliances, automobile entertainment systems, and network file system appliances all employ Linux as an embedded OS.
Routers, switches, domain name system servers, home networking devices, and more all use network operating systems. Cisco, for example, offers a Linux-based version of its Cisco Internetwork Operating System (IOS).
For enterprise software development, there is a software development OS. Despite the fact that many development tools have been transferred to Windows or other operating systems, Linux hosts some of the most frequently used open source software development tools. For example, git is used for distributed source control; vim and emacs are used for source code editing; and compilers and interpreters are available for practically every programming language.
For cloud instances, there is a cloud operating system. Cloud computing instances running Linux are available from major cloud computing providers for cloud servers, desktops, and other services.
Linux is highly configurable and is built on a modular architecture that allows users to create their own versions of the operating system. Linux can be optimized for a variety of purposes depending on the application, including:
Performance in networking, computation, deployment on certain hardware platforms, and deployment on systems with restricted memory, storage, or computational resources are all factors to consider.
Different Linux distributions can be used for specialized applications, or a given distribution can be adapted to include custom kernel parameters.
Distributions of Linux
Since its early development, Linux has incorporated the copyleft stipulations of the Free Software Foundation which produced the GNU GPL. According to the GPL, anything that is taken for free and modified must also be released for free. In practice, if a new version of Linux is built or changed using GNU-licensed components, the new version must be given for free. This prevents a developer or other group from benefitting unfairly from the work of others that is freely available.
Mascot of the Linux operating system Tux
Linux Tux is the mascot for the Linux operating system.
There are hundreds of different Linux versions, also referred to as distributions or distros. Typically, distributions set themselves apart from the pack by focusing on a specific aim, philosophy, function, or target market.
Servers, PCs, games, security, and embedded devices, such as Raspberry Pi systems, all have their own distributions. Most recent distributions are precompiled and ready to use, while others, such as Gentoo Linux, include source code that users can compile locally during installation to optimize their system settings. Knoppix Linux is one of many Linux distributions that can be used to repair hard disks and conduct other technical support activities. Kali Linux is used by information security professionals for penetration testing and other security-related tasks.
Linux has risen to prominence as a key component of automotive entertainment systems. Many automakers have joined the Linux Foundation’s Automotive Grade Linux (AGL) open source project. Toyota and Lexus automobiles, for example, use AGL for its infotainment systems.
Debian, Slackware, and Gentoo are examples of community-developed Linux distributions. Other commercial distributions, such as Red Hat Enterprise Linux and SUSE Linux Enterprise Server, are designed for enterprise use. Many distributions, such as Red Hat’s Fedora, SUSE’s openSUSE, and Canonical’s Ubuntu, use a mix of community and corporate development.
Linux distributions This graph shows nine of the most popular Linux distributions.
The GNU GPL does not restrict intellectual property ownership, and it is usual for Linux component creators to possess copyrights to their products. The GNU GPL guarantees that such components will remain free and open source. While the software remains free, commercial distributions frequently charge for value-added services such as support or custom development.
Linux terminology and components
The Linux operating system is made up of various components, including:
Bootloader. A bootloader is in charge of handling the computer’s boot process and launching the Linux kernel. It can also be used to manage systems that run several operating systems.
Kernel. The kernel is the heart of the Linux operating system, and it manages network connectivity, processes and applications, basic peripheral devices, and file system functions. The Linux kernel is the software that communicates with the computer’s hardware directly.
Initiation system. Once the kernel has been loaded, this is the first process to run. The init system initializes the system so that it can execute other processes. A process is an instance of a software executing on a computer. Init is a daemon program that serves as the system’s parent process for all other processes. Init can be set up to start particular processes when the system boots up. When the system is configured to run a web server, for example, the init system can be configured to load all essential web server software.
Daemons. This is a program that runs in the background and handles service requests. A daemon, commonly named httpd, is used by a web server running on a Linux system to listen for web server requests.
Server with graphical interface. This is the program that governs how graphics on a computer are displayed. Users can only interact with the Linux system through a command-line interface without a graphical server. The X Window System, usually known as X11 or X, is the most popular, but not the only, graphical server for Linux. When graphical output is necessary, applications call on X, which runs as a server daemon on the system.
This is the desktop environment. When utilizing Linux as a desktop platform, this is the collection of applications and user interface controls with which users interact. The X Window System or another graphical system is generally used to limit access to the desktop environment. The way graphical elements like windows, pull-down menus, and files are presented and operated differs depending on the desktop environment. A suite of basic programs for managing files and directories, text editing, running a command-line session, and other typical tasks will be included in the desktop environment.
Applications. This is the software that is installed both during and after the installation of Linux. Thousands of apps, both for a networked server and for desktop use, are included in most Linux variants.
Layout of the Linux kernel
The Linux kernel acts as a bridge between applications and system hardware such as the CPU, memory, and peripherals such as storage and printers.
While these components are present in most Linux distributions, they are not present in every Linux system in use. A Linux-based server, for example, may not need a graphical server, desktop environment, or apps.
However, it is the numerous outside developers and GNU projects that supply high-level features to the Linux kernel, allowing it to become a fully realized operating system. There are modules for providing a command-line interface, implementing a GUI, managing security, and providing video input or audio services, for example, all of which may be customized and optimized to create specialized distributions for specific needs.
Different approaches to GUI design and default apps can provide a wide range of desktop environments. The following are the two most common desktop environments:
Many people use the GNOME desktop environment, which is included in most common Linux distributions. GNOME spawned additional desktop environment projects such as MATE, Cinnamon, and Unity, all of which were designed to be simple to use and stable.
GNOME’s main competitor is the KDE desktop environment. KDE is also intended to be simple to use and dependable. Other projects, such as the Trinity Desktop Environment, have grown out of it.
Under the Linux operating system, package manager software commonly adds, updates, or removes software components. Users can utilize package managers to install software that isn’t included in their distributions. RPM Package Manager, dpkg, OpenPKG, and Zero Install are examples of software package managers.
What is the Linux operating system and how does it work?
The secret to the Linux OS’s various versions and distributions is its modular design. Although all Linux distributions are based on the Linux kernel, they can differ due to things like:
Version of the kernel. More modern versions can be customized to include more features, while older versions can be made to be more stable.
Kernel modules are a type of kernel. This is software that can be loaded and unloaded into the kernel without rebooting to extend functionality. Device drivers, which use code to control how attached devices operate; file system drivers, which use code to control how the kernel works with different file systems; and system calls, which use code to control how applications request services from the kernel, are all examples of kernel modules.
Optional configurations. Some customized distributions employ Linux kernels created with configuration settings configured to contain only device or file system drivers; for example, creating a kernel for a wireless device without any wired network device drivers.
The Linux kernel is the one component that all Linux-based computers share. Linux operates on the following principles:
A Linux kernel is loaded and booted.
The kernel is in charge of all system input and output once it has been booted. Processes can now be started after the system has been initialized.
As soon as system processes are initiated, the system can be utilized for network server operations, interactive command line commands, desktop programs, or any other application or program.
While the kernels are nearly identical (with slight variations due to configuration and compilation differences), the user experience varies greatly depending on how the Linux system is utilized. For example, below are a few Linux use cases with vastly different user experiences:
Software developers and other professionals may employ desktop productivity systems. Software development workstations can be tuned for speed, while administrative workers’ desktops can be tweaked to make the most of desktop productivity tools.
It’s possible that network servers don’t even have a terminal for direct access. These headless servers are controlled via a network interface or a Windows session from afar. Servers can be utilized by many people, but only authorized system administrators should have direct access to them.
Thin clients allow users to use a lightweight device to access a rich desktop environment. This includes single-card computers like the Raspberry Pi and Google Chromebooks.
When using a desktop environment as a GUI, Linux behaves similarly to any other GUI-based OS. Using a mouse or trackpad, you can open applications and other resources by clicking on icons, and you can move, copy, and delete files.
Similarly, using the Linux command line is identical to using any other current operating system command line:
The default command prompt in the Windows Subsystem for Linux is shown in this example. The prompt displays [email protected] and the complete path to the current directory, followed by the “$” symbol, from left to right.
For a Linux experience, Linux runs on the Windows Subsystem. The Windows Subsystem for Linux can be used to run Linux on a Windows 10 (or later) desktop.
The advantages and disadvantages of adopting Linux
The following are some of the benefits of using Linux:
Software that is free and open source. The GNU GPL open-source software license governs the Linux kernel. Hundreds of programs are included in practically every distro, with several possibilities in almost every area. To support their hardware, several distributions additionally incorporate proprietary software, such as device drivers given by manufacturers.
Licensing fees are incurred. Linux, unlike Microsoft Windows and Apple macOS, has no licensing fees. While many Linux providers charge for system maintenance, the OS itself is free to download and use. Switching server software from a commercial OS to Linux has resulted in cost reductions for several IT businesses.
Reliability. Linux is regarded as a dependable operating system that receives regular security updates. Linux is also considered to be stable, which means it may be used in a variety of situations. Linux also handles unusual input and mistakes when running software.
Compatibility with previous versions. Linux and other open-source software are routinely updated for security and bug fixes while maintaining basic functionality. Even if software upgrades are installed, configurations and shell scripts are likely to remain intact. Unlike commercial software providers, which release new versions of their operating systems along with new methods to operate, Linux and open source programs rarely modify their modes of operation.
There are numerous options. It is possible to optimize Linux for practically any application because to the hundreds of available distributions, thousands of apps, and nearly endless possibilities for configuring, creating, and executing Linux on almost any hardware platform.
The following are some of the downsides of using Linux:
There is no established standard. There is no standard Linux version, which is useful for optimizing Linux for specific applications but less so for deploying standardized server or desktop images. As a result of the vast range of possibilities, support may become more difficult.
Costs of support While an organization can obtain Linux for free without having to pay licensing fees, support is not. Support contracts are available from most enterprise Linux distributors, such as SUSE and Red Hat. These license fees, depending on the circumstances, can drastically diminish savings.
Software that is only available to a limited number of people. Desktop productivity software, such as Microsoft Office, is not compatible with Linux, and other proprietary software may be unavailable.
Hardware that isn’t supported. Many hardware manufacturers provide Linux device drivers for their products, but some do not.
The learning curve is steep. Many users find it difficult to understand how to utilize the Linux desktop or programs that are based on Linux.
In some circumstances, the same Linux characteristic might be advantageous or disadvantageous. For example, having a lot of customization possibilities for the Linux OS is beneficial for manufacturers looking for an embedded OS, but it’s a drawback for businesses looking for a desktop OS that can be used by a wide range of people.
While studying at the University of Helsinki in Finland, Linus Torvalds began developing Linux as a successor for the Minix operating system. Torvalds praised the work done on the GNU Project in 1983, which aimed to develop a complete, Unix-compatible operating system made completely of free software, and cited it as a distribution model. However, by the time Torvalds needed a replacement for Minix, GNU had not yet been completed, compelling him to create an alternative OS kernel termed Linux (a contraction of Linus’ Unix) and adopt the GNU GPL.
In September 1991, Linus Torvalds published the Linux kernel. GNU components were integrated with Torvalds’ kernel by a community of developers to produce Linux, a complete, free operating system. Torvalds is still working on the Linux kernel, and a large developer community is still creating and integrating new components.
While Linux continues to lag behind Windows and macOS on the desktop, it continues to pose a threat to proprietary operating system makers on servers and embedded computers.