Chapter one
What is Linux?
Linux is a Unix-like, open source and community-developed operating system (OS)
for computers, servers, mainframes, mobile devices and embedded devices.
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.
The enormous community for developers and wide range of distributions means that a
Linux version is available for almost any task, and Linux has penetrated many areas
of computing.
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. Although many
development tools have been ported to Windows or other OSes, Linux is home to
some of the most widely used open source software development tools.
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.
Users can choose different Linux distributions for specific applications or adapt a
specific distribution to incorporate custom kernel configurations.
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.
Graphical server. This is the software that controls how graphics are displayed on
a computer. Without a graphical server, users can only interact with the Linux
system through a command-line interface. The X Window System, also known as
X11 or X, is the most common graphical server for Linux, though not the only
one. X runs as a server daemon on the system and is called upon by applications
when graphical output is required.
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. Each desktop environment defines its own look,
including the way graphical elements like windows, pull-down menus and files are
displayed and manipulated. 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.
Applications. This is the software that is installed during and after the initial
Linux installation.
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. For example, some Linux use cases with widely
different user experiences include:
Desktop productivity systems, such as those used by software developers or other
professionals. Software development workstations may be optimized for
performance, while desktops for administrative professionals may be optimized for
use of desktop productivity tools.
Network servers may not even include a terminal for direct access.
These headless servers are managed remotely through network terminal or
Windows sessions. Servers may be used by many but should be directly accessed
only by authorized system admins.
Thin clients enable users to access a rich desktop environment from a lightweight
device. This includes Raspberry Pi single-card computers and Google
Chromebooks.
The pros and cons of using Linux
Some advantages of using Linux include:
Open source software. The Linux kernel is released under the GNU GPL open
source software license. Most distros include hundreds of applications, with many
options in almost every category. Many distributions also include proprietary
software, such as device drivers provided by manufacturers, to support their
hardware.
Licensing costs. Unlike Microsoft Windows or Apple macOS, Linux has no
explicit licensing fees. While system support is available for a fee from many
Linux vendors, the OS itself is free to copy and use. Some IT organizations have
increased their savings by switching their server software from a commercial OS
to Linux.
Reliability. Linux is considered a reliable OS and is well-supported with security
patches. Linux is also considered to be stable, meaning it can run in most
circumstances. Linux also copes with errors when running software and
unexpected input.
Backward compatibility. Linux and other open source software tend to be
updated frequently for security and functional patches, while retaining core
functionality. Configurations and shell scripts are likely to work unchanged even
when software updates are applied.
Many choices. Between the hundreds of available distributions, thousands of
applications and almost infinite options for configuring, compiling and running
Linux on almost any hardware platform, it is possible to optimize Linux for almost
any application.
Some disadvantages of using Linux include:
Lack of established standard. There is no standard version of Linux, which may
be good for optimizing Linux for particular applications, but less so for deploying
standardized server or desktop images. The wide range of options can complicate
support as a result.
Support costs. While an organization can acquire Linux freely without licensing
fees, support is not free. Most enterprise Linux distributors like SUSE and Red Hat
offer support contracts. Depending on the circumstances, these license fees can
reduce savings significantly.
Proprietary software. Desktop productivity software like Microsoft Office
cannot be used on Linux desktops, and other proprietary software may be
unavailable for Linux platforms.
Unsupported hardware. While many hardware manufacturers make Linux
device drivers available for their products, many do not.
Steep learning curve. Many users struggle to learn to use the Linux desktop or
Linux-based applications.
Linux Features
o Multiuser capability: Multiple users can access the same system resources
like memory, hard disk, etc. But they have to use different terminals to operate.
o Multitasking: More than one function can be performed simultaneously by
dividing the CPU time intelligently.
o Portability: Portability doesn't mean it is smaller in file size or can be carried
in pen drives or memory cards. It means that it support different types of
hardware.
o Security: It provides security in three ways namely authenticating (by
assigning password and login ID), authorization (by assigning permission to
read, write and execute) and encryption (converts file into an unreadable
format).
o Live CD/USB: Almost all Linux distros provide live CD/USB so that users can
run/try it without installing it.
o Graphical User Interface (X Window system): Linux is command line based
OS but it can be converted to GUI based by installing packages.
o Support's customized keyboard: As it is used worldwide, hence supports
different languages keyboards.
o Application support: It has its own software repository from where users can
download and install many applications.
o File System: Provides hierarchical file system in which files and directories are
arranged.
o Open Source: Linux code is freely available to all and is a community based
development project.
Why Use Linux?
Linux is completely different from other operating systems in many ways.
o It is an open source OS which gives a great advantage to the programmers as
they can design their own custom operating systems.
o It gives you a lot of option of programs having some different features so you
can choose according to your need.
o A global development community look at different ways to enhance its
security, hence it is highly secured and robust so you don't need an anti virus to
scan it regularly. Companies like Google, Amazon and Facebook use linux in
order to protect their servers as it is highly reliable and stable.
o Above all you don't have to pay for software and server licensing to install
Linux, its absolutely free and you can install it on as many computers as you
want.
o Its completely trouble free operating system and don't have an issue with
viruses, malware and slowing down your computer.
Linux Distributions List
There are on an average six hundred Linux distributors providing different
features. Here, we'll discuss about some of the popular Linux distros today.
1) Ubuntu
It came into existence in 2004 by Canonical and quickly became popular.
Canonical wants Ubuntu to be used as easy graphical Linux desktop without the
use of command line. It is the most well known Linux distribution. Ubuntu is a
next version of Debian and easy to use for newbies. It comes with a lots of pre-
installed apps and easy to use repositories libraries.
Earlier, Ubuntu uses GNOME2 desktop environment but now it has developed its
own unity desktop environment. It releases every six months and currently
working to expand to run on tablets and smartphones.
2) Linux Mint
Mint is based on Ubuntu and uses its repository software so some packages are
common in both.
Earlier it was an alternative of Ubuntu because media codecs and proprietary
software are included in mint but was absent in Ubuntu. But now it has its own
popularity and it uses cinnamon and mate desktop instead of Ubuntu's unity
desktop environment.
3) Debian
Debian has its existence since 1993 and releases its versions much slowly then
Ubuntu and mint.
This makes it one of the most stable Linux distributor.
Ubuntu is based on Debian and was founded to improve the core bits of Debian
more quickly and make it more user friendly. Every release name of Debian is
based on the name of the movie Toy Story.
4) Red Hat Enterprise / CentOS
Red hat is a commercial Linux distributor. There products are red hat enterprise
Linux (RHEL) and Fedora which are freely available. RHEL is well tested before
release and supported till seven years after the release, whereas, fedora provides
faster update and without any support.
Red hat uses trademark law to prevent their software from being redistributed.
CentOS is a community project that uses red hat enterprise Linux code but
removes all its trademark and make it freely available. In other words, it is a free
version of RHEL and provide a stable platform for a long time.
5) Fedora
It is a project that mainly focuses on free software and provides latest version of
software. It doesn't make its own desktop environment but used 'upstream'
software. By default it has GNOME3 desktop environment. It is less stable but
provides the latest stuff.
Choosing a Linux Distro
Distribution Why To Use
UBuntu It works like Mac OS and easy to use.
Linux mint It works like windows and should be use by new comers.
Debian It provides stability but not recommended to a new user.
Fedora If you want to use red hat and latest software.
Red hat To be used commercially.
enterprise
CentOS If you want to use red hat but without its trademark.
OpenSUSE It works same as Fedora but slightly older and more stable.
Arch Linux It is not for the beginners because every package has to be
installed by yourself.
Linux kernel-based OSes
o Android, the commercial operating system of Google, works on the basis of
Android OSP that executes on various devices like set-top boxes, smart TVs,
smartphones, etc.
o ChromeOS, the commercial operating system of Google, works on the basis of
ChromiumOS, which executes only on tablet computers, Chromeboxes, and
Chromebooks. Like Android, ChromeOS contains the Google Play Store and
many Google apps.
Some other distributions require specific niches, including:
o Routers: e.g., targeted by Open Wrt (the Tiny embedded router distribution)
o Internet of things: e.g., targeted by Microsoft's Azure Sphere and Ubuntu
Core
o Home theatre PCs: e.g., targeted by Mythbuntu, Kodi (formerly XBMC), and
KnoppMyth
o Specific platforms: e.g., the Raspberry Pi platform is targeted by Raspberry Pi
OS
o Education: some examples are Karoshi and Edubuntu, and server systems are
PCLinuxOS-based
o Scientific workstations and computer servers: e.g., aimed by Scientific
Linux
o Penetration testing, digital forensics, and computer security: some
examples are Parrot Security OS and Kali Linux
o Anonymity and privacy: e.g., targeted by FreedomBox, Qubes, Whonix, or
Tails
o Gaming: e.g., SteamOS
o Offline use: e.g., Endless OS