Linux is one of popular version of UNIX operating System. It is open source as its source code is freely available. It is free to use. Linux was designed considering UNIX compatibility. Its functionality list is quite similar to that of UNIX.
Components of Linux System
Linux Operating System has primarily three components
Kernel − Kernel is the core part of Linux. It is responsible for all major activities of this operating system. It consists of various modules and it interacts directly with the underlying hardware. Kernel provides the required abstraction to hide low level hardware details to system or application programs.
System Library − System libraries are special functions or programs using which application programs or system utilities accesses Kernel's features. These libraries implement most of the functionalities of the operating system and do not requires kernel module's code access rights.
System Utility − System Utility programs are responsible to do specialized, individual level tasks.
Kernel Mode vs User Mode
Kernel component code executes in a special privileged mode called kernel mode with full access to all resources of the computer. This code represents a single process, executes in single address space and do not require any context switch and hence is very efficient and fast. Kernel runs each processes and provides system services to processes, provides protected access to hardware to processes.
Support code which is not required to run in kernel mode is in System Library. User programs and other system programs works in User Mode which has no access to system hardware and kernel code. User programs/ utilities use System libraries to access Kernel functions to get system's low level tasks.
Following are some of the important features of Linux Operating System.
Portable − Portability means software can works on different types of hardware in same way. Linux kernel and application programs supports their installation on any kind of hardware platform.
Open Source − Linux source code is freely available and it is community based development project. Multiple teams work in collaboration to enhance the capability of Linux operating system and it is continuously evolving.
Multi-User − Linux is a multiuser system means multiple users can access system resources like memory/ ram/ application programs at same time.
Multiprogramming − Linux is a multiprogramming system means multiple applications can run at same time.
Hierarchical File System − Linux provides a standard file structure in which system files/ user files are arranged.
Shell − Linux provides a special interpreter program which can be used to execute commands of the operating system. It can be used to do various types of operations, call application programs. etc.
Security − Linux provides user security using authentication features like password protection/ controlled access to specific files/ encryption of data.
The following illustration shows the architecture of a Linux system −
The architecture of a Linux System consists of the following layers −
Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/ CPU etc).
Kernel − It is the core component of Operating System, interacts directly with hardware, provides low level services to upper layer components.
Shell − An interface to kernel, hiding complexity of kernel's functions from users. The shell takes commands from the user and executes kernel's functions.
Utilities − Utility programs that provide the user most of the functionalities of an operating systems.
Advantages of Linux operating system
Linux is an open-source OS that means anyone can see the source code and change it according to his needs. You can freely install Linux on many computers without getting paid license. If we compare this with windows or mac then they are paid operating systems. You have to get license of windows and mac to use on your machine.
No anti-virus software needed:-
In Linux, you do not need anti-virus software to be installed on your PC. Linux has fewer chances to be affected with virus. The reason for strong virus protection is that Linux has large number of open source developers which keeps an eye on virus-related stuff. If any source code needs to be updated then it is done in no time.
Linux has a vast range of text editors available. If you are a programmer then you can pick any of free software packages like visual studio code, Vim, Atom etc. Most of text editors are freely available and you can use it without any issue.
Powerful command prompt:-
Command prompt in Linux is very advanced and if you are developer then you can perform most of your work using the command-line interface. You can install different repositories and packages through the command-line interface.
No reboot needed:-
If you are windows user then you have seen system reboot while you install/uninstall any software or rebooting when the system becomes slow. But in case of Linux, you do not need to reboot your system in such cases.
Low system specifications:-
If you have an old computer that has low specification then you can still run Linux. Linux has different distributions that are available for all types of computers e.g. large scale computers, servers, Pc etc.
Good at multitasking:-
If you want to do some batch works like printing a large file or downloading large file then you can concurrently perform other tasks like typing or coding any program. Linux is good in doing such multitasking and your system will not slow down.
Less disk space needed:-
If you have limited disk space then you can still run Linux. You do not need extra disk space for running Linux for a longer time.
Linux supports a large number of file formats. So you have to not worry if any file format does not run on Linux. You can install different software packages for specific file format and it will work fine.
Disadvantages of Linux operating system
One of the issues that most Linux users face is that some hardware drivers are not available for Linux. Hardware companies prefer to make drivers for windows or mac because they have more users as compared to Linux.
Getting started with windows is easy for beginners but learning Linux is difficult. You have to learn about the command-line interface and searching for new software is also little bit difficult. If you face any problem in the operating system then finding solution is problematic. There are fewer experts for Linux as compared to windows and mac.
Take an example of Photoshop which is a popular graphic editing tool. Photoshop is available for windows but is not present in Linux. There are other photo editing tools but Photoshop is a more powerful tool than others. MS office is another example which is not available for Linux users.
Most of the games are made for windows but not Linux. As windows platform is widely used so game developers have more interest in windows.
Examples of Linux operating system
Some of Linux distributions are below:-
The Tech Platform