Overview of Linux

After going through this document you will have a basic overview of Linux and you will be able to –

  • Describe the history of Unix 
  • List the principles of Unix on which the OS runs 
  • Define General Public License (GNU) 
  • Explain the reasons of preferring Linux over other operating systems 

Linux is a freely distributed, multiuser, multitasking operating system that behaves like UNIX. 

UNIX is one of the most popular operating systems in the world. It was developed, in 1969, by Ken Thompson, Dennis Ritchie and others at AT&T. UNIX was one of the first multiuser and multitasking operating systems. (A multiuser operating system (OS) handles multiple users and multiple peripheral devices at a time. And, a multitasking OS enables a user to carry on multiple tasks at a time, like copying,  editing, and printing. 

Earlier, UNIX was released in various universities for academic research. Later, it was released for commercial purpose where each vendor came with an improved version of UNIX. Over a period, many versions of UNIX were introduced in the market, with each version more polished in terms of superiority, reliability, and speed. 

However, the commercial UNIX has certain limitations. Firstly, it is a big OS, which means it requires huge amount of memory. Secondly, it is expensive, especially for the PC version. This is where Linux comes in – Linux is small, fast, and inexpensive. 

UNIX Principles

The Kernel

In Unix (often spelt UNIX), the basic software controlling the hardware is known as the Kernel. The Kernel does all the difficult and nasty things like managing all the running processes (a name for a running program), the memory, the network connections, disks, tapes and virtually any bit of hardware on the computer. 

When you write a program in a computer language like Fortran or C, a ‘runtime library’ deals with the kernel allowing you to use nicer commands to get memory and write files in your language, like WRITE in Fortran or printf in C. 

Shells

A shell is a program, which allows you to run other programs. Although there are graphical shells for Unix, such as Gnome and KDE, they are not installed on the computing cluster. Most interaction is done through a traditional shell, which allows you to type commands into it to run other programs. A “command line interface” is harder to learn than a graphical shell, but much more efficient once you’ve got the hang of it. 

The standard astronomy shell is known as tcsh (Extended C- Shell, as it bears some resemblance to the C language), but other popular ones include: the standard sh (Also known as the Bourne Shell) and bash (The Bourne Again Shell). 

Files

In Unix, like in many environments, data are stored in things called files. A file contains data made up of a particular number of bytes. Each byte can hold a number between 0 and 255. Characters (like letters, numbers and symbols) are encoded as a particular number using ASCII encoding, although things are a bit more complex than this on modern systems. The letter `A’, for instance is stored as the number 65,`B’ is 66, and the lowercase ‘a’ is 97. 

Many files in Unix are stored as text; often data in a program are translated into text for saving and loading. Other files, such as those your programs could write, or programs themselves, are encoded such that you can load them back into memory. 

Directories

Files are stored on disk (which may be a CD-ROM or a disk in memory, like the /tmp file system). Files are organised in a “File System Hierarchy” or “Directory Tree” (it looks like a tree), which sounds a bit complex. A directory is a set of files with a name, which can also contain other directories. All the directories can be traced back to the root directory, “/”. 

In Unix, the layout of directories is largely historical and conventional. 

Permissions

Each file and each directory has an owner saying who has control of the file, and a group which can be several users, who also can have access to the file. The important files on the computer are owned by the user “root” who is your local friendly system administrator. Certain programs and files are restricted for use by root. 

Each file and directory has permissions saying whether the owner, group or any other users are allowed to read from, write to, or run the file (r, w and x permissions). Root can always do things to a file. “ls -l” lets you examine the ownership and permissions of a file, and chmod lets you modify the permissions if you own it. 

Processes

When you run a program, you load it into memory and it starts running as a “process”. Processes compete for the CPU time on the computer, according to their priority or “iceness”. Each process gets its own identification number (PID), which are recycled eventually. Processes are identified by this number in the “top” and “ps” process examination tools, and can be used to kill or stop the process with the “kill” command. 

When you start a process, it starts in the “oreground”, letting you type input into it and letting you see what its output is. Processes may also be started in the background, letting you carry on using the terminal (where you are typing into the shell).

The X Window System

X is a system for displaying graphical applications on Unix (and other) systems. An X server runs on your computer, and receives requests to open windows, draw windows, accept input, and so on from a client application (which is the program you are running). 

X is clever, because it doesn’t matter where the client application is running. You can run a program in Australia and have it appear on your screen, as if it were running on your local computer (with a bit of slowness). 

GPL - GNU General Public License

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License (GPL) is intended to guarantee your freedom to share and change free software – to make sure the software is free for all its users. This GPL applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs too. 

When we speak of free software, we are referring to freedom, not price. Our GPLs are designed to make sure that: 

  • You have the freedom to distribute copies of free software (and charge for this service, if you wish);
  • You receive source code; 
  • You can change the software or use pieces (modules) of it in new free programs. 

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you, if you distribute copies of the software, or if you modify it. 

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And, you must show them these terms, so they know their rights. 

We protect your rights with two steps: 

  1. Copyright the software; 
  2. Offer you this license which gives you legal permission to copy, distribute and/ or modify the software. 

Also, for each author’s protection and ours, we wish to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we would want its recipients to know that what they have is not the original; so that any problems introduced by others will not reflect on the original authors’ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we make it clear that any patent must be licensed for everyone’s free use or not licensed at all. 

Why Linux?

Linux Origins

Linus Torvalds developed Linux OS during his graduation at the University of Helsinky in Finland. He wrote a small PC-based implementation of UNIX and named it Linux. Linus made the source code freely available on the Internet and encouraged other programmers to develop it further. Linux continues to be developed by a worldwide team. 

Linux is written in C language and is portable. It provides a graphical interface that makes the Linux system user friendly. 

Features of Linux

With several operating systems available in the market, why should one opt for the Linux OS? The reasons are obvious. The Linux OS contains several features that distinguish it from other operating systems.  

The features of Linux OS are as follows: 

  1. Multitasking: Like UNIX, Linux systems support multitasking where multiple tasks run in the background. 
  2. Hardware Support: Linux supports nearly all hardware architectures and devices, with best support for legacy hardware. 
  3. Virtual Memory: Linux uses a portion of the hard disk as virtual memory, which increases the efficiency of the system by keeping active processes in RAM and placing less frequently used or inactive portions of memory on the disk. 
  4. The X System: The X system is a set of programs that provide graphical interface across different platforms. 
  5. Built-in Networking Support: Linux has a built-in network support. It uses the standard TCP/IP protocol, Network File System (NFS), Network Information Service (NIS), and Session Message Block (SMB) to perform networking. 
  6. Shared Libraries: Linux uses dynamically shared libraries extensively. Dynamically shared libraries use a common library section for many different applications, thereby reducing the size of each application. 
  7. Memory Efficiency: To enable you to work with large memory requirements when only small amount of RAM is available, Linux supports swap space. The Linux kernel also supports demand paging, which means that only sections of a program that are necessary are read into RAM. 

Advantages of Linux

There are several advantages to using a Linux operating system. They are as follows: 

  1. Free Software Foundation: Free Software Foundation (FSF) developed GNU (Gnu’s Not Unix) to provide royalty free software to programmers and developers. Linux includes many GNU utilities like various languages (C, C++, FORTRAN, Pascal, Ada, BASIC and Smalltalk), compilers, debuggers, text processors and print utilities. Most of the Linux compilers, tools, debuggers, assemblers, linkers, loaders and editors are provided by the FSF. 
  2. Upgradation – Linux OS can easily be upgraded. 
  3. Forward Compatibility – Linux supports forward compatibility. New hardware is introduced every year. 

After going through this document you will get a overview of Linux.

Leave a Comment

Your email address will not be published. Required fields are marked *