Linux Notes
Linux Notes
Linux Notes
Linux is a Unix-like, open source and community-developed operating system (OS) for
computers, servers, mainframes, mobile devices and embedded devices. It is supported on
almost every major computer platform, including x86, ARM and SPARC, making it one of the
most widely supported operating systems.
How is the Linux operating system used?
Every version of the Linux OS manages hardware resources, launches and handles
applications, and provides some form of user interface.
For example, Linux has emerged as a popular OS for web servers such as Apache, as well as
for network operations, scientific computing tasks that require huge compute clusters,
running databases, desktop and endpoint computing, and running mobile devices with OS
versions like Android.
The Linux OS can be found in many different settings, supporting many different use cases.
Linux is used in the following ways:
• Server OS for web servers, database servers, file servers, email servers and any
other type of shared server. Designed to support high-volume and multithreading
applications, Linux is well-suited for all types of server applications.
• Desktop OS for personal productivity computing. Linux is an open source and
freely available desktop environment for users who prefer it to commercial OSes.
• Headless server OS for systems that do not require a graphical user interface (GUI)
or directly connected terminal and keyboard. Headless systems are often used for
remotely managed networking server and other devices.
• Embedded device or appliance OS for systems that require limited computing
function. Linux is used as an embedded OS for a variety of applications, including
household appliances, automotive entertainment systems and network file
system appliances.
• Network OS for routers, switches, domain name system servers, home
networking devices and more. For example, Cisco offers a version of the Cisco
Internetwork Operating System (IOS) that uses the Linux kernel.
• Software development OS for enterprise software development. Linux is home to
some of the most widely used open source software development tools. For
example, git for distributed source control; vim and emacs for source code editing;
and compilers and interpreters for almost every programming language.
• Cloud OS for cloud instances. Major cloud computing providers offer access to
cloud computing instances running Linux for cloud servers, desktops and other
services.
Linux is highly configurable and depends on a modular design that enables users to customize
their own versions of Linux. Depending on the application, Linux can be optimized for
different purposes such as:
• networking performance;
• computation performance;
• deployment on specific hardware platforms; and
• deployment on systems with limited memory, storage or computing resources.
This
chart highlights nine popular Linux distributions.
Linux components and terminology
The Linux OS system incorporates several different components, including:
• Bootloader. A bootloader is responsible for managing the boot process of the
computer and for starting the Linux kernel. It can also be used to manage systems
that boot more than one OS.
• Kernel. The core of the Linux system, the kernel handles network access,
schedules processes or applications, manages basic peripheral devices and
oversees all file system services. The Linux kernel is the software that interfaces
directly with the computer hardware.
• Init system. The first process to run once the kernel is loaded. A process is an
instance of a program running on a computer, and the init system initializes the
system to enable it to run other processes. Init is a daemon program that acts as
the parent process to all other processes running on the system. Init can be
configured to start specific processes at system initialization. For example, when
the system will be running a web server the init system can be configured to load
all necessary web server software.
• Daemons. This is a program that runs in the background, handling requests for a
service. A web server running on a Linux server depends on a daemon, usually
named httpd, to listen for web server requests.
• Desktop environment. This is the collection of applications and user interface
controls with which users interact when using Linux as a desktop platform. Access
to the desktop environment is usually controlled through the X Window System or
another graphical system. The desktop environment will also include a set of
default applications for managing files and folders, text editing, running a
command-line session and other common tasks.
The Linux kernel mediates interaction between applications and system hardware such as
CPU, memory and devices like storage or printers.
Desktop environments can also vary widely with different approaches to GUI design and
default applications. The two most popular desktop environments are:
• The GNOME desktop environment, which is included in most popular Linux
distributions, is the default desktop for many. Designed to be easy to use and
reliable, GNOME spawned other desktop environment projects, including MATE,
Cinnamon and Unity.
• The KDE desktop environment is the primary alternative to GNOME. KDE is also
designed to be easy to use and reliable. It has spawned other projects, including
the Trinity Desktop Environment.
How the Linux operating system works
The Linux OS follows a modular design that is the key to its many variations and distributions.
All Linux distributions are based on the Linux kernel, but they can differ depending on factors
such as:
• Kernel version. Distributions can be configured with more recent versions to
incorporate newer features or with older versions to be more stable.
• Kernel modules. This is software that can be loaded and unloaded into the kernel
to extend functionality without rebooting. Kernel modules are often used to
support:
o device drivers, which use code that controls how attached devices
operate;
o file system drivers, which use code that controls how the kernel works
with different file systems; and
o system calls, which use code that controls how programs request
services from the kernel.
• Configuration options. Linux kernels compiled with configuration options set to
include only device or file system drivers are used for some specialized
distributions; for example, compiling a kernel for a wireless device without any
wired network device drivers.
The Linux kernel is the one thing that all systems running Linux have in common. Linux works
by:
• Loading and booting a Linux kernel.
• Once booted, the kernel manages all system input and output. The system is
initialized, and processes can be started.
• As system processes are started, the system can be used for processes that include
network server functions, commands entered interactively via command line,
desktop applications or any application or program.
While the kernel may be almost identical -- with some divergence for configuration and
compilation differences -- the user experience can vary widely, depending on how the Linux
system is being used