In the simple language Linux is an operating system (OS). 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.
An operating system is a software that enables communication between computer hardware and software. It conveys input to get processed by the processor and brings output to the hardware to display it. This is the basic function of an operating system. Although, it performs many other important tasks, let’s not talk about that.
Linux is around us 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.
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. Moreover, it manages the system resources. Basically 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 is the memory management. Kernel keeps a track of used and unused memory and make 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 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.
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, multimedia players, etc.
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”.