2
Most read
4
Most read
16
Most read
Unit II
History of Linux
BSc. III Sem. V
Prepared by
Dr. U. S. Junghare
Department of Computer Science.
Linux OS is a type of computer operating system that is free and open-source,
distributed under the GNU General Public License (GPL) that allows users to
download, install, and modify the operating system’s source code for free. Linux
OS consists of the Linux kernel developed by Linus Torvalds and various
software developed by the open-source community. As a free and open-source
operating system, Linux OS has become popular among computer users
History of Linux:
In 1969 Unix was created at AT&T's Bell Labs by Ken Thompson, Dennis
Ritchie, and others.
In 1970 Unix was written in the C programming language, making it easier to
modify, improve, and port to different machines.
In 1983 Richard Stallman launched the GNU Project (GNU stands for "GNU's
Not Unix") with the goal of developing a free Unix-like operating system. The
idea was to create an OS that was free to use, modify, and distribute.
In 1985 The Free Software Foundation (FSF) was founded by Richard Stallman
to support the GNU Project and promote the philosophy of free software.
In 1991 Linus Torvalds created a popular open-source operating system i.e
Linux. The name Linux is a combination of his first name, Linus, and Unix, the
operating system that inspired his projects. Linus Torvalds began a project that
later became the Linux kernel.
At the time, most operating systems were proprietary and expensive. Torvalds
wanted to create an operating system that was freely available to anyone who
wanted to use the operating system, He originally released Linux as free software
under the GNU General Public License. This meant that anyone could use,
modify, and redistribute his source code.
Early versions of Linux were primarily used by technology enthusiasts and
software developers, but over time it has grown in popularity and is used in
various types of devices such as servers, smartphones, and embedded systems.
Linux is considered one of the most stable, secure and reliable operating systems
and is widely used in servers, supercomputers and enterprise environments.
Today, Linux is one of the most widely used operating systems in the world, with
an estimated 2.76% of all desktop computers and more than 90% of the world’s
top supercomputers running on Linux, and approx. 71.85% of all mobile devices
run on Android, which is, you guessed it, Linux-based. The Linux community has
expanded to include thousands of developers and users who work on the creation
and upkeep of the operating system. Nowadays Linux has many distributions
(versions) namely
1. Ubuntu
2. Fedora
3. Arch
4. Plasma
5. KDE
6. Mint
7. Manjaro
Features of Linux:
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 Shell − Linux provides a special interpreter program which can be used to execute
commands of the operating system. It can be used to do various types of operations,
call application programs. etc.
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.
Difference between Unix & Linux:
Linux is an operating system that was developed by Linus Torvalds in 1991. The
name “Linux” originates from the Linux kernel. It is an open-source software that
is completely free to use. It is used for computer hardware and software, game
development, mainframes, etc. It can run various client programs.
Unix is a portable, multi-tasking, bug-fixing, multi-user operating system
developed by AT&T. It started as a one-man venture under the initiative of Ken
Thompson of Bell Labs. It proceeded to turn out to become the most widely used
operating system. It is used in web servers, workstations, and PCs. Many
business applications are accessible on it.
Linux and Unix are both operating systems that are commonly used in enterprise
and server environments. While there are some similarities between them, there
are also some key differences.
Compariso
n
Linux Unix
Definition It is an open-source operating system
which is freely available to everyone.
It is an operating system which can
be only used by its copyrighters.
Examples It has different distros like Ubuntu,
Redhat, Fedora, etc.
IBM AIX, HP-UX and Sun Solaris.
Users Nowadays, Linux is in great demand.
Anyone can use Linux whether a home
user, developer or a student.
It was developed mainly for
servers, workstations and
mainframes.
Usage Linux is used everywhere from servers,
PC, smartphones, tablets to mainframes
and supercomputers.
It is used in servers, workstations
and PCs.
Cost Linux is freely distributed, downloaded,
and distributed through magazines also.
And priced distros of Linux are also
cheaper than Windows.
Unix copyright vendors decide
different costs for their respective
Unix Operating systems.
Development As it is open source, it is developed by
sharing and collaboration of codes by
world-wide developers.
Unix was developed by AT&T
Labs, various commercial vendors
and non-profit organizations.
Manufacturer Linux kernel is developed by the
community of developers from different
parts of the world. Although the father
of Linux, Linus Torvalds oversees
things.
Unix has three distributions IBM
AIX, HP-UX and Sun Solaris.
Apple also uses Unix to make OSX
operating system.
GUI Linux is command based but some
distros provide GUI based Linux.
Gnome and KDE are mostly used GUI.
Initially it was command based OS,
but later Common Desktop
Environment was created. Most
Unix distributions use Gnome.
Interface The default interface is BASH (Bourne
Again SHell). But some distros have
developed their own interfaces.
It originally used Bourne shell. But
is also compatible with other GUIs.
File
system
support
Linux supports more file system than
Unix.
It also supports file system but
lesser than Linux.
Coding Linux is a Unix clone, behaves like
Unix but doesn't contain its code.
Unix contain a completely different
coding developed by AT&T Labs.
Operating
system
Linux is just the kernel. Unix is a complete package of
Operating system.
Security It provides higher security. Linux has
about 60-100 viruses listed till date.
Unix is also highly secured. It has
about 85-120 viruses listed till date
Error detection
and solution
As Linux is open-source, whenever a
user post any kind of threat, developers
from all over the world start working on
it. And hence, it provides faster
solution.
In Unix, users have to wait for
some time for the problem to be
resolved.
Difference between Windows & Linux:
Linux is a derived form of Unix. It is free of cost making it available for all users. It is open-
source, means that the source code of Linux is available for all users. Users can add additional
programs or modify the existing ones so that it can perform various other functions.
 Linux uses a monolithic kernel. It runs both kernel and user services in the same address
space. It has many distributions such as Ubuntu, Linux mint, Fedora, etc.
 Linux was written in C language and assembly language. It is more machine friendly,
which means users find it difficult to interact with Linux.
 Linux has become the largest open-source software in the world. It provides high security
and is mostly used for hacking purposes.
 Some of the features of Linux include its Portability, Security, and Multitasking abilities.
Plus, Linux is open source.
Some of the drawbacks of using the Linux operating system are listed below −
 It can’t run most of the Windows programs.
 Most of the Internet service providers do not support Linux.
 Linux is difficult to learn for most of the new users. Depending on its distributions, the
difficulty level varies.
Windows Operating System
Windows is an operating system developed by Microsoft. Its first version was released in 1985
which was an extension of MS-DOS.
 Windows is not open-source. Its free version lacks some of the features that the licensed
version has.
 Windows is the most widely used operating system in PCs. It provides a GUI which is
very user-friendly. It is available in two versions, i.e., 32 bit and 64 bit. It has both client
and server versions.
 Windows uses a microkernel. Its address space is separated into kernel space and user
space. Windows is designed in such a way that people with no programming knowledge
can also use it.
 It is good for both personal and commercial use because it is very simple and easy to use.
 Windows was written in C++ and Assembly language. Windows provides less security as
compared to Linux.
 Some of the features of Windows include: Control panel, File explorer, Internet Browser,
Disk cleanup features, and a highly user-friendly Interface.
Some of the drawbacks of using the Windows operating system are listed below −
 Most of the Windows’s features are available only in the paid/licensed version.
 It provides less security.
 System requirements
 Users have to pay software fee along with the license fee.
Parameter Linux Windows
Definition Linux is an open-source operating system Windows is an operating system
developed for desktops developed for desktops
Developed
by
Linus Torvalds Microsoft
Availability Open-source and free of cost Not an open-source and it is paid
Ease of use
Linux is machine-friendly. So user must
have some exposure to Linux commands.
It takes more time for users to get used
to Linux
Windows is simple with rich GUI options.
User doesn’t need any knowledge of
programming. It is more useful for non-
technical users.
Kernel type Monolithic kernel Microkernel
Path
separator
Forward slash is used as a path separator Backward slash is used as a path separator
Security
Linux is more secure than Windows Windows is less secure compared to
Linux
Case
sensitivity
Linux is highly case-sensitive Windows is not case sensitive
Updates Linux updates less frequently Windows updates frequently
Written in
Linux is written in C and Assembly
language
Windows is written in C++ and Assembly
language
License
Linux is distributed under GPL(GNU
General Public License) license
Windows is distributed under Proprietary
commercial software license
Reliability
Linux is more reliable than windows as it
is more secured
Windows is not much reliable as Linux
File system
Linux uses tree structure to store files. In
Linux everything is considered as a file
Windows uses directories such as C, D, E
and more and folders are used to store
files
Types of
users
 Regular
 Administrative
 Service
 Administrator
 Standard
 Child
 Guest
Speed Linux is faster than windows Windows is slower compared to Linux
Command
line
Here, the command line is referred to as a
Terminal which is very useful and
perform various tasks
Windows also have a command prompt
which is not as effective as Terminal.
Users use GUI to perform their tasks
Installation
Linux installation setup is a bit
complicated but it takes less time to install
Windows is easy to setup but takes more
time to install
Components of Linux System:
Linux Operating System has primarily three components
 Kernel − Kernel is the core part of Linux. It is responsible for all major
activities of this operating system. It consists of various modules and it
interacts directly with the underlying hardware. Kernel provides the required
abstraction to hide low level hardware details to system or application
programs.
 System Library − System libraries are special functions or programs using
which application programs or system utilities accesses Kernel's features.
These libraries implement most of the functionalities of the operating
system and do not requires kernel module's code access rights.
 System Utility − System Utility programs are responsible to do specialized,
individual level tasks.
Kernel Mode vs User Mode
Kernel component code executes in a special privileged mode called kernel
mode with full access to all resources of the computer. This code represents a
single process, executes in single address space and do not require any context
switch and hence is very efficient and fast. Kernel runs each processes and
provides system services to processes, provides protected access to hardware to
processes.
Support code which is not required to run in kernel mode is in System Library.
User programs and other system programs works in User Mode which has no
access to system hardware and kernel code. User programs/ utilities use System
libraries to access Kernel functions to get system's low level tasks.
Architecture of Linux OS:
The architecture of Linux is the underlying structured layer like other operating
systems. Generally, it has four fundamental layers. Those are: application, shell,
kernel, and hardware. It is very important to understand for both the developers and
users how each layer is connected and creates the whole system. Below the image,
you can see the links between each layer.
Hardware
Hardware is the peripheral and physical components like CPU, RAM, and input and
output devices. Some components of hardware are:
 CPU: The Linux kernel mainly interacts with the CPU (Central Processing
Unit). For Linux portability, it is compatible with any other structure of CPU.
It is responsible for executing and performing instructions.
 RAM: The primary memory that is used to store the data and programs that
are accessed by the CPU. Linux kernel manages the allocation of the memory
to ensure handles all the processes.
 Input-output device: Linux mainly supports a wide range of input-output
devices with the help of a device driver that is the mediator between the
hardware layer and the kernel.
1. The input device includes the keyboard, touchpad, and other devices
that mainly help to interact with the computer.
2. Monitor, printer, and many other peripheral devices are the output
devices that mainly show the output to the users.
Kernel
The kernel is the core of the operating system and it is the foundation of other
software that works on top of it. It handles and hides all the complexity and
underlying modules of the hardware. It is the foundational layer on which another
system operates. Let’s see some of the functions of the kernel:
 Device Management: Manages all the device hardware parts including
the device drivers, input-output operation, and peripheral devices.
Manage Resources: The kernel manages the processes of the CPU and all
the
peripheral devices and acts as the bridge between the resources and
processes.
 Memory Management: Kernel mainly manages memory and provides
some benefits
 System calls: For managing the file operation, memory control, and
process control kernel receives system calls to perform requested services.
Preformation optimization: Balancing all the resources with the memory,
optimizes the system performance and boosts the system efficiency. It also
schedules the task according to the level of priority.
Types of Kernels in OS Architecture
1. Monolithic
2. Microkernel
3. Hybrid
4. Nano kernel
5. Exo kernel
Linux includes a monolithic kernel which makes this OS the most stable and fast.
Shell
Shell is the interface that interacts with humans and processes the commands that are
given for the execution. One can call it an interpreter because it takes the command
from the keyboard and makes it understandable to the kernel. The shell starts when
one starts the terminal.
Shells are categorized into two sections:
1. Command Line Shell
The command line Interface is the user interface where the user types commands in a
text form. When the user provides the command in the terminal, the shell interprets
the commands for the kernel. The shell also has some built-in commands that help the
user to navigate, manage, and change the file system.
Types of Command-Line Shell
 Bourne Shell: One of the earliest Unix shells that provides a simple and
efficient command-line interface.
 Bourne Again Shell (Bash): It’s an extension of the original Bourne Shell
and includes additional features, such as command history and job control.
CSH (C Shell): Introduced C-like syntax for command scripting.
 KSH (Korn Shell): It combines features of the Bourne Shell, C Shell,
and Bash, providing a powerful and versatile environment.
ZSH (Z Shell): It is highly customizable and user-friendly.
2. Graphical User Shell
The graphical user shell is the user interface using the system’s peripheral components
like a mouse, and keyboard. It is beneficial for users who are not familiar with
commands. These shells are used to make the desktop environment easier.
Types of Graphical Shell
 GNOME: GNU Network Object Model Environment (GNOME) is known
for its simplicity, modern design, and user-friendliness.
 KDE Plasma: K Desktop Environment (KDE) is known for its feature-rich
and highly customizable interface.
 Cinnamon: Developed by the Linux Mint team and offers a traditional
desktop environment focusing on user-friendliness.
Applications
Applications are the programs that the user runs on top of the architecture. The
applications are the user space element that includes database applications, media
players, web browsers, and presentations.
System Utilities and Libraries
The system utilities and libraries provide a wide range of functions to manage the
system. Low-level hardware complexity to high-level user support is served by the
system utilities and libraries.
System Utilities: It is the program that performs the task which is given by the
users and manages the system.
Linux Distributions:
Other operating systems like Microsoft combine each bit of codes internally and
release it as a single package. But Linux is different from them. Different parts of
Linux are developed by different organizations. Different parts include kernel,
shell utilities, X server, system environment, graphical programs, etc.
A Linux distribution (also called as distros) is an OS made through a software
collection that contains the Linux kernel and a package management system
often.
A complete Linux system package called a distribution. Many Linux distributions
are available to meet just about any computing requirement you could have. Most
distributions are customized for a specific user group, such as business users.
Multimedia enthusiasts, software developers, or average home users. Each
customized distribution includes the software packages required to support
specialized functions, such as audio and video editing software for multimedia
enthusiasts, or compilers and integrated development environment for software
developers.
The different Linux distributions are often divided into three categories:
 Full core Linux distributions
 Specialized Linux distributions
 LiveCD test distributions
The following sections describe these different types of Linux distributions and
show some examples of Linux distributions in each category.
Core Linux Distributions
A core Linux distribution contains a kernel, one or more graphical desktop
environments, and just about every Linux application that is available,
recompiled for the kernel. It provides one-stop shopping for a complete Linux
installation.
However, beginners still run into problems when they install one of the core
Linux distributions. To cover just about any situation in which someone might
want to use Linux, a single distribution must include lots of application software.
They include everything from high-end Internet database servers to common
games. Because of the number of applications available for Linux, a complete
distribution often takes four or more CDs.
Examples:
 Slackware – One of the original Linux distribution sets, popular with
Linux geek.
 Debian – Popular with Linux experts and commercial Linux products.
Specialized Linux Distributions
A new subgroup of Linux distributions has started to appear. These are typically
based on one of the main distributions but contain only a subset of applications
that would make sense for a specific area of use. In addition to providing
specialized software (such as only office products for business users), customized
Linux distributions also attempt to help to begin Linux users by auto-detecting
and auto-configuring common hardware devices. This makes installing Linux a
much more enjoyable process.
That’s just a small sampling of specialized Linux distributions. These are
literally hundreds of specialized Linux distributions, and more are popping up all
the time on the internet. No matter what your specialty, you’ll probably find a
Linux distribution made for you. Many of the specialized Linux distributions are
based on the Debian Linux distribution. They use the same installation files as
Debian but package only a small fraction of a full-blown Debian system.
Examples :
 CentOS – A free distribution built from the Red Hat Enterprise Linux
source code
 Mint – A free distribution for home entertainment use
The Linux LiveCD
A relatively new phenomenon in the Linux world is the bootable Linux CD
distribution. This lets you see what a Linux system is like without actually
installing it. Most modern PCs can boot from a CD instead of the standard hard
drive. To take advantage of this some Linux distributions create a bootable CD
that contains a sample Linux system (called a Linux Live CD). Because of the
limitations of the single CD size, the sample can’t contain a complete Linux
system, but you’d be surprised at all the software they can cram in there. The
result is anything on your hard drive.
Trends and types
Linux distributions might be:
 Non-commercial or commercial
 Developed for home users, power users, or enterprise users
 Supported on two or more types of platform or hardware-specific, even to the
certification extension via platform vendor
 Developed for embedded, desktop, or server devices
 Highly specialized or general purpose toward particular machine functionalities (e.g.,
computer clusters, network routers, and firewalls)
 Targeted at particular user groups, e.g., by language internationalization and
localization or by including several scientific computing and music production
packages
 Primarily, built for comprehensiveness, portability, usability, or security
Rolling release or standard release
The Linux distribution diversity is because of the technical, philosophical, and organizational
variation among users and vendors.
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.
Structure of Linux File System:
Linux file system has a hierarchal file structure as it contains a root directory and its
subdirectories. All other directories can be accessed from the root directory. A partition
usually has only one file system, but it may have more than one file system.
A file system is designed in a way so that it can manage and provide space for non-volatile
storage data. All file systems required a namespace that is a naming and organizational
methodology. The namespace defines the naming process, length of the file name, or a subset
of characters that can be used for the file name. It also defines the logical structure of files on
a memory segment, such as the use of directories for organizing the specific files. Once a
namespace is described, a Metadata description must be defined for that particular file.
The data structure needs to support a hierarchical directory structure; this structure is used to
describe the available and used disk space for a particular block. It also has the other details
about the files such as file size, date & time of creation, update, and last modified.
Also, it stores advanced information about the section of the disk, such as partitions and
volumes.
The advanced data and the structures that it represents contain the information about the file
system stored on the drive; it is distinct and independent of the file system metadata.
Linux file system contains two-part file system software implementation architecture.
Consider the below image:
The file system requires an API (Application programming interface) to access the function
calls to interact with file system components like files and directories. API facilitates tasks
such as creating, deleting, and copying the files. It facilitates an algorithm that defines the
arrangement of files on a file system.
The first two parts of the given file system together called a Linux virtual file system. It
provides a single set of commands for the kernel and developers to access the file system.
This virtual file system requires the specific system driver to give an interface to the file
system.
Directory Structure
The directories help us to store the files and locate them when we need them. Also,
directories are called folders as they can be assumed of as folders where files reside in the
form of a physical desktop analogy. Directories can be organized in a tree-like hierarchy in
Linux and several other operating systems.
The directory structure of Linux is well-documented and defined in the Linux FHS
(Filesystem Hierarchy Standard). Referencing those directories if accessing them is achieved
via the sequentially deeper names of the directory linked by '/' forward slash like
/var/spool/mail and /var/log. These are known as paths.
Following is a very short standard, defined, and well-known top-level Linux directory list and
their purposes:
o / (root filesystem): It is the top-level filesystem directory. It must include every file needed to
boot the Linux system before another filesystem is mounted. Every other filesystem is
mounted on a well-defined and standard mount point because of the root filesystem
directories after the system is started.
o /boot: It includes the static kernel and bootloader configuration and executable files needed to
start a Linux computer.
o /bin: This directory includes user executable files.
o /dev: It includes the device file for all hardware devices connected to the system. These aren't
device drivers; instead, they are files that indicate all devices on the system and provide
access to these devices.
o /etc: It includes the local system configuration files for the host system.
o /lib: It includes shared library files that are needed to start the system.
o /home: The home directory storage is available for user files. All users have a subdirectory
inside /home.
o /mnt: It is a temporary mount point for basic filesystems that can be used at the time
when the administrator is working or repairing a filesystem.
o /media: A place for mounting external removable media devices like USB thumb drives that
might be linked to the host.
o /opt: It contains optional files like vendor supplied application programs that must be placed
here.
o /root: It's the home directory for a root user. Keep in mind that it's not the '/' (root) file
system.
o /tmp: It is a temporary directory used by the OS and several programs for storing temporary
files. Also, users may temporarily store files here. Remember that files may be removed
without prior notice at any time in this directory.
o /sbin: These are system binary files. They are executables utilized for system administration.
o /usr: They are read-only and shareable files, including executable libraries and binaries, man
files, and several documentation types.
o /var: Here, variable data files are saved. It can contain things such as MySQL, log files, other
database files, email inboxes, web server data files, and much more.
Linux File System Features
In Linux, the file system creates a tree structure. All the files are arranged as a tree and its
branches. The topmost directory called the root (/) directory. All other directories in Linux
can be accessed from the root directory.
Some key features of Linux file system are as following:
o Specifying paths: Linux does not use the backslash () to separate the components; it uses
forward slash (/) as an alternative. For example, as in Windows, the data may be stored in C:
My Documents Work, whereas, in Linux, it would be stored in /home/ My Document/ Work.
o Partition, Directories, and Drives: Linux does not use drive letters to organize the drive as
Windows does. In Linux, we cannot tell whether we are addressing a partition, a network
device, or an "ordinary" directory and a Drive.
o Case Sensitivity: Linux file system is case sensitive. It distinguishes between lowercase and
uppercase file names. Such as, there is a difference between test.txt and Test.txt in Linux. This
rule is also applied for directories and Linux commands.
o File Extensions: In Linux, a file may have the extension '.txt,' but it is not necessary that
a file should have a file extension. While working with Shell, it creates some problems for
the
beginners to differentiate between files and directories. If we use the graphical file manager, it
symbolizes the files and folders.
o Hidden files: Linux distinguishes between standard files and hidden files, mostly the
configuration files are hidden in Linux OS. Usually, we don't need to access or read the
hidden files. The hidden files in Linux are represented by a dot (.) before the file name (e.g.,
.ignore). To access the files, we need to change the view in the file manager or need to use a
specific command in the shell.
Types of Linux File Systems:
When we install the Linux operating system, Linux offers many file systems such as Ext,
Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs, and swap.
1. Ext, Ext2, Ext3 and Ext4 file system
The file system Ext stands for Extended File System. It was primarily developed for MINIX
OS. The Ext file system is an older version, and is no longer used due to some limitations.
Ext2 is the first Linux file system that allows managing two terabytes of data. Ext3 is
developed through Ext2; it is an upgraded version of Ext2 and contains backward
compatibility. The major drawback of Ext3 is that it does not support servers because this file
system does not support file recovery and disk snapshot.
xt4 file system is the faster file system among all the Ext file systems. It is a very compatible
option for the SSD (solid-state drive) disks, and it is the default file system in Linux
distribution.
2. JFS File System
JFS stands for Journaled File System, and it is developed by IBM for AIX Unix. It is an
alternative to the Ext file system. It can also be used in place of Ext4, where stability is
needed with few resources. It is a handy file system when CPU power is limited.
3. ReiserFS File System
ReiserFS is an alternative to the Ext3 file system. It has improved performance and advanced
features. In the earlier time, the ReiserFS was used as the default file system in SUSE Linux,
but later it has changed some policies, so SUSE returned to Ext3. This file system
dynamically supports the file extension, but it has some drawbacks in performance.
4. XFS File System
XFS file system was considered as high-speed JFS, which is developed for parallel I/O
processing. NASA still using this file system with its high storage server (300+ Terabyte
server).
5. Btrfs File System
Btrfs stands for the B tree file system. It is used for fault tolerance, repair system, fun
administration, extensive storage configuration, and more. It is not a good suit for the
production system.
6. Swap File System
The swap file system is used for memory paging in Linux operating system during the system
hibernation. A system that never goes in hibernate state is required to have swap space equal
to its RAM size.

More Related Content

PPT
How ubuntu works???
PDF
History of linux
PPTX
Linux Presentation
PPTX
Introduction to linux ppt
PPT
Case study linux
PPTX
Linux ppt
PDF
Linux vs Windows | Edureka
PPTX
A History of Linux
How ubuntu works???
History of linux
Linux Presentation
Introduction to linux ppt
Case study linux
Linux ppt
Linux vs Windows | Edureka
A History of Linux

What's hot (20)

PPTX
what is LINUX ? presentation.
ODP
What is Ubuntu - presentation
PPT
Linux
PPTX
Linux Operating System
PPT
Red hat linux 9 ppt2003
PPT
Introduction and history of linux
PPT
Red Hat Certified engineer course
PDF
Linux OS presentation
DOC
History Of Mac O S
PDF
An Introduction To Linux
PPT
PPTX
Ch18-Software Engineering 9
PPT
Linux seminar
PDF
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
PPTX
Fedora os presentation
PPTX
History of Linux.pptx
PPT
Common linux ubuntu commands overview
PPT
Linux basics
PDF
Course 101: Lecture 5: Linux & GNU
PDF
Unix++: Plan 9 from Bell Labs
what is LINUX ? presentation.
What is Ubuntu - presentation
Linux
Linux Operating System
Red hat linux 9 ppt2003
Introduction and history of linux
Red Hat Certified engineer course
Linux OS presentation
History Of Mac O S
An Introduction To Linux
Ch18-Software Engineering 9
Linux seminar
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Fedora os presentation
History of Linux.pptx
Common linux ubuntu commands overview
Linux basics
Course 101: Lecture 5: Linux & GNU
Unix++: Plan 9 from Bell Labs
Ad

Similar to Unit 2 History of Linux and other details for begginers (20)

PPT
Difference between Unix & Linux Presentation.ppt
PDF
Linux programming lecture_notes
PPTX
3. LINUXyhfgfgfgfdgfdfdgfdfggdgrdrr.pptx
PPTX
Unit 1LectureNotice_by_lecturer_Fatuma_Msuya_UAUT.pptx
PPT
01 linux history overview
PPTX
Linux operating system
PPTX
Operating systems linux
PPTX
linux operating system.pptx
PPTX
VISHWA PPT.pptxdgkdagkjgjhhhggcugguggiiu
DOCX
Linux Introduction
PPTX
1 Intro, Linux system Architecture, Features, File system Structure and appli...
PDF
Basic Linux: A comprehensive guide to Linux OS
PPTX
OPERATING SYSTEM.pptxmlkjjjjjnnnnnhfdsss
PPTX
Overview_Linux ppt
 
PPT
Chapter 8 - nsa Introduction to Linux.ppt
PPT
Linux [2005]
PPTX
Linux final
PPTX
introduction to Linux
PPTX
Basics you should know about UNIX and LINUX
PPTX
Linuxppt.pptx
Difference between Unix & Linux Presentation.ppt
Linux programming lecture_notes
3. LINUXyhfgfgfgfdgfdfdgfdfggdgrdrr.pptx
Unit 1LectureNotice_by_lecturer_Fatuma_Msuya_UAUT.pptx
01 linux history overview
Linux operating system
Operating systems linux
linux operating system.pptx
VISHWA PPT.pptxdgkdagkjgjhhhggcugguggiiu
Linux Introduction
1 Intro, Linux system Architecture, Features, File system Structure and appli...
Basic Linux: A comprehensive guide to Linux OS
OPERATING SYSTEM.pptxmlkjjjjjnnnnnhfdsss
Overview_Linux ppt
 
Chapter 8 - nsa Introduction to Linux.ppt
Linux [2005]
Linux final
introduction to Linux
Basics you should know about UNIX and LINUX
Linuxppt.pptx
Ad

More from Ujwala Junghare (7)

PPT
Combo box and List box in VB.Net.ppt
PPTX
Unit IV Array in VB.Net.pptx
PPTX
Unit I Networking.pptx
PDF
Unit -II Introduction to visual programming.pdf
PDF
Unit I- Introduction to .NET Framework.pdf
PPTX
BSc. III Unit iii VB.NET
PDF
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET
Combo box and List box in VB.Net.ppt
Unit IV Array in VB.Net.pptx
Unit I Networking.pptx
Unit -II Introduction to visual programming.pdf
Unit I- Introduction to .NET Framework.pdf
BSc. III Unit iii VB.NET
Unit IV-Checkboxes and Radio Buttons in VB.Net in VB.NET

Recently uploaded (20)

PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
PDF
International_Financial_Reporting_Standa.pdf
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PDF
HVAC Specification 2024 according to central public works department
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PPTX
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
PDF
IGGE1 Understanding the Self1234567891011
PDF
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
Complications of Minimal Access-Surgery.pdf
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
Environmental Education MCQ BD2EE - Share Source.pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PPTX
TNA_Presentation-1-Final(SAVE)) (1).pptx
FORM 1 BIOLOGY MIND MAPS and their schemes
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
AI-driven educational solutions for real-life interventions in the Philippine...
LDMMIA Reiki Yoga Finals Review Spring Summer
International_Financial_Reporting_Standa.pdf
Paper A Mock Exam 9_ Attempt review.pdf.
202450812 BayCHI UCSC-SV 20250812 v17.pptx
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
HVAC Specification 2024 according to central public works department
Chinmaya Tiranga quiz Grand Finale.pdf
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
IGGE1 Understanding the Self1234567891011
David L Page_DCI Research Study Journey_how Methodology can inform one's prac...
History, Philosophy and sociology of education (1).pptx
Complications of Minimal Access-Surgery.pdf
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
Environmental Education MCQ BD2EE - Share Source.pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
TNA_Presentation-1-Final(SAVE)) (1).pptx

Unit 2 History of Linux and other details for begginers

  • 1. Unit II History of Linux BSc. III Sem. V Prepared by Dr. U. S. Junghare Department of Computer Science.
  • 2. Linux OS is a type of computer operating system that is free and open-source, distributed under the GNU General Public License (GPL) that allows users to download, install, and modify the operating system’s source code for free. Linux OS consists of the Linux kernel developed by Linus Torvalds and various software developed by the open-source community. As a free and open-source operating system, Linux OS has become popular among computer users History of Linux: In 1969 Unix was created at AT&T's Bell Labs by Ken Thompson, Dennis Ritchie, and others. In 1970 Unix was written in the C programming language, making it easier to modify, improve, and port to different machines. In 1983 Richard Stallman launched the GNU Project (GNU stands for "GNU's Not Unix") with the goal of developing a free Unix-like operating system. The idea was to create an OS that was free to use, modify, and distribute. In 1985 The Free Software Foundation (FSF) was founded by Richard Stallman to support the GNU Project and promote the philosophy of free software. In 1991 Linus Torvalds created a popular open-source operating system i.e Linux. The name Linux is a combination of his first name, Linus, and Unix, the operating system that inspired his projects. Linus Torvalds began a project that later became the Linux kernel. At the time, most operating systems were proprietary and expensive. Torvalds wanted to create an operating system that was freely available to anyone who wanted to use the operating system, He originally released Linux as free software under the GNU General Public License. This meant that anyone could use, modify, and redistribute his source code. Early versions of Linux were primarily used by technology enthusiasts and software developers, but over time it has grown in popularity and is used in various types of devices such as servers, smartphones, and embedded systems. Linux is considered one of the most stable, secure and reliable operating systems and is widely used in servers, supercomputers and enterprise environments.
  • 3. Today, Linux is one of the most widely used operating systems in the world, with an estimated 2.76% of all desktop computers and more than 90% of the world’s top supercomputers running on Linux, and approx. 71.85% of all mobile devices run on Android, which is, you guessed it, Linux-based. The Linux community has expanded to include thousands of developers and users who work on the creation and upkeep of the operating system. Nowadays Linux has many distributions (versions) namely 1. Ubuntu 2. Fedora 3. Arch 4. Plasma 5. KDE 6. Mint 7. Manjaro Features of Linux: 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 Shell − Linux provides a special interpreter program which can be used to execute commands of the operating system. It can be used to do various types of operations, call application programs. etc. o File System: Provides hierarchical file system in which files and directories are arranged.
  • 4. o Open Source: Linux code is freely available to all and is a community-based development project. Difference between Unix & Linux: Linux is an operating system that was developed by Linus Torvalds in 1991. The name “Linux” originates from the Linux kernel. It is an open-source software that is completely free to use. It is used for computer hardware and software, game development, mainframes, etc. It can run various client programs. Unix is a portable, multi-tasking, bug-fixing, multi-user operating system developed by AT&T. It started as a one-man venture under the initiative of Ken Thompson of Bell Labs. It proceeded to turn out to become the most widely used operating system. It is used in web servers, workstations, and PCs. Many business applications are accessible on it. Linux and Unix are both operating systems that are commonly used in enterprise and server environments. While there are some similarities between them, there are also some key differences. Compariso n Linux Unix Definition It is an open-source operating system which is freely available to everyone. It is an operating system which can be only used by its copyrighters. Examples It has different distros like Ubuntu, Redhat, Fedora, etc. IBM AIX, HP-UX and Sun Solaris. Users Nowadays, Linux is in great demand. Anyone can use Linux whether a home user, developer or a student. It was developed mainly for servers, workstations and mainframes. Usage Linux is used everywhere from servers, PC, smartphones, tablets to mainframes and supercomputers. It is used in servers, workstations and PCs. Cost Linux is freely distributed, downloaded, and distributed through magazines also. And priced distros of Linux are also cheaper than Windows. Unix copyright vendors decide different costs for their respective Unix Operating systems. Development As it is open source, it is developed by sharing and collaboration of codes by world-wide developers. Unix was developed by AT&T Labs, various commercial vendors and non-profit organizations.
  • 5. Manufacturer Linux kernel is developed by the community of developers from different parts of the world. Although the father of Linux, Linus Torvalds oversees things. Unix has three distributions IBM AIX, HP-UX and Sun Solaris. Apple also uses Unix to make OSX operating system. GUI Linux is command based but some distros provide GUI based Linux. Gnome and KDE are mostly used GUI. Initially it was command based OS, but later Common Desktop Environment was created. Most Unix distributions use Gnome. Interface The default interface is BASH (Bourne Again SHell). But some distros have developed their own interfaces. It originally used Bourne shell. But is also compatible with other GUIs. File system support Linux supports more file system than Unix. It also supports file system but lesser than Linux. Coding Linux is a Unix clone, behaves like Unix but doesn't contain its code. Unix contain a completely different coding developed by AT&T Labs. Operating system Linux is just the kernel. Unix is a complete package of Operating system. Security It provides higher security. Linux has about 60-100 viruses listed till date. Unix is also highly secured. It has about 85-120 viruses listed till date Error detection and solution As Linux is open-source, whenever a user post any kind of threat, developers from all over the world start working on it. And hence, it provides faster solution. In Unix, users have to wait for some time for the problem to be resolved. Difference between Windows & Linux: Linux is a derived form of Unix. It is free of cost making it available for all users. It is open- source, means that the source code of Linux is available for all users. Users can add additional programs or modify the existing ones so that it can perform various other functions.  Linux uses a monolithic kernel. It runs both kernel and user services in the same address space. It has many distributions such as Ubuntu, Linux mint, Fedora, etc.  Linux was written in C language and assembly language. It is more machine friendly, which means users find it difficult to interact with Linux.  Linux has become the largest open-source software in the world. It provides high security and is mostly used for hacking purposes.
  • 6.  Some of the features of Linux include its Portability, Security, and Multitasking abilities. Plus, Linux is open source. Some of the drawbacks of using the Linux operating system are listed below −  It can’t run most of the Windows programs.  Most of the Internet service providers do not support Linux.  Linux is difficult to learn for most of the new users. Depending on its distributions, the difficulty level varies. Windows Operating System Windows is an operating system developed by Microsoft. Its first version was released in 1985 which was an extension of MS-DOS.  Windows is not open-source. Its free version lacks some of the features that the licensed version has.  Windows is the most widely used operating system in PCs. It provides a GUI which is very user-friendly. It is available in two versions, i.e., 32 bit and 64 bit. It has both client and server versions.  Windows uses a microkernel. Its address space is separated into kernel space and user space. Windows is designed in such a way that people with no programming knowledge can also use it.  It is good for both personal and commercial use because it is very simple and easy to use.  Windows was written in C++ and Assembly language. Windows provides less security as compared to Linux.  Some of the features of Windows include: Control panel, File explorer, Internet Browser, Disk cleanup features, and a highly user-friendly Interface. Some of the drawbacks of using the Windows operating system are listed below −  Most of the Windows’s features are available only in the paid/licensed version.  It provides less security.  System requirements  Users have to pay software fee along with the license fee. Parameter Linux Windows Definition Linux is an open-source operating system Windows is an operating system
  • 7. developed for desktops developed for desktops Developed by Linus Torvalds Microsoft Availability Open-source and free of cost Not an open-source and it is paid Ease of use Linux is machine-friendly. So user must have some exposure to Linux commands. It takes more time for users to get used to Linux Windows is simple with rich GUI options. User doesn’t need any knowledge of programming. It is more useful for non- technical users. Kernel type Monolithic kernel Microkernel Path separator Forward slash is used as a path separator Backward slash is used as a path separator Security Linux is more secure than Windows Windows is less secure compared to Linux Case sensitivity Linux is highly case-sensitive Windows is not case sensitive Updates Linux updates less frequently Windows updates frequently Written in Linux is written in C and Assembly language Windows is written in C++ and Assembly language License Linux is distributed under GPL(GNU General Public License) license Windows is distributed under Proprietary commercial software license Reliability Linux is more reliable than windows as it is more secured Windows is not much reliable as Linux File system Linux uses tree structure to store files. In Linux everything is considered as a file Windows uses directories such as C, D, E and more and folders are used to store files Types of users  Regular  Administrative  Service  Administrator  Standard  Child  Guest
  • 8. Speed Linux is faster than windows Windows is slower compared to Linux Command line Here, the command line is referred to as a Terminal which is very useful and perform various tasks Windows also have a command prompt which is not as effective as Terminal. Users use GUI to perform their tasks Installation Linux installation setup is a bit complicated but it takes less time to install Windows is easy to setup but takes more time to install Components of Linux System: Linux Operating System has primarily three components  Kernel − Kernel is the core part of Linux. It is responsible for all major activities of this operating system. It consists of various modules and it interacts directly with the underlying hardware. Kernel provides the required abstraction to hide low level hardware details to system or application programs.  System Library − System libraries are special functions or programs using which application programs or system utilities accesses Kernel's features. These libraries implement most of the functionalities of the operating system and do not requires kernel module's code access rights.  System Utility − System Utility programs are responsible to do specialized, individual level tasks. Kernel Mode vs User Mode
  • 9. Kernel component code executes in a special privileged mode called kernel mode with full access to all resources of the computer. This code represents a single process, executes in single address space and do not require any context switch and hence is very efficient and fast. Kernel runs each processes and provides system services to processes, provides protected access to hardware to processes. Support code which is not required to run in kernel mode is in System Library. User programs and other system programs works in User Mode which has no access to system hardware and kernel code. User programs/ utilities use System libraries to access Kernel functions to get system's low level tasks. Architecture of Linux OS: The architecture of Linux is the underlying structured layer like other operating systems. Generally, it has four fundamental layers. Those are: application, shell, kernel, and hardware. It is very important to understand for both the developers and users how each layer is connected and creates the whole system. Below the image, you can see the links between each layer. Hardware Hardware is the peripheral and physical components like CPU, RAM, and input and output devices. Some components of hardware are:  CPU: The Linux kernel mainly interacts with the CPU (Central Processing Unit). For Linux portability, it is compatible with any other structure of CPU. It is responsible for executing and performing instructions.  RAM: The primary memory that is used to store the data and programs that are accessed by the CPU. Linux kernel manages the allocation of the memory to ensure handles all the processes.
  • 10.  Input-output device: Linux mainly supports a wide range of input-output devices with the help of a device driver that is the mediator between the hardware layer and the kernel. 1. The input device includes the keyboard, touchpad, and other devices that mainly help to interact with the computer. 2. Monitor, printer, and many other peripheral devices are the output devices that mainly show the output to the users. Kernel The kernel is the core of the operating system and it is the foundation of other software that works on top of it. It handles and hides all the complexity and underlying modules of the hardware. It is the foundational layer on which another system operates. Let’s see some of the functions of the kernel:  Device Management: Manages all the device hardware parts including the device drivers, input-output operation, and peripheral devices. Manage Resources: The kernel manages the processes of the CPU and all the peripheral devices and acts as the bridge between the resources and processes.  Memory Management: Kernel mainly manages memory and provides some benefits  System calls: For managing the file operation, memory control, and process control kernel receives system calls to perform requested services. Preformation optimization: Balancing all the resources with the memory, optimizes the system performance and boosts the system efficiency. It also schedules the task according to the level of priority. Types of Kernels in OS Architecture 1. Monolithic 2. Microkernel 3. Hybrid 4. Nano kernel 5. Exo kernel Linux includes a monolithic kernel which makes this OS the most stable and fast. Shell Shell is the interface that interacts with humans and processes the commands that are given for the execution. One can call it an interpreter because it takes the command from the keyboard and makes it understandable to the kernel. The shell starts when one starts the terminal. Shells are categorized into two sections:
  • 11. 1. Command Line Shell The command line Interface is the user interface where the user types commands in a text form. When the user provides the command in the terminal, the shell interprets the commands for the kernel. The shell also has some built-in commands that help the user to navigate, manage, and change the file system. Types of Command-Line Shell  Bourne Shell: One of the earliest Unix shells that provides a simple and efficient command-line interface.  Bourne Again Shell (Bash): It’s an extension of the original Bourne Shell and includes additional features, such as command history and job control. CSH (C Shell): Introduced C-like syntax for command scripting.  KSH (Korn Shell): It combines features of the Bourne Shell, C Shell, and Bash, providing a powerful and versatile environment. ZSH (Z Shell): It is highly customizable and user-friendly. 2. Graphical User Shell The graphical user shell is the user interface using the system’s peripheral components like a mouse, and keyboard. It is beneficial for users who are not familiar with commands. These shells are used to make the desktop environment easier. Types of Graphical Shell  GNOME: GNU Network Object Model Environment (GNOME) is known for its simplicity, modern design, and user-friendliness.  KDE Plasma: K Desktop Environment (KDE) is known for its feature-rich and highly customizable interface.  Cinnamon: Developed by the Linux Mint team and offers a traditional desktop environment focusing on user-friendliness. Applications Applications are the programs that the user runs on top of the architecture. The applications are the user space element that includes database applications, media players, web browsers, and presentations. System Utilities and Libraries The system utilities and libraries provide a wide range of functions to manage the system. Low-level hardware complexity to high-level user support is served by the system utilities and libraries.
  • 12. System Utilities: It is the program that performs the task which is given by the users and manages the system. Linux Distributions: Other operating systems like Microsoft combine each bit of codes internally and release it as a single package. But Linux is different from them. Different parts of Linux are developed by different organizations. Different parts include kernel, shell utilities, X server, system environment, graphical programs, etc. A Linux distribution (also called as distros) is an OS made through a software collection that contains the Linux kernel and a package management system often. A complete Linux system package called a distribution. Many Linux distributions are available to meet just about any computing requirement you could have. Most distributions are customized for a specific user group, such as business users. Multimedia enthusiasts, software developers, or average home users. Each customized distribution includes the software packages required to support specialized functions, such as audio and video editing software for multimedia enthusiasts, or compilers and integrated development environment for software developers. The different Linux distributions are often divided into three categories:  Full core Linux distributions  Specialized Linux distributions  LiveCD test distributions The following sections describe these different types of Linux distributions and show some examples of Linux distributions in each category. Core Linux Distributions A core Linux distribution contains a kernel, one or more graphical desktop environments, and just about every Linux application that is available, recompiled for the kernel. It provides one-stop shopping for a complete Linux installation. However, beginners still run into problems when they install one of the core Linux distributions. To cover just about any situation in which someone might want to use Linux, a single distribution must include lots of application software. They include everything from high-end Internet database servers to common games. Because of the number of applications available for Linux, a complete distribution often takes four or more CDs. Examples:  Slackware – One of the original Linux distribution sets, popular with Linux geek.  Debian – Popular with Linux experts and commercial Linux products.
  • 13. Specialized Linux Distributions A new subgroup of Linux distributions has started to appear. These are typically based on one of the main distributions but contain only a subset of applications that would make sense for a specific area of use. In addition to providing specialized software (such as only office products for business users), customized Linux distributions also attempt to help to begin Linux users by auto-detecting and auto-configuring common hardware devices. This makes installing Linux a much more enjoyable process. That’s just a small sampling of specialized Linux distributions. These are literally hundreds of specialized Linux distributions, and more are popping up all the time on the internet. No matter what your specialty, you’ll probably find a Linux distribution made for you. Many of the specialized Linux distributions are based on the Debian Linux distribution. They use the same installation files as Debian but package only a small fraction of a full-blown Debian system. Examples :  CentOS – A free distribution built from the Red Hat Enterprise Linux source code  Mint – A free distribution for home entertainment use The Linux LiveCD A relatively new phenomenon in the Linux world is the bootable Linux CD distribution. This lets you see what a Linux system is like without actually installing it. Most modern PCs can boot from a CD instead of the standard hard drive. To take advantage of this some Linux distributions create a bootable CD that contains a sample Linux system (called a Linux Live CD). Because of the limitations of the single CD size, the sample can’t contain a complete Linux system, but you’d be surprised at all the software they can cram in there. The result is anything on your hard drive. Trends and types Linux distributions might be:  Non-commercial or commercial  Developed for home users, power users, or enterprise users  Supported on two or more types of platform or hardware-specific, even to the certification extension via platform vendor  Developed for embedded, desktop, or server devices  Highly specialized or general purpose toward particular machine functionalities (e.g., computer clusters, network routers, and firewalls)  Targeted at particular user groups, e.g., by language internationalization and localization or by including several scientific computing and music production packages  Primarily, built for comprehensiveness, portability, usability, or security Rolling release or standard release
  • 14. The Linux distribution diversity is because of the technical, philosophical, and organizational variation among users and vendors. 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. Structure of Linux File System: Linux file system has a hierarchal file structure as it contains a root directory and its subdirectories. All other directories can be accessed from the root directory. A partition usually has only one file system, but it may have more than one file system. A file system is designed in a way so that it can manage and provide space for non-volatile storage data. All file systems required a namespace that is a naming and organizational
  • 15. methodology. The namespace defines the naming process, length of the file name, or a subset of characters that can be used for the file name. It also defines the logical structure of files on a memory segment, such as the use of directories for organizing the specific files. Once a namespace is described, a Metadata description must be defined for that particular file. The data structure needs to support a hierarchical directory structure; this structure is used to describe the available and used disk space for a particular block. It also has the other details about the files such as file size, date & time of creation, update, and last modified. Also, it stores advanced information about the section of the disk, such as partitions and volumes. The advanced data and the structures that it represents contain the information about the file system stored on the drive; it is distinct and independent of the file system metadata. Linux file system contains two-part file system software implementation architecture. Consider the below image: The file system requires an API (Application programming interface) to access the function calls to interact with file system components like files and directories. API facilitates tasks such as creating, deleting, and copying the files. It facilitates an algorithm that defines the arrangement of files on a file system. The first two parts of the given file system together called a Linux virtual file system. It provides a single set of commands for the kernel and developers to access the file system. This virtual file system requires the specific system driver to give an interface to the file system. Directory Structure The directories help us to store the files and locate them when we need them. Also, directories are called folders as they can be assumed of as folders where files reside in the form of a physical desktop analogy. Directories can be organized in a tree-like hierarchy in Linux and several other operating systems.
  • 16. The directory structure of Linux is well-documented and defined in the Linux FHS (Filesystem Hierarchy Standard). Referencing those directories if accessing them is achieved via the sequentially deeper names of the directory linked by '/' forward slash like /var/spool/mail and /var/log. These are known as paths. Following is a very short standard, defined, and well-known top-level Linux directory list and their purposes: o / (root filesystem): It is the top-level filesystem directory. It must include every file needed to boot the Linux system before another filesystem is mounted. Every other filesystem is mounted on a well-defined and standard mount point because of the root filesystem directories after the system is started. o /boot: It includes the static kernel and bootloader configuration and executable files needed to start a Linux computer. o /bin: This directory includes user executable files. o /dev: It includes the device file for all hardware devices connected to the system. These aren't device drivers; instead, they are files that indicate all devices on the system and provide access to these devices. o /etc: It includes the local system configuration files for the host system. o /lib: It includes shared library files that are needed to start the system. o /home: The home directory storage is available for user files. All users have a subdirectory inside /home.
  • 17. o /mnt: It is a temporary mount point for basic filesystems that can be used at the time when the administrator is working or repairing a filesystem. o /media: A place for mounting external removable media devices like USB thumb drives that might be linked to the host. o /opt: It contains optional files like vendor supplied application programs that must be placed here. o /root: It's the home directory for a root user. Keep in mind that it's not the '/' (root) file system. o /tmp: It is a temporary directory used by the OS and several programs for storing temporary files. Also, users may temporarily store files here. Remember that files may be removed without prior notice at any time in this directory. o /sbin: These are system binary files. They are executables utilized for system administration. o /usr: They are read-only and shareable files, including executable libraries and binaries, man files, and several documentation types. o /var: Here, variable data files are saved. It can contain things such as MySQL, log files, other database files, email inboxes, web server data files, and much more. Linux File System Features In Linux, the file system creates a tree structure. All the files are arranged as a tree and its branches. The topmost directory called the root (/) directory. All other directories in Linux can be accessed from the root directory. Some key features of Linux file system are as following: o Specifying paths: Linux does not use the backslash () to separate the components; it uses forward slash (/) as an alternative. For example, as in Windows, the data may be stored in C: My Documents Work, whereas, in Linux, it would be stored in /home/ My Document/ Work. o Partition, Directories, and Drives: Linux does not use drive letters to organize the drive as Windows does. In Linux, we cannot tell whether we are addressing a partition, a network device, or an "ordinary" directory and a Drive. o Case Sensitivity: Linux file system is case sensitive. It distinguishes between lowercase and uppercase file names. Such as, there is a difference between test.txt and Test.txt in Linux. This rule is also applied for directories and Linux commands. o File Extensions: In Linux, a file may have the extension '.txt,' but it is not necessary that a file should have a file extension. While working with Shell, it creates some problems for the
  • 18. beginners to differentiate between files and directories. If we use the graphical file manager, it symbolizes the files and folders. o Hidden files: Linux distinguishes between standard files and hidden files, mostly the configuration files are hidden in Linux OS. Usually, we don't need to access or read the hidden files. The hidden files in Linux are represented by a dot (.) before the file name (e.g., .ignore). To access the files, we need to change the view in the file manager or need to use a specific command in the shell. Types of Linux File Systems: When we install the Linux operating system, Linux offers many file systems such as Ext, Ext2, Ext3, Ext4, JFS, ReiserFS, XFS, btrfs, and swap. 1. Ext, Ext2, Ext3 and Ext4 file system The file system Ext stands for Extended File System. It was primarily developed for MINIX OS. The Ext file system is an older version, and is no longer used due to some limitations. Ext2 is the first Linux file system that allows managing two terabytes of data. Ext3 is developed through Ext2; it is an upgraded version of Ext2 and contains backward compatibility. The major drawback of Ext3 is that it does not support servers because this file system does not support file recovery and disk snapshot. xt4 file system is the faster file system among all the Ext file systems. It is a very compatible option for the SSD (solid-state drive) disks, and it is the default file system in Linux distribution. 2. JFS File System JFS stands for Journaled File System, and it is developed by IBM for AIX Unix. It is an alternative to the Ext file system. It can also be used in place of Ext4, where stability is needed with few resources. It is a handy file system when CPU power is limited.
  • 19. 3. ReiserFS File System ReiserFS is an alternative to the Ext3 file system. It has improved performance and advanced features. In the earlier time, the ReiserFS was used as the default file system in SUSE Linux, but later it has changed some policies, so SUSE returned to Ext3. This file system dynamically supports the file extension, but it has some drawbacks in performance. 4. XFS File System XFS file system was considered as high-speed JFS, which is developed for parallel I/O processing. NASA still using this file system with its high storage server (300+ Terabyte server). 5. Btrfs File System Btrfs stands for the B tree file system. It is used for fault tolerance, repair system, fun administration, extensive storage configuration, and more. It is not a good suit for the production system. 6. Swap File System The swap file system is used for memory paging in Linux operating system during the system hibernation. A system that never goes in hibernate state is required to have swap space equal to its RAM size.