3 Overview of GNU/Linux

Mr. Hardik Joshi

epgp books

 

Learning Objectives

 

By the end of this module, you should be able to:

  • Understand the basic functions of Operating Systems
  • Understand the history and philosophy of GNU/Linux
  • Define the common terms associated with GNU/Linux
  • Understand the components of a GNU/Linux distribution
  • Determine a GNU/Linux distribution suitable for your need

     1. Overview of Operating System

An Operating System (OS) is the most important program that runs on the computer. These days, most of the digital equipment like computers, mobile phones, tablets etc. needs an operating system to function. In the present time, different operating systems are available depending on the need of user and hardware type. For instance, an industry may require an operating system for a server that supports multiple users while the operating system in personal computers and mobile phones may support a single user.

 

An operating system defines an abstraction of hardware and manages resource sharing among the computer’s users. It is actually a stack of software, where each software component is designed for specific purpose. OS usually comprises of the kernel, system libraries, system tools, development tools and end-user tools. A kernel is the core of an operating system. Kernel controls the hardware and makes the hardware interact with different applications. Kernel is the system software that has four basic responsibilities:

 

•       Device management

•       Memory management

•       Process management

•       Handling System calls

 

As we are aware there are various operating systems like Microsoft Windows XP, Windows 7, Windows 8, Mac OS, Android, Linux etc. Each operating system has a different kernel, for instance the kernel of Microsoft Windows 7 will be different from the kernel of Microsoft Windows 8. Similarly, the kernel of Microsoft Windows will be different from the kernel of UNIX, Linux or Android. Just like Windows XP or Windows 7, Linux is an operating system that performs most of the tasks similar to the widely used operating systems like Windows or Mac OS. Let us explore more about Linux operating system.

 

2. Why use Linux?

 

Most of us are familiar with Microsoft Windows operating system. The first question that hits in our mind is what is the need of Linux instead of Windows? There are several reasons to adopt Linux over other operating systems. The main reason being Linux is distributed under an open source license. This gives us various benefits like:

  • Linux is available free of cost, no need to purchase it.
  • Linux provides freedom to use the operating system for any purpose.
  • Freedom to study how it works and freedom to modify it if required.
  • We can distribute the copy of Linux to others.
  • We can distribute modified copies of Linux to others.
  • Linux is more reliable and less vulnerable to malwares and viruses.
  • Most of the software applications that run on Linux are also covered under open source licenses.
  • Linux community is large and spread across the globe. Technical help is easily available through online websites and Linux User Groups (LUG).
  1. The History of Linux

During 1970s and 1980s, UNIX was the widely used operating system. The UNIX operating system was developed by Dennis Ritchie and Ken Thompson of AT&T Bell Labs in 1969. Unfortunately, UNIX was not free software and it used to cost in thousands of dollars during 1980s. Different companies developed their own flavor of UNIX that used to work on specific hardware. Some well-known flavors were Hewlett-Packard’s HP-UX, IBM’s AIX and Sun Microsystems Solaris.

 

In 1991, Linus Torvalds who was a student in Helsinki, Finland started a project of creating his own operating system kernel. He was experimenting with improving MINIX (Mini–UNIX, a small educational version of UNIX that was developed by Prof. Andrew Tanenbaum for teaching his class) for the Intel x86 platform. While working on the project, Linus Torvalds  invited  feedback  and  suggestions  for  his work   through   the   comp.os.minix   newsgroup.Surprisingly, lot of people started contributing to this project.   Later  he  collected  and  Developed  other essential  ingredients  that  were  needed  to  build  an operating system with his kernel. This soon became known as Linux kernel. Since 1991, when the source code  of  Linux  was  released,  numerous  software developers started contributing collaboratively.

 

Figure 1: Linus Torvalds

Figure 2: Email of Linus Torvalds making the first announcement of his work

 

