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.