In the simplest of words, Linux is an operating system (OS) just like Microsoft Windows, Ubuntu, iOS, Google android, Apple Mac OS etc.
An operating system often referred as OS is low level software that supports computer’s basic functionality. It manages computer’s hardware and software and allows the communication between them. It carries the input to the processor to get it processed and brings the processed output to the hardware for it to display on. This is the most basic function of an operating system amongst many other important tasks. Without an OS, the software wouldn’t work.
Linus Torvalds launched Linux on September 17, 1991 and is used worldwide ever since. Linux is used everywhere right from wristwatches, phones, laptops, PCs, cars, refrigerators to supercomputers. Developers and many normal users prefer to use Linux as it was and still is one of the most secure, reliable and worry free OS available in the market.
Structure Of Linux Operating System
In an operating system, each software is designed for a specific function. When it comes to Linux OS, it has following components:
The core of Linux OS is called kernel and is responsible for establishing the communication between devices and software. It directly interacts with the hardware and manages the system resources. There are two types of kernel: Monolithic kernel and Micro kernel. Following are the responsibilities of a kernel:
- Device Management: One of the main responsibilities of kernel is device management. Many devices are connected in a system like CPU, memory device, keyboard, sound cards, graphic cards, etc. Any data related to any device is stored in device drivers by kernel as it is necessary to control the devices. With all the data in place, kernel knows the functioning of every device and manipulates it accordingly to bring out their best performance. Kernel has its own set of rules which must be followed by the devices as it also manages the communication between them.
- Memory management: Kernel has the responsibility of managing the memory. It keeps a detailed track of all the used and unused memory and makes sure that the processes are not manipulating any data of others using virtual memory address.
- Process management: Kernel gives priority to processes according to which they will receive the CPU handling and assigns enough time for each process to complete its task. It also handles the security and ownership of the information.
- Handling system calls: By handling system calls, it means a programmer can specifically write a command to ask the kernel to perform a certain task.
In order to access kernel’s functions, one must use some special programs known as system libraries. A kernel needs to be triggered by the applications so that it can perform a task. Each kernel consists of a different set of system calls, so the applications must know how to initiate a system call. Programmers have developed a standard library of all the procedures needed to communicate with kernel. Each OS supports these standard libraries and then these are used while placing the system calls in that operating system. glibc (GNU C) is the most well known standard system library for Linux.
Linux OS comes with a set of utility tools that are nothing else but simple commands. GNU project has published this software under their open source license so that it is available to everyone for free.
This set of commands helps you access your files, edit data in your directories or files, and change files location or anything.
The above three components makes your OS working, but in order to update your system you need additional tools and libraries. Programmers have generated many additional tools and libraries known as tool chain. It is used to develop working applications by the developers.
End User Tools
The end tools are not necessary for the os but for users as it make a system unique. Browsers, graphic design tools, multimedia player, office suites are some examples of end.
Open Source Operating System
Linux is known as “for the people, by the people” OS as it is an open source OS. Most of the OS comes in a compiled format which simply means that the main source code has already run through a program called compiler which translates the source code into a machine language understood by the computer. And to modify this compiled code is no easy task. Thus, open source OS are the saviors as it comes with the original source code along with the compiled code. With a little knowledge, one can easily modify the source code according to our use and distribute its copies.