Operating System: Introduction
The operating system is the group of software that works together to operate the underlying hardware and provide an interface for user applications. User applications like media player, web browsers, Office Suite or others cannot directly access the computer hardware. It is the OS on which these applications depends to complete their job. In short, OS sits between the computer hardware and user applications.
We never truly use the Operating system, instead, we use applications to perform our work. Let’s say for example, we use Firefox for browsing internet, VLC player to play our media files, LibreOffice to perform our office work, ‘ls’ command to display directory listing, ‘ps’ command to display process status, etc. These are just bunch of examples, Operating System does a lot more.
Software that together constitutes to form an Operating system includes Kernel, Standard C Library, Compiler, Assembler, Shell, Text Editor, DE, etc. Of all these software, Kernel has the most importance.
Leading Operating Systems are: Linux based OS, Windows, Macintosh, Unix, Android
Kernel performs some key tasks in order for the computer to be operable at all. This Kernel is responsible for talking to computer hardware. Some of the key tasks that Kernel performs are Process Management, Memory Management, Device Management, File System Management, etc.
CPU is one of the most important hardware part which is responsible for the execution of all instructions. Instructions which come from the running processes. Multitasking OS facilitates the execution of multiple processes at the same time by taking advantage of the time-sharing concept. Since multiple processes are running, they will have so many instructions to be executed by the CPU in very less time. This Kernel manages these processes by using different CPU scheduling algorithms. Kernel lines up the processes for getting their instructions to be executed by the CPU and allocates time slices to them.
Kernel is also responsible for handling interrupts.
Every process that runs needs some space in main memory i.e. RAM. Storage space in RAM is limited and hence we need to properly manage the space of main memory. The kernel takes care of the memory management by implementing memory management algorithms. The kernel keeps the record of used and free main memory and allocates space to the processes from free memory as their need.
Every Physical device has its own hardware controller. Hardware controllers can stop, start, initialize or diagnose the device. The software that manages the hardware controller is called Device Driver. Device drivers are kept in the kernel as a module. Since drivers are kept as modules it is easy to add and remove functionality from Linux kernel as per requirement.
OS provides an interface to the users in order to interact with the OS. The interface can be CLI or GUI. A user gives instructions to the OS with the interface being provided.
When using Linux these days, the user is usually directed to GUI. GUI in Linux is provided by the “X Window System” or “X11” and “Wayland” (under development).
When in GUI you get a Desktop Environment (DE) like Gnome, KDE, XFCE, LXDE, Cinnamon, Enlightenment, etc and a mouse pointer to interact with it. DEs themselves are a group of software consisting of many entities like Display Manager, File Manager, Web Browser, Multimedia Player, Office Productivity Suite, Email Client, Photo Manager, System Preferences applications and much more.
Every Linux systems administrator has to use the CLI sooner or later. When GUI fails to start the user is presented with CLI only, so we need to be able to handle CLI for surviving in these circumstances.
When in CLI we get Shell to interact with the OS. There are many different types of shells available including bash, csh, tcsh, etc. In CLI we pass the input to the OS with a keyboard device and the output or error is displayed on screen. In order to perform some task in CLI we have specialized utilities which run in text mode and generate text mode output. When we want to use these utilities we type their name on shell prompt as commands. We frequently use certain utilities like: cd, ls, pwd, cp, mv, rm, touch, mkdir, etc
Linux is an operating system Kernel. Kernel alone is of no use unless it is packed together with other programs. Many companies and organizations tied together user space programs and Linux kernel to build what we know as “Linux Operating System”.
Operating systems with Linux kernel are also called “Linux Distributions” or “Linux Distros”. Some of the widely popular Linux Distros are: Debian, Red Hat Enterprise Linux, Fedora, Ubuntu, Slackware, SuSe, Mint, Arch, Gentoo.