An operating system is a pile of software that controls computer hardware. The operating system provides us with a computing environment so that we can easily execute various application programs.
The computer operating system acts as an intermediary of the computer's hardware with a user.
We currently have a wide range of operating systems in the digital lifestyle, including a variety of IoT devices, personal computers, smartphones, enterprise computers, and the cloud computing environment.
Since the work of the operating system involves hardware, to understand the role of the operating system we must first have some idea about the work of the hardware. Such as CPU, Memory, I \ O devices, and Storage.
An important function of the operating system is to distribute these hardware resources between different programs so that the computer user can perform his needs through those programs.
We can generally divide a computer system into four parts according to the type of work and use. Such as – Hardware, Operating System, application programs, and User.
1. Hardware :
The hardware consists of different types of physical computing resources, such as CPU, Memory, Storage, I / O devices, and more.
2. Application Programs :
MS Word, Adobe Photoshop, Compiler etc.
3. Operating System:
The operating system controls the hardware and creates an appropriate computing environment to execute application programs.
4. User :
A user solves his problem through an application program mediated by the operating system.
We are all already familiar with one or the other operating system, be it Windows, Linux, FreeBSD, or OS X.
The program by which the user interacts with the computer can be text-based called the shell or graphics-based called GUI (Graphical User Interface).
Most computers have two operation modes, such as kernel mode and user mode. The operating system runs in kernel mode (also called supervisor mode) and the rest of the software runs in user mode.
The user interface program, shell or GUI make heavy use of the operating system and allows user to operate application programs.
Operating systems perform two main essentials jobs. One is providing a compatible abstraction layer for application programmers to run their programs and another is managing the hardware resources.
Operating System Abstraction Layer (OSAL) provides a generic interface to hardware services. Such a disk driver that controls a specific disk drive to intercommunicate with other parts of the computer and provides an interface to read and write disk blocks. The same way operating systems provides suitable drivers for controlling all of I/O devices at the abstraction layer phase.
So we can say that the application programs establish a relationship with the operating system through the abstractions layer. The end-users can communicate with the operating system with the help of the application program's user-interface, either a text-based command-line shell or a graphical interface(GUI).
Now there are different types of operating systems in which application programs are providing different looking interface but underlying operating system abstractions are the same in all cases.