There was another project called GNU of Free Software Foundation (FSF) which promoted free software. The project GNU was started by Richard Stallman in 1983 with an intention to build free software and system components that can work on a kernel. Free software was being distributed under General Public License (GPL) by GNU. However, project GNU did not had any kernel. In 1992, Linux was re-licensed under GPL that helped in combining the kernel with various other system components developed under the GNU project. Penguin was selected as the mascot of Linux kernel. In mid 1990s, due to the widespread of Internet, numerous people started contributing to Linux kernel. In 1998, major companies like Oracle and IBM announced support for Linux platform. Today, Linux powers nearly 90% of the super computers, more than half of the servers over the Internet, majority of smart-phones (Android) and many more devices like TVs, DVD Players, Cameras etc.

Figure 3: Mascot of Linux Kernel

4. Linux Community

 

Linux community comprises of stakeholders like developers, system administrators, users and vendors. There are various communities depending on geographic location, Linux distributions, free software specific communities etc. The main objective of these communities is to interact with each other and help in Linux development. They also extend technical help to new users who face problems in installing or configuring Linux. There can be different ways to engage with the community, like posting questions on forums, subscribe to newsgroup or join a local Linux group and interact personally. One such online community is linux.com. These communities collaborate through:

  •  Online Linux User Groups (LUGs)
  •  Online discussion forums
  •  Internet Relay Chat (IRC) software
  •  Newsgroups and mailing lists
  •  Community events (such as LinuxCon, DebConf etc.)
  1. Linux Terminology

Linux was created on the lines of UNIX. It has borrowed heavily from UNIX operating system. As we have discussed earlier, Linux was intended to be free and open source version of UNIX. Linux adopts the hierarchical file system with the top node of the file system being the root ( “/”) as it is used in UNIX. Linux is a fully multi-tasking, multi-user operating system. Let us explore few terms that we often use while studying Linux:

 

Multitasking: it is a method where multiple tasks are performed at the same time.

 

Multiuser: It is a method where multiple users can log onto the system and work concurrently.

 

Bootloader: It is the software that manages the boot process of the computer. Usually it is a splash screen that is seen after BIOS screen when we start the system. In case if there are multiple operating system within a computer, the bootloader provides a choice to select an operating system that is to be started.

 

