In this Linux tutorial, we are going to discuss all the basic things. If someone asked you what is Linux? In a simple way, you can say Linux is an operating system (OS). Nowadays almost 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 that is being popular.
An operating system is a software that enables the communication between computer hardware and software. It communicates the 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 it so deep. Linux is around us and being used since the mid-90s. It can be used from wristwatches to supercomputers. It is everywhere in our phones, laptops, PCs, cars, and even refrigerators. It is very much famous among developers and normal computer users.
So let’s start this Linux Tutorial:
Linux tutorial- Structure Of Linux Operating System
An operating system is a collection of software, each designed for a specific function. Linux OS has the following components:
The 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 a CPU, a memory device, sound cards, graphics cards, etc. A kernel stores all the data related to all the devices in the 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. The kernel has certain rules that have to be followed by all the devices.
Memory management: Another function that the kernel has to manage is memory management. The 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 addresses.
Process management: In the process, the management kernel assigns enough time and gives priorities to processes before handling the CPU to another 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 help 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 a standard library of procedures to communicate with the kernel. Each operating system supports these standards and then these are transferred to system calls for that operating system. The 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 the 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 toolchain. A toolchain is a vital development tool used by the developers to produce a working application. There are several tools that are 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. Some examples of end tools are graphic design tools, office suites, browsers (like Chrome), multimedia players, etc.
Linux tutorial- 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 that 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 the 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 another 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 the eighties, many organizations like IBM, HP, and a dozen other companies started creating their own Unix. It results in a mess of Unix dialects. Then in 1983, Richard Stallman developed the 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 systems 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 especially for his own PC as he wanted to use Unix 386 Intel computer but couldn’t afford it. He did it on MINIX using the 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 ‘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 is under GNU copyright. In 1992, he released the kernel under GNU General Public License.
Today, supercomputers, smartphones, desktop, web servers, tablets, 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.
Linux tutorial- Features:
- 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 than 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 supports different types of hardware.
- Security: It provides security in three ways namely authenticating (by assigning a 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 a 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 that gives a great advantage to the programmers as they can design their own custom operating systems.
- It gives you a lot of options of programs having some different features so you can choose according to your need.
- A global development community looks 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.
- It’s 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, the 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 contains a completely different coding developed by AT&T Labs.|
|Operating system||Linux is just the kernel.||Unix is a complete package of the Operating system.|
|Security||It provides higher security. Linux has about 60-100 viruses listed to 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 posts any kind of threat, developers from all over the world start working on it. And hence, it provides a faster solution.||In Unix, users have to wait for some time for the problem to be resolved.|
Linux tutorial- Distributions (Distros):
Other operating systems like Microsoft combine each bit of code internally and release it as a single package. You have to choose from one of the versions they offer.
But Linux is different from them. Different parts of Linux are developed by different organizations.
Different parts include the 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 it’s not an easy task seeking a lot of time and all the parts have 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 Tutorial Distributions List:
There are on average six hundred Linux distributors providing different features. Here, we’ll discuss 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 an easy graphical Linux desktop without the use of command line. It is the most well known Linux distribution. Ubuntu is the next version of Debian and easy to use for newbies. It comes with lots of pre-installed apps and easy to use repositories libraries. See Earlier, Ubuntu uses the 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.
Also Read- Step By Step Installation Of Ubuntu
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 were 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 existence since 1993 and releases its versions much slowly than Ubuntu and mint. This makes it one of the most stable Linux distributors. 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.
Also, Read– How to Install Debian 9 Stretch
4) Red Hat Enterprise/CentOS
Red hat is a commercial Linux distributor. Their products are red hat enterprise Linux (RHEL) and Fedora which are freely available. RHEL is well tested before release and supported until seven years after the release, whereas, Fedora provides a faster update and without any support.
The 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 makes it freely available. In other words, it is a free version of RHEL and provides a stable platform for a long time.
Also Read- Step By Step Install CentOS 7
It is a project that mainly focuses on free software and provides the latest version of the software. It doesn’t make its own desktop environment but used ‘upstream’ software. By default, it has the GNOME3 desktop environment. It is less stable but provides the latest stuff.
Choosing a Linux Distro
|Ubuntu||It works like Mac OS and easy to use.|
|Linux mint||It works like windows and should be used by newcomers.|
|Debian||It provides stability but not recommended to a new user.|
|Fedora||If you want to use a red hat and the 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 has announced that Linux kernel will not come under version 3.
Also Read- Ethical Hacking eBooks Free Download
This Linux tutorial was all about the basics of Linux OS. Do let me know if there is any error or correction. I hope you like the Linux tutorial article, if you like this article, then share it. If you have any questions about this article, please let us know by quoting it.