What Is Linux
In this Linux tutorial we are going to discuss all the basic things. If someone asked you what is Linux? In the simple way you can say Linux is an operating system (OS). Nowadays almost we all are familiar with other operating systems like Microsoft windows, Apple Mac OS, iOS, Google android, etc, just like them Linux is also an operating system which is being popular.
An operating system is a software that enables communication between computer hardware and software. It communicate input to get processed by the processor and brings output to the hardware to display it to the users. This is the basic function of an operating system. Albeit, it performs many more other important tasks, let’s not talk about in so deep :).
Linux is around us and being use since mid 90s. It can be used from wristwatches to supercomputers. It is everywhere in our phones, laptops, PCs, cars and even in refrigerators.It is very much famous among the developers and normal computer users.
So lets start this Linux tutorial 🙂
Structure Of Linux Operating System
An operating system is a collection of software, each designed for a specific function.
Linux OS has following components:
Kernel is the core of the operating system. It establishes communication between devices and software. Additionally, it manages the system resources. Fundamentally it has four responsibilities:
- Device management: A system has many devices connected to it like CPU, memory device, sound cards, graphic cards, etc. A kernel stores all the data related to all the devices in device driver (without this kernel won’t be able to control the devices). Thus kernel knows what a device can do and how to manipulate it to bring out the best performance. It also manages communication between all the devices. Kernel has certain rules that has to be followed by all the devices.
- Memory management: Another function that kernel has to manage that is memory management. Kernel keeps a track of used and unused memory resources and makes sure that processes shouldn’t manipulate data of each other using virtual memory address.
- Process management: In process management kernel assign enough time and gives priorities to processes before handling CPU to other process. It also deals with security and ownership information.
- Handling system calls: Handling system calls means a programmer can write a query or ask the kernel to perform a certain task.
2) System Libraries
System libraries are special programs that helps in accessing the kernel’s features. A kernel has to be triggered to perform a task and this triggering is done by the applications. But applications must know how to place a system call because each kernel has a different set of system calls. Programmers have developed standard library of procedures to communicate with kernel. Each operating system supports these standards and then these are transferred to system calls for that operating system.
Most well known system library for Linux is glibc (GNU C library).
3) System Tools
Linux OS has a set of utility tools which are usually simple commands. It is a software which GNU project has written and publish under their open source license so that software is freely available to everyone.
With the help of commands you can access your files, edit and manipulate data in your directories or files, change location of files or anything.
4) Development Tools
With the above three components your OS is running and working. But to update your system you have additional tools and libraries. These additional tools and libraries are written by the programmers and are called tool chain. A tool chain is a vital development tool used by the developers to produce a working application. There are several tool which is not possible to explain/mention in this linux tutorial.
5) End User Tools
These end tools make a system unique for a user. End tools are not required for the operating system but are necessary for a user.
Open Source Operating System
Most OS come in a compiled format means the main source code has run through a program called compiler that translates the source code into a language which is known to the computer.
Modifying this compiled code is really a tough job.
On the other hand, open source is completely different. The source code is included with the compiled version and allows modification by anyone having some knowledge. It gives us freedom to run the program, freedom to change the code according to our use, freedom to redistribute its copies and freedom to distribute copies which are modified by us.
In short, Linux is an operating system that is “for the people, by the people” :).
Evolution of Computer
In earlier days, computers were as big as houses or parks. So you can imagine how difficult it was to operate them. Moreover, every computer has a different operating system which made it completely worse to operate on them. Every software was designed for a specific purpose and was unable to operate on other computer. It was extremely costly and normal people neither can afford it nor can understand it.
Evolution of Unix
In 1969, a team of developers of Bell Labs started a project to make a common software for all the computers and named it as ‘Unix’. It was simple and elegant, used ‘C’ language instead of assembly language and its code was recyclable. As it was recyclable, a part of its code now commonly called ‘kernel’ was used to develop the operating system and other functions and could be used on different systems. Also its source code was open source.
Initially, Unix was only found in large organizations like government, university, or larger financial corporations with mainframes and minicomputers (PC is a microcomputer).
In eighties, many organizations like IBM, HP and dozen other companies started creating their own Unix. It result in a mess of Unix dialects. Then in 1983, Richard Stallman developed GNU project with the goal to make it freely available Unix like operating system and to be used by everyone. But his project failed in gaining popularity. Many other Unix like operating system came into existence but none of them was able to gain popularity.
Evolution of Linux
In 1991, Linus Torvalds a student at the university of Helsinki, Finland, thought to have a freely available academic version of Unix started writing its own code. Later this project became the Linux kernel. He wrote this program specially for his own PC as he wanted to use Unix 386 Intel computer but couldn’t afford it. He did it on MINIX using GNU C compiler. GNU C compiler is still the main choice to compile Linux code but other compilers are also used like Intel C compiler.
He started it just for fun but ended up with such a large project. Firstly he wanted to name it as ‘Freax’ but later it became ‘Linux’.
He published the Linux kernel under his own license and was restricted to use as commercially. Linux uses most of its tools from GNU software and are under GNU copyright. In 1992, he released the kernel under GNU General Public License.
Today, supercomputers, smart phones, desktop, web servers, tablet, laptops and home appliances like washing machines, DVD players, routers, modems, cars, refrigerators, etc use Linux OS. Following this linux tutorial we are going to learn some features below.
- Multiuser capability: Multiple users can access the same system resources like memory, hard disk, etc. But they have to use different terminals to operate.
- Multitasking: More then one function can be performed simultaneously by dividing the CPU time intelligently.
- 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.
- 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).
- Live CD/USB: Almost all Linux distros provide live CD/USB so that users can run/try it without installing it.
- Graphical User Interface (X Window system): Linux is command line based OS but it can be converted to GUI based by installing packages.
- Support’s customized keyboard: As it is used worldwide, hence supports different languages keyboards.
- Application support: It has its own software repository from where users can download and install many applications.
- File System: Provides hierarchical file system in which files and directories are arranged.
- Open Source: Linux code is freely available to all and is a community based development project.
Why Use Linux
Linux is completely different from other operating systems in many ways.
- It is an open source OS which gives a great advantage to the programmers as they can design their own custom operating systems.
- It gives you a lot of option of programs having some different features so you can choose according to your need.
- A global development community look at different ways to enhance its security, hence it is highly secured and robust so you don’t need an anti virus to scan it regularly. Companies like Google, Amazon and Facebook use linux in order to protect their servers as it is highly reliable and stable.
- Above all you don’t have to pay for software and server licensing to install Linux, its absolutely free and you can install it on as many computers as you want.
- Its completely trouble free operating system and don’t have an issue with viruses, malware and slowing down your computer.
Unix Vs Linux
Today Linux is in great demand. You can see the use of Linux everywhere. It’s dominating on our servers, desktop, smartphones and even used in some electrical devices like refrigerators.
Some people think Unix and Linux as synonyms, but that’s not true. Many operating systems were developed to be like Unix but none of them got the popularity as Linux. Linux is the clone of Unix. It has several features similar to Unix, still have some key differences. Before Linux and Windows, computer world was dominated by Unix. Unix is a copyrighted name and IBM AIX, HP-UX and Sun Solaris are only Unix operating system remained till date.
Difference between Linux and 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.|
Linux Distributions (Distros)
Other operating systems like Microsoft combine each bit of codes internally and release it as a single package. You have to choose from one of the version they offer.
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. If you want you can access the codes of all these parts and assemble them yourself. But its not an easy task seeking a lot of time and all the parts has to be assembled correctly in order to work properly.
From here on distribution (also called as distros) comes into the picture. They assemble all these parts for us and give us a compiled operating system of Linux to install and use.
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.
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. See
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.
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.
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.
Choosing a Linux Distro
|Distribution||Why To Use|
|Ubuntu||It works like Mac OS and easy to use. See how to install Ubuntu on desktop computer|
|Linux mint||It works like windows and should be use by new comers.|
|Debian||It provides stability but not recommended to a new user.|
|Fedora||If you want to use red hat and latest software.|
|Red hat enterprise||To be used commercially.|
|CentOS||If you want to use red hat but without its trademark.|
|OpenSUSE||It works same as Fedora but slightly older and more stable.|
|Arch Linux||It is not for the beginners because every package has to be installed by yourself.|
Linus Torvalds has given linux kernel license to GNU General Public License (GPL) version 2. GNU make sure that any software source code licensed under it have to make originating source code open and freely available to all its users. Here, freely doesn’t mean by cost but it means that it is freely available to users to distribute and modify the code.
There is the third version of GNU, GNU Lesser General Public License (LGPL) version 3. But it imposes some more permissions on the license. Torvalds doesn’t like some provisions in version 3 and have announced that linux kernel will not come under version 3.
This Linux tutorial was all about the basic of Linux OS. Do let me know if there is any error or correction 🙂