Kernel: It is the software that manages the hardware resources. Kernel provides interfaces through which an application program can interact with the hardware. Linux kernel is covered under GNU GPL license and is made available through the website kernel.com. Details about the latest kernel release and its source code can be downloaded from the above mentioned website. Although there are different flavors of Linux (to be discussed

 

Daemons: They are the processes that run in background. Usually daemons start at the system boot time and executes in background till the system is shutdown. Services like print, sound, scheduling etc. are examples of daemon processes.

 

The Shell: Linux provides a command line interface through which a user can type commands to perform operations like file management, user management, network configuration etc. Such type of interface is known as shell. Shell works like an interpreter to translate the human readable commands to kernel.

 

Graphical Server: Linux also provides a graphical user interface. The graphical server is a sub-system that displays the graphics on our screen. It is known as the X server or simply ‘X’.

Desktop Environment: It is a group of software that provides a graphical user interface. The desktop environment may comprise of file managers, web browsers, games, configuration tools, end user tools etc. While using Linux, we can choose from different desktop environments like GNOME, KDE, Cinamon, XFCE etc.

 

Applications: Depending on the need of the user, different software might be required apart from the desktop environment. For instance, a user may require tools to perform publishing work or office work. Some user may need audio/video processing software. There are thousands of such software programs known as application software that can be installed and executed on Linux.

 

6. Linux Distributions

 

These days, Linux operating system is available in various flavors. As we have different flavors of ice-cream, although the main ingredient remains the same. Similarly Linux comes in different flavors, each one designed to cater specific needs of users. For instance, there is a separate flavor of Linux for multimedia professionals while the security professionals may opt for another flavor. These Linux flavors are also known as Linux distributions.

 

A Linux distribution is a collection of software (called packages) bundled together with Linux kernel to create a fully functional environment. A Linux distribution can be similar to Microsoft Windows that includes MS Office, different multimedia players and development environment like Visual Studio. Usually, a distribution provides additional software apart from the core operating system. Examples of other essential tools and ingredients provided by the distributions include the C/C++ compiler, core system libraries that the applications need to link with, the gdbdebugger, package management system for installing and updating various components and the kernel. Few examples of Linux distributions are Ubuntu, Red Hat Linux, Fedora, Linux Mint etc. These distributions are created by different organizations. At the end of this course, we will be able to create our own distribution.

 

Figure 5: Different Linux Distributions

 

Various Linux distributions are based on different kernel versions. For example, Red Hat Enterprise Linux – 6 (RHEL 6) is based on the Linux kernel version 2.6.32. Till date, a newer version of Linux kernel 4.0 has been released which will result in new Linux distributions incorporating the updated kernel. Although Linux is free, few distributions are charged by their providers. For example, RHEL distribution is available from Red Hat Incorporation by paying certain amount. Few other companies like SUSE, Canonical, Oracle may charge for their Linux distributions. This payment is intended to provide long term fee based support services for their distributions. It helps in keeping the system updated with latest security and bug fixes. These companies also offer certification for their Linux distributions (eg. Red Hat Certified Engineer). The sources of revenue for such companies are from support services and certification fees. However, for users like us who want to learn Linux, there is no need to purchase such distributions. There are free distributions (community distributions) available where the support services can be provided by the community. Although there is no 100% guarantee of support while using community based distributions most of the time we get enough help from online discussions during troubleshooting.

Figure 6: Classification of Linux distributions based on support and services

 

Let us get a brief overview of few widely used Linux distributions. A complete update list of Linux distributions is available from the distrowatch.com website. In the following table, we have considered the major Linux distributions suitable for desktop, laptop and servers.

Apart from the above listed distributions, there are various other distributions of Linux that can be used in embedded systems, tablets etc. A complete discussion of each and every distribution is out of scope in this module. It must also be noted that most of the Linux distributions are open source; however, they do use few non open source code in binary objects. A list of entirely free GNU/Linux is maintained by the GNU project page (https://www.gnu.org/distros/free-distros.html).

 

The recent development of Linux distributions has been forked from main line Linux distributions like Red Hat, Debian etc. We can classify Linux distributions under the family of Red Hat, Debian, SUSE and so on. However, few distributions are independent and are created from Linux Kernel. Figure 7 illustrates the evolution of few major distributions along with the timeline. An updated list of the same is available from the Wikipedia Linux distribution page(http://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timel ine.svg).

 

Figure 7: Forking of Linux distributions and its timeline

 

There are nearly 1000+ Linux distributions available. For a user like us, it is extremely difficult to select a distribution. The following questions need to be considered before finalizing on a Linux distribution:

  • On what hardware type the Linux distribution is intended to install? Whether it is 32-bit or 64-bit architecture?
  • How skilled the user is with Linux?
  • Whether it is a server or desktop (operating system)?
  • What installation options are available (CD/DVD, USB drive, Network)?
  • Does the distribution support Indian languages?
  • What are the target user group and their needs for the distribution (office productivity, programming, multi-media)?
  • What policies does the distribution put on the software to be used by us?
  • How should users update and maintain their system?
  • Whether the user is intending to purchase a distribution or opt for free distribution?

In the next module, we will discuss few widely used distributions and see how to install them on a desktop computer. Almost all Linux distributions can be downloaded from the Internet. There are few distributions that are hardly sized 10 MB while the server line distributions may require 5-7 GB to download. In case of low speed internet, few distributions can be obtained by purchasing Linux magazines that ship with free CD/DVD or Linux books that may include a CD/DVD.

  1. Myths Surrounding Linux

Linux has been defamed by media since many years. Earlier it was criticized as a hobbyist project. Due to our tendency to resist change, many of us preferred using Microsoft Windows rather than Linux. However, the situations have changed, lot of schools have adopted Linux in their curriculum. If a secondary school child can learn Linux, why can’t we? The following are few false myths related to Linux due to which people have never tried using it:

  • Linux is difficult to install.
  • Linux is less secure and less reliable.
  • Linux does not have any help/manual.
  • Linux does not have a GUI.
  • There is no support for Linux.
  • Word, Excel, PowerPoint like utilities cannot be run on Linux.

As we proceed further through this course, we will notice that the above listed myths are false. Linux does have few drawbacks like fewer games are supported by Linux or the advancements in hardware is not quickly adopted by Linux. However, Linux is becoming a preferred operating system. Most of the scientific community and security professionals have started migrating to Linux. Linux has already proved itself in the server based operating system.

 

Summary

 

Let us summarize the key concepts covered in this module

  • Linux borrows heavily from the UNIX operating system.
  • Linux is a fully multitasking, multiuser operating system, with built-in networking and service processes known as daemons.
  • Linux is developed by various developers and their groups from all over the world, mostly collaborating over the Internet. Linus Torvalds heads the community.
  • Anyone can join the community and participate in the development of Linux, no formal qualifications are required, however, the person must be technically skilled and must have a desire to contribute.
  • A full Linux distribution consists of the kernel plus a number of other software tools for file-related operations, user management, office suite and software package management.

   Keywords

 

Bootloader, Daemons, Desktop Environment, GNU, GPL, Graphical Server, Kernel, Linux, Linux Community, Linux Distributions, MINIX, Multitasking, Multiuser, Operating system, Shell, UNIX

you can view video on Overview of GNU/Linux

References:

 

[1] “Comparison of Linux distributions,” Wikipedia, the free encyclopedia.22-Apr-2015.

[2] “DistroWatch.com: Put the fun back into computing. Use Linux, BSD.” [Online].Available: http://distrowatch.com/. [Accessed: 24-Apr-2015].

[3] Williams, Free as in Freedom [Paperback]: Richard Stallman’s Crusade for Free Software. O’Reilly Media, Inc., 2002.

[4] Williams, Free as in Freedom [Paperback]: Richard Stallman’s Crusade for Free Software. O’Reilly Media, Inc., 2002.

[5] Stallman, Free Software, Free Society: Selected Essays of Richard M. Stallman. Lulu.com, 2002.

[6] Torvalds and D. Diamond, Just for Fun: The Story of an Accidental Revolutionary. HarperCollins, 2002.

[7] Negus, Linux Bible 2010 Edition: Boot Up to Ubuntu, Fedora, KNOPPIX, Debian, openSUSE, and 13 Other Distributions. John Wiley & Sons, 2010.

[8] “Linux Devices | Info on Linux Devices.” [Online]. Available: http://www.linuxdevices.com/. [Accessed: 24-Apr-2015].

[9] “Linux distribution,” Wikipedia, the free encyclopedia. 23-Apr-2015.

[10] W. Smith, Linux Essentials. John Wiley & Sons, 2012.

[11] “List of Linux distributions,” Wikipedia, the free encyclopedia. 23-Apr-2015.

[12] Ingo, Open Life: The Philosophy of Open Source. Lulu.com, 2006.

[13] DiBona and S. Ockman, Open Sources: Voices from the Open Source Revolution. O’Reilly Media, Inc., 1999.

[14] Moody, Rebel Code: Linux And The Open Source Revolution. Basic Books, 2009.

[15]“Releases – Ubuntu Wiki.” [Online]. Available: https://wiki.ubuntu.com/Releases.

[Accessed: 25-Apr-2015].

[16] S. Raymond, The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O’Reilly Media, Inc., 2001.

[17] “The Complete Beginner’s Guide to Linux,” com | The source for Linux Information. [Online]. Available: https://www.linux.com/learn/tutorials/784060-the-complete-beginners-guide-to -linux. [Accessed: 24-Apr-2015].

[18] “The First Linux Announcement from Linus Torvalds,” The Linux Daily. [Online]. Available: http://www.thelinuxdaily.com/2010/04/the-first-linux-announcement-from-linus -torvalds/. [Accessed: 24-Apr-2015].

[19] Himanen, The Hacker Ethic. Random House, 2010.

[20] “The Linux Kernel Archives.” [Online]. Available: https://www.kernel.org/.

[Accessed: 24-Apr-2015].