What is Linux?
In this 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 functions of an operating system. Although, it performs many other important tasks, let’s not talk about that.
Linux is around us since mid 90’s. It can be used from wristwatches to supercomputers. It is everywhere in our Phones, Laptops, PC’s cars and even in refrigerators.It is very much famous among the developers and normal computers 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: A 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, a memory device. Sound cards, graphic cards, etc. A kernel stores all the data related to all the devices in the device driver. 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 Kernel has to manage is the memory management. The kernel keeps a track of used and unused memory and makes sure that processes shouldn’t manipulate data of each other using virtual memory address.
- Process Management: In Process management, the kernel assigns the enough time and gives priorities to processes before handling CPU to other processes. 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.
- 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. Most well-known system library for Linux is Glibc (GNU C library).
- System Tools: Linux OS has a set of utility tools which are usually simple commands. It is a software which GNU project was written and publishes under their open source license. So that software is freely available to everyone. With help of commands, you can access your files, edit and manipulate data in your directories or files, change the location of files or anything.
- 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. Atool chain is a vital development tool 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 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 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 redistribute its copies and freedom to distribute copies which are modified by us.