An operating system is a software program that acts as an interface between a user and a computer. It consists of instructions that are given to the hardware components of the computer to perform specific tasks, such as creating or copying documents and viewing them. Some examples of operating systems are Linux, Windows XP, Windows 7, Solaris, Mac, and UNIX.
Linux is primarily derived from the UNIX operating system. This operating system has evolved over time with rich features offering stability, high security, and high reliability. It runs on a variety of computer hardware, mobile phones, tablet computers and video game consoles to mainframes and supercomputers. Due to these reasons, Linux has gained wide acceptance as a desktop operating system and a stable and secure server.
Another reason for Linux's popularity is that unlike proprietary operating systems, its source code is freely available to anyone. As a result, large communities of users and developers have contributed to make the operating system rich and versatile in features. Many individuals and communities have used the Linux source code to develop different types of Linux-based operating systems, which are called distributions. Some of the popular Linux distributions are: Debian, Fedora, Red Hat, SUSE, and Ubuntu.
1.2 Open Source Software
In this topic, you will learn what open source software is and how it is different from closed source and free software. You will also identify the various open source software and applications available. Lastly, you will learn about licensing.
1.2.1 Defining Open Source
The open source software is free software. The term free does not refer to the cost of the software. Instead, it refers to the freedom given to the users to suitably modify the program. The open source software allows users to freely use its source code and customize it to meet individual requirements.
NOTE: The open source software can be used as it is or can be redistributed after making modifications to it.
The open source software allows users to:
Access the source code of the software.
Run the software for commercial or personal use.
Customize the source code to meet specific requirements.
Redistribute copies of the software.
Release the customized software to the public in general.
However, this redistribution of copies with or without modifications may or may not be free. The person or agency redistributing the software may charge the end user the costs involved in media and redistribution.
You may also improve the source code and redistribute the software for a fee. Alternatively, you may distribute the improved source code free of cost but charge the users for services, such as upgrades, add-ons, or support.
For example, Fedora Linux is available free of cost for end users along with the upgrades, enhancements, and add-ons to the operating system. However, Red Hat Enterprise Linux source code is free but end users have to pay a fee for upgrades, add-ons, and support.
1.2.2 Comparing Open Source with Closed Source
Open source software is also different from closed source or proprietary software. The proprietary software source code is not released to end users and is only available in a compiled executable state. The end users have to purchase the software to use it for personal or commercial purposes. In addition, copying or redistribution of the software may be restricted by the license agreement between the vendor and the end user.
Closed source software are generally owned, developed, and distributed by a single vendor to end users who purchase the software for a license fee. Services, such as upgrades, add-ons, and support are defined by the license agreement between the vendor and the end user. These may vary as per the selling and distribution strategy of the vendor.
1.2.3 Identifying Open Source Operating Systems and Applications
The various open source operating systems are:
Open Solaris: Is an open source operating system sponsored by Sun Microsystems.
Fedora Linux: Is an open source Linux operating system sponsored by Red Hat. It has a release cycle of six months.
Red Hat Enterprise Linux: Is an open source Linux operating system by Red Hat. However, end users have to pay subscription fee for support and other utilities shipped along with Red Hat Enterprise Linux.
Open SuSE: Is an open source Linux-based operating system sponsored by Novell. Open SuSE is a German distribution. There are a lot of applications and utilities packed along with Open SuSE Linux. It also contains StarOffice (Private Edition) and Word Perfect (Private Edition). It is very popular in Europe.
Mandrake Linux: Is an open source Linux operating system. Mandrake offers the power and stability of Linux to both individual and enterprise users in a user-friendly environment. It contains various high-quality applications, such as a complete Office Suite of programs. It also provides a built-in installation support.
Debian Linux: Is an open source Linux-based operating system sponsored by the Debian community. Debian is among the earliest distributions of Linux and is available free of cost. It offers precompiled software bundled with more than 8000 packages and an easy installation procedure.
The various open source applications are:
Apache Web Server: Is an open source Web server sponsored by Apache Software Foundation. It runs on various operating system platforms including UNIX, Linux, Solaris, and Windows. It also provides support for a variety of features ranging from server-side programming language to multiple authentication schemes.
Sendmail: Is an open source mailing application sponsored by the Sendmail Consortium. It is a general purpose internetwork e-mail routing application. It also supports various types of mail transfer and delivery methods, including Simple Mail Transfer Protocol (SMTP). Sendmail is also available in many proprietary versions.
MySQL: Is an open source database application sponsored by Sun Microsystems.
1.2.4 Licensing
Open source software can be used for a variety of purposes to suit individual requirements. There are many types of licenses that legalize the use of open source software for various purposes.
Some examples of open source licenses include:
General Public License (GPL): Allows users to package and redistribute the original or modified source code of the software only with other GPL licensed software. It does not allow the open source software to use any other proprietary software.
Lesser General Public License (LGPL): Allows users to package and redistribute the original or modified source code of the software only with other LGPL licensed software. In addition, it allows the use of proprietary software with LGPL licensed open source software.
Berkeley Software Distribution (BSD): Allows redistribution of the open source software with any other software. It allows distribution of original source code after modification even if it uses some other software not covered under the BSD license. In addition, it allows the use of proprietary software with BSD covered software.
1.3 Origin of Linux
In the earlier days of computers, developers were looking for an operating system, which was simple and elegant, flexible, and secure. At that time, the developers of Bell Laboratories introduced an operating system that fulfilled all these requirements. This gradually evolved into the UNIX operating system.
Linux was derived from UNIX to provide a free or very low-cost operating system to computer users. It is considered to be a very efficient and fast-performing operating system.
1.3.1 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's Not UNIX GNU 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 until 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 to teach as a visiting professor at the Computer Science Department at the University of California-Berkeley (UCB). He taught the UNIX operating system. His sessions were very popular.
When Thompson returned to Bell Labs, students and professors at Berkeley continued to enhance UNIX. Eventually, all these enhancements got incorporated into BSD Version 4.2.
Minix
MINIX was another version of UNIX, which was used as a teaching aid in universities and colleges. It was a free UNIX clone available with all the source code. Due to its small size, micro kernel-based design, and ample documentation, it was well suited to people who wanted to run a UNIX-like system on their personal computer.
It is interesting to note that 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 companies. 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 is produced by the Institute for Electrical and Electronic Engineers (IEEE) and recognized by International Organization for Standardization (ISO) and American National Standards Institutes (ANSI).
In 1983, an MIT scientist, Richard M. Stallman, launched the GNU's Not UNIX (GNU) project. The main aim of this project was to create a UNIX-like operating system but free from licensing charges. Under this project, the GNU operating system was distributed to programmers around the world to improve it.
To organize the work on 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 to build a body of free software protected from those who 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.
1.3.2 Evolution of Linux
Around 1991, Linus Torvalds, a student at the University of Helsinki, Finland, was working on Minix. Linus Torvalds liked the features of the UNIX operating system and wanted to create his own version of the UNIX operating system. After he created this operating system, he gave it free of charge for everybody to use. Torvalds worked on the project, wrote the source code for the kernel, and named it Linux. The kernel was the core program of the Linux operating system. Torvalds made the Linux kernel available on the Internet.
The Linux kernel was combined with the GNU system resulting in a complete operating system. This operating system was called GNU/Linux because it was a combination of the GNU system and Linux as the kernel. The GNU/Linux operating system is 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.
Linux follows the open development model. Torvalds has made the source code of the Linux kernel available for study and changes on the Internet. This means that the current development version of Linux is always open to everybody. Torvalds also accepts modifications to the kernel code. The result is that whenever a new version of Linux with new functionality is released, people work on the new version to fix bugs, if any. To maintain stability, Torvalds exercises strict quality control and then merges all the new code into the kernel. This is in contrast to a closed model, in which a project team works on the software version and there are long intervals before people use the software and fix the errors in it.
By looking at the version number of Linux, you can tell if it is a stable or trial version. In version 1.x.y, if x is an even number, it signifies a stable version of Linux. Conversely, if x is an odd number, it signifies a beta (trial) release of Linux.
The Internet has played a major role in the development of the Linux operating system. Today, many companies provide support for Linux on the Internet. Many Linux forums on the Internet allow free registration and subscription to the latest information. The official mascot for Linux is the Linux penguin, called Tux. This mascot was selected by Linus Torvalds.
The following figure (Refer to Figure 1.1) shows the Linux official mascot.
Figure 1.1: The Linux Official Mascot
1.3.3 Features of Linux
The features of the Linux operating system are:
Multiprogramming: Allows programs to be executed simultaneously using the same set of computing resource. In Linux, multiprogramming is made possible by using the concept of time-sharing. This means that the operating system has to manage various programs to be executed. These programs are queued and Central Processing Unit (CPU) time is shared among them. Each of the running programs get CPU time for a specific period and are then put back in the queue to wait for its turn again. In the mean time, the next program in the queue is attended.
Multitasking: Is the ability of any operating system to handle the execution of multiple tasks. While a task is waiting for the completion of an activity, the CPU begins with the execution of the next task.while one task is waiting for input from the user, another program could be installing an application. To explain the concept of multitasking, consider an example where you are having your breakfast, watching a TV, and talking to your mother over the phone. You are performing more than one task simultaneously. However, at a given point in time, you would be taking a bite, watching the TV, or speaking on the phone. This means, you divide your time amongst all the tasks. Similarly, the CPU divides the time among all the active tasks. The kernel is responsible for scheduling the tasks.
Virtual memory: Is an additional memory that an application can use when the physical memory is already consumed. This means some part of the hard disk is made available for the application, to be used as the virtual memory. The amount of physical memory may not always be sufficient to run large applications or to have multiple applications active at a point in time. The system places infrequently required programs and data in the virtual memory and loads them in the memory, whenever required. Therefore, it uses the resources of the computer to the optimum.
Shared libraries: Are sets of functions or subroutines maintained as a set of files. Multiple applications can access the required functions from the shared library files instead of individually maintaining code for the functions. This saves hard disk space and memory.
POSIX-compliance: Supports most of the standards set for all UNIX systems.
Samba: Is derived from the Server Message Block (SMB) protocol of the Microsoft operating systems to share file and print services. Samba is a suite of programs that implement the SMB protocol in Linux. It allows you to share a Linux file system with the Windows operating system and also share a Windows file system with Linux.
Note:
A protocol is a set of rules that states the communication standards for data transfer between two applications.
The term file system refers to a mechanism used by an operating system to store and manage files and directories on a storage medium.
A partition is a logical portion of the hard disk, which is created using either the operating system-based utility or any third-party utility.
Network Information Service (NIS): Allows you to create user accounts that can be shared across multiple computers in a network. It is a client and server database system that acts as a central database of account information used for account authentication.
Office suites: Are supported by Linux. Basically, Linux supports OpenOffice.org, which is a set of programs that has many in-built tools. OpenOffice.org enables you to create documents, presentations and illustrations, and analyze data. OpenOffice.org provides a set of applications just like Microsoft Office Application for Windows.
Data archiving utilities: Are the utilities provided by Linux for basic data backup (archiving), such as tar, cpio, and dd. Advanced Maryland Automatic Network Disk Archiver or Amanda is a backup system supported by Linux. It enables the Local Area Network (LAN) administrator in setting up a master backup server and make back up for multiple hosts in a large capacity tape drive.
Web server: Linux comes with the Apache Web server, one of the most popular Web servers in use today. Apache also supports the Squid proxy server that helps to improve the performance for accessing the Internet.
Licensing: For Fedora means that anyone can download, install, or use the software and any updates to the software, regardless of the delivery mechanism. Linux is a copyright under the GNU GPL.
Additional features: Include useful and free software, such as text editors, browsers, and scientific applications.
1.4 Basic Principles of Linux
The basic principles of the Linux software include:
Stability and Reliability
Security
Stability and Reliability
Linux is a stable operating system, which does not need 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. This means that you can only install applications that are really needed. 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 include:
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, a user in Linux can only run the services meant to be run by him or her only. 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) which provides better access control and security at the kernel level through 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. This means that the files and directories are labeled with a set of permissions to indicate:
The user or group, the object belongs to
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 listed in Table 1.1.
Advantages
Description
Reliability
Linux servers need not be shut down for years together. This means that users do not face any operating system failures.
Backward compatibility
This means that 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 have menu-driven and 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 total 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 which has low configuration.
Graphic User Interface (GUI)
X Windows 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.
Table 1.1: Advantages of Linux Operating System
1.5 Red Hat Operating System Distributions
Red Hat Inc. provides different variants for various types of users. It has divided its users into the following two categories:
Business Users: The first category includes the business users who need an operating system that requires fewer updates. Red Hat provides the Red Hat Enterprise Linux product suite for these users. These users need to pay a license fee for the software. The changes in the operating system are made at a low pace so that business users need not upgrade the operating system at frequent intervals.
Other Users: The second category includes the users who use Linux for experimental purpose and make use of its new and advanced features. These users use the software without paying any license fee. They can download the software from the Internet and use it free of charge. For example, Fedora is a freely downloadable operating system.
The various Linux variants provided by Red Hat Inc. are:
Red Hat Enterprise Linux suite: Runs on multiple hardware architecture such as IBM PowerPC, AMD64, Intel EM64T, and Intel x86/x64. The operating systems of the Red Hat Enterprise Linux suite are:
Red Hat Enterprise Linux AS: Used for large servers and supports up to 16 CPUs. This operating system supports databases, Enterprise Resource Planning (ERP), and Customer Relationship Management (CRM) applications.
Red Hat Enterprise Linux ES: Used for small and middle range servers and supports up to two CPUs. It is used for business applications, such as printing, mailing, and networking applications.
Red Hat Enterprise Linux WS: Used as desktop operating system and supports up to two CPUs. This operating system is compatible with Red Hat Enterprise Linux AS and Red Hat Enterprise Linux ES. This operating system is suitable for client applications, such as document processing and software development applications.
Red Hat Desktop: Is used for small and medium business groups, supporting a single CPU. It is compatible with Red Hat Enterprise Linux AS, Red Hat Enterprise Linux ES, and Red Hat Enterprise Linux WS. This operating system is suitable for document processing, Web browsing, software development, and instant messaging.
Fedora Core: Represents a general-purpose operating system having capabilities comparable to other operating systems, such as Windows NT and Macintosh. Fedora Core is a Red Hat-sponsored project but Red Hat Inc. does not support it. You can download Fedora free of charge from various Web sites. The official Web site for Red Hat is http://www.Red Hat.com.
Red Hat Enterprise Linux has the following versions released over time:
Red Hat Enterprise Linux 2.1 (Panama)
Red Hat Enterprise Linux 3 (Taroon)
Red Hat Enterprise Linux 4 (Nahant)
Red Hat Enterprise Linux 5 (Tikanga)
Red Hat Enterprise Linux 6 (Santiago)
Red Hat Enterprise Linux is closely related to the Fedora Linux community project sponsored by Red Hat. Every Red Hat Enterprise Linux version takes technologies from Fedora after considerable stabilization and quality assurance effort. While Fedora core has a six month release cycle, Red Hat Enterprise Linux has a more conservative release cycle of two years.
Even earlier, Red Hat Enterprise Linux versions were also based on Red Hat's open source Red Hat Linux operating system. But afterwards, Red Hat Linux split into community-based Fedora project and commercial Red Hat Enterprise Linux. The latest Red Hat Enterprise Linux 6 has many features of Fedora 13 and Fedora 14.
However, Fedora is a community project that serves as an upstream version for Red Hat Enterprise Linux. Red Hat Enterprise Linux serves as a commercial enterprise operating system that is released as alpha and beta versions before final release.
Since Red Hat Enterprise Linux is an open source operating system and its source code can be accessed by anyone, there are certain operating systems, which use Red Hat Enterprise Linux source code. Users compile their own versions of Red Hat Enterprise Linux. One such popular operating system is CentOS. These rebuilds provide free updates from non-Red Hat servers. However, these operating systems do not get any support from Red Hat.
Summary
In this session, you learned that:
An operating system is a software program that acts as an interface between a user and a computer.
Linux is primarily derived from the UNIX operating system.
The open source software is a free software and closed source software are generally proprietary software owned,
Some of the examples of the open source licenses include:
General Public License (GPL)
Lesser General Public License (LGPL)
Berkeley Software Distribution (BSD)
Linux was developed on MINIX, a UNIX version, using GNU C compiler.
The official mascot for Linux is the Linux penguin, called Tux.
The features of the Linux operating system are:
Multiprogramming
Multitasking
Virtual memory
Shared libraries
POSIX-compliance
Samba
Network Information Service (NIS)
Office suites
Data archiving utilities
Web server
Licensing
The basic principles of the Linux software include:
Stability and Reliability
Security
The Linux operating system provides various advantages, such as backward compatibility, simple installation and upgrade process, and low total cost of ownership.
Exercise
Linux is primarily derived from the _____ operating system.
The open source software is a ____ software.
Open Solaris is an open source operating system sponsored by _________.
The official mascot for Linux is the Linux penguin, called ______.
_________ allows programs to be executed simultaneously using the same set of computing resource.
The basic principles of the Linux software include ________ and _______, and _______.
Answers to Exercise
UNIX
free
Sun Microsystems
Tux
Multiprogramming
stability, reliability, security
Glossary
A
Apache Web Server:
It is an open source Web server sponsored by Apache Software Foundation.
C
Closed Source Software
Closed source software are generally owned, developed, and distributed by a single vendor to end users who purchase the software for a license fee.
M
MySQL
It is an open source database application sponsored by Sun Microsystems.
O
Open Source
The open source is a free software that allows users to freely use its source code and customize it to meet individual requirements.
S
Sendmail
It is an open source mailing application sponsored by the Sendmail Consortium. It is a general purpose internetwork e-mail routing application.