In the simple language, Linux is an OS. We are already familiar with other operating systems like Microsoft Windows, Apple Mac, 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 the mid-90s. It can be used from wristwatches to supercomputers. It is everywhere in our mobiles, laptops, PCs and even in refrigerators. It is 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. It has following components:
The kernel is the core of the operating system. It establishes communication between devices and software. Moreover, it manages the system resources. Basically, it has 4 responsibilities:
Device Management: A system has many devices connected to it like CPU, the 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). Therefore 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 kernel has to manage is the memory management. Kernel tracks used and unused memory. It also makes sure that processes shouldn’t manipulate data of each other using virtual memory address.
Process Management: Process management deals with security and ownership information. In this, the kernel will assign enough time and gives priorities to processes before handling CPU to other processes.
- Handling System Calls: In this, a programmer can write a query or ask the kernel to perform a task.
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. Each kernel has a different set of system calls thus applications must know how to place a system call. The standard library of procedures is used to communicate with a kernel which is developed by programmers. All the operating systems support these standards and then these are transferred to system calls for that operating system. glibc (GNU C library) is the most well-known system library for Linux.
Linux 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.
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. It is a vital development tool which is used by the developers to produce a working application.
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 multimedia players, office suites, graphic design tools, browsers, etc.
Open Source Operating System
Most OS comes in a compiled format which means the main source code. It has to be 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 difficult task.
On the other hand, open source will be 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, change the code according to our use, redistribute its copies and distribute copies which are modified by us.
We can also say that Linux is an operating system which is "for the people, by the people".