History of Linux
The name of the Linux operating system was coined by Linus Torvalds in 1991. Linux was developed on
Minimal UNIX (MINIX), a UNIX version, using GNU Not UNIX’s (GNU’s) C compiler.
UNIX
In 1965, Bell Labs and Massachusetts Institute of Technology (MIT) along with General Electric developed
one of the first multiuser computer systems, called Multiplexed Information and Computing Service
(Multics). Ken Thompson and Dennis Ritchie, two Bell Labs engineers, worked on this project till 1969.
Later, they developed another operating system in C language. This added flexibility in porting the
operating system to other computing platforms, which was not easy with Multics as it was written in
assembly language. This operating system was named Uniplexed Information and Computing Service
(Unics), which was similar to the Multics operating system. The name Unics was then changed to UNIX.
In 1972, Ken Thompson and Dennis Ritchie re-wrote UNIX using the C programming language. Around
1974, UNIX was licensed to universities for educational purposes and, a few years later, it was made
available commercially.
Berkeley Software Distribution (BSD)
During 1976–1977, Ken Thompson was on sabbatical for six-months from Bell Labs. He taught UNIX
operating system as a visiting professor at the Computer Science Department at the University of
California-Berkeley (UCB). His sessions were very popular.
After Thompson’s return to Bell Labs, students and professors at Berkeley continued to enhance UNIX
and finally these enhancements were incorporated into BSD Version 4.2.
MINIX
MINIX was another version of UNIX that was used as a teaching aid in universities and colleges. It was
a copy of the UNIX operating system available with the source code. Due to its small size, micro kernelbased
design and ample documentation, it was well suited to people who wanted to run a UNIX-like
system on their personal computer.
MS-DOS was created much later than UNIX. By that time, the industry had begun to accept UNIX as
the standard operating system. Therefore, UNIX features have influenced the design of MS-DOS. Many
vendors, such as Sun, IBM and Hewlett-Packard purchased the source code of UNIX. They developed
their own versions of UNIX.
This resulted in many differences amongst various versions of UNIX offered by various organizations. To
avoid the confusion, some standards called Portable Operating System Interface (POSIX), were outlined.
POSIX is a set of standards that enabled software to run on various UNIX-based operating systems without
changing the source code.
Note - POSIX was produced by the Institute for Electrical and Electronic Engineers (IEEE) and
is recognized by International Organization for Standardization (ISO) and American National
Standards Institutes (ANSI).
In 1983, an MIT scientist, Richard M. Stallman, launched the GNU project. The main aim of this project
was to create a UNIX-like operating system but free from licensing charges. The next step of this project
was to further improve the operating system. For this, the GNU operating system was distributed to
programmers around the world. The GNU operating system used GRand Unified Bootloader (GRUB) for
booting.
For a better coordination of the GNU project, Stallman and other people created the Free Software
Foundation (FSF). This organization promoted the development and use of free software. FSF developed
the GPL for building free software protected from those entities that would use it to create proprietary
closed-source systems. The organization charges a small fee to operate the foundation. Around 1990, FSF
had developed a number of tools that could be freely modified and redistributed.
Evolution of Linux
Around 1991, one of the students from the University of Helsinki, Finland was working on MINIX. His
name was Linus Torvalds. He wanted to modify his own version of the UNIX operating system by using its
existing features. After he created this operating system, he gave it free of charge for everybody to use.
He named his project as Linux and wrote the source code for the kernel, which was the core program
of the Linux operating system. After writing the source code, he made the Linux kernel available on the
Internet.
The kernel was then combined with the GNU system and as a result, a new operating system was discovered,
the GNU/Linux operating system. This operating system is also referred to as the Linux operating system.
Like other operating systems, it has a kernel in its core. The kernel controls the resources of the computer
and forms an interface between the user and the hardware.
The source code of the Linux kernel was made available to everyone on the Internet for study and
modification purpose. Whenever any modifications were done to the kernel code, Linus accepted them.
As a result, whenever a new version of Linux with new functionality is released, anyone can use it and can
also help in fixing bugs, if any. To maintain stability, Linus ensured that the new code is quality tested. The
new code is then merged into the kernel. This entire cycle is a part of the development model.
However, in the closed model, a project team works on a software version, test it and fix the errors before
everyone else use the software. By looking at the version number of Linux, it can be known if it is a stable
or trial version. For example, in version 1.a.b, if ‘a’ is an even number, it confirms that this is a stable
version of Linux. Alternatively, if ‘a’ is an odd number, it indicates that this is a beta (trial) version of Linux.
The official mascot for Linux is the Linux penguin, called Tux. This mascot was selected by Linus Torvalds
![0555bbe9368a05bff51437bdc1ff702e_L.jpg]
(
Basic Principles of Linux
Like, UNIX, the Linux operating system also works on the certain principles. These basic principles of the
Linux software are as follows:
Î Stability and Reliability
Î Security
Stability and Reliability
Linux is a stable operating system, which does not require to be restarted periodically to maintain
performance levels. It provides adequate protection against freezing up or slowing down over time due
to issues, such as disk defragmentation and clogging of temporary files. This results in increased uptime.
Linux is modular by design. It can only install applications that are really required. This saves a lot of
resources that would go waste in managing unnecessary applications and utilities that otherwise come
bundled with non-modular operating systems. It also helps Linux to remain highly customizable and easy
to maintain and manage.
As a multiuser operating system, everything in Linux is managed as a file and all the configurations are
stored in text format. The software components of Linux are single purpose programs and are designed
to work together to perform complex tasks in a multiuser environment. This helps Linux perform better
even with less resources.
The various utilities and programs of the Linux operating system are majorly open source. A large
community of developers and users are there to test, modify and improve them. Therefore, bugs are
reported and fixed relatively faster as compared to proprietary operating systems. A large developer base also results in frequent upgrades and improved releases to take care of any shortcomings in the
operating system.
Security
Linux provides a number of features that cater to various security requirements at personal, commercial
and organizational levels.
The various Linux security features are as follows:
Î File System Security - Linux has a hierarchical file system that keeps similar files, such as data,
programs and configuration files at fixed locations in a structured way. This allows better
placement of security policies to ensure safety for the file system.
Î Firewall Security - Linux provides a highly customizable and secure firewall that can cater to
various personal and commercial requirements. It supports very simple yet effective
configurations to very complex configurations catering to commercial or organization scenarios.
Î Run Levels Security - Linux provides run levels with a predefined set of services being available in
particular run levels. These run levels can also be customized to include or exclude services suiting
to user requirements. The run levels help users initiate and run minimum number of services
required. This not only helps in saving precious computing resources but also reduces surface area
for any security threats.
Î Services - Linux services are known as daemons. These daemons can be configured to run under
fine grained user level security. For example, users in Linux can only run the services meant to be
run by them. This prevents the possibility of an attack that can compromise the entire computer
at a time.
Î Security Enhanced Linux - Linux provides Security Enhanced Linux (SELinux) that provides better
access control and security at the kernel level through the security policies. SELinux runs
applications into various sandboxes and isolates them from each other and the underlying
operating system.
Î Discretionary Access Control (DAC) - Linux uses DAC to ensure security in a multiuser
environment. The files and directories are labelled with a set of permissions to indicate the user or
group that the object belongs to and the types of operation they can perform on it, such as read,
write or run.
Advantages of Linux Operating System
The Linux operating system has several advantages. Some of the advantages are as follows:
Î Reliability - Linux servers need not be shut down for years together. This implies that users do not
face any operating system failures.
Backward Compatibility - Linux supports older hardware. It can run on various types of
processors, such as 386 and 486 Intel processors. In addition, it can run on DEC Alpha, Sun SPARC,
PowerPC and SGI MIPS.
Î Simple Installation and Upgrade Process - Most Linux versions are menu-driven and have easy
installation procedures. In addition, it provides the ability to upgrade from prior versions easily. In
the upgrade process, the system uses the existing configuration files and maintains a list of its
actions during installation.
Î Low Cost of Ownership - The total cost of implementing Linux server software is low. In addition,
the cost of support can also reduce as there are a lot of people and organizations providing free
support for Linux. The system configuration requirements for installing a Linux computer are less.
For this reason, the hardware and maintenance cost goes down.
Î Support for Legacy Devices - Linux can also run on a computer that has low configuration.
Î Graphic User Interface (GUI) - X Window System is the graphical interface for Linux. It is divided
into two subsystems consisting of a server and a client. The various GUIs provided by Linux are K
Desktop Environment (KDE) and GNU Network Object Model Environment (GNOME). Both of
these GUIs are the versions of the X Window System.
Î Excellent Security Features - Linux offers a secure firewall, access control and customized run
levels to ensure security.
Î Support for Development Libraries - Linux offers various platforms for many development
languages, such as C, C++, JAVA, Python and Perl. It also supports Integrated Development
Environments (IDE), such as KDevelop and Glade.
Î Support for High User Load - Linux can support a large number of users working simultaneously.
The limitation is typically because of the server hardware.