Basically an operating system (OS) is a software system (collection of interdependent software code) on its own that allows multiple software applications (multi tasking OS) to use a single set of hardware components at the same time. When I say “allows multiple software applications to use a single set of hardware components” literally it means a single hardware can be used by multiple applications and it is the responsibility of the Operating System to manage how exclusively each application can use the hardware without creating any kind of chaos in the system.
For example you can run a VLC media player and a Windows media player at the same time with different songs. There is only one audio hardware through which the audio will be played and only one hard disk from where the two songs will be read. it is all happening because of the Operating system that is running on your system. Now that’s magic, which is done by the Operating System.
Some of the examples of applications include: a web browser, music player, word processor, e-mail client like outlook etc.
Types of Operating Systems based on number of users and tasks:
- Single user Single task
- Single user multitask
- Multi-user multitask
Why there is no Multi user single task OS?
When there are multiple users accessing a system at an instance, each user is using some Operating System services, say SSH service, which means multiple applications (multiple instances of SSH service) are already running. So, when we have multi user access to an OS then that is already a multi tasking system. A task is nothing but an application for an OS.
who is a user?
In most of the cases a human is a user to a system. Sometimes there are some bots that can also access an OS or a system to use some services and are also users to a system.
Single user Single task Operating System:
An OS that allows only one user and can run only one Application is called as a Single user Single task OS. DOS is such an example.
There can be many users registered on the same system but at an instance only one user can use the system. If another user wants to use the system, then the previous user has to log out.
Similarly there can be multiple applications present in the system but they cannot run simultaneously. One application has to complete then only another application can run.
Do we have this kind of Operating System now a days?
Yes, we have. The BIOS (Basic Input/Output System) of a computer system is managed by a DOS like OS where you don’t need multi user multi tasking.
Single user multitask Operating System:
An OS that allows multiple applications on the system at the same time but at an instance there can be only one user who can use the entire system.
No doubt that there can be many users registered on the system but no two users can use the system at the same time. If another user wants to use the system, then the previous user has to log out.
But one user can run multiple applications on the system.
Microsoft Windows XP is an example of single user multitask OS. At a time only one user can access the system but can run many application on the system like: Media Player, Browser, Word processor etc.
Multi-user multitask Operating System:
An OS that allows multiple users on a system and also multiple applications to run at the same time is called as a multi-user multitask Operating System.
A UNIX based OS like: FreeBSD, Linux OS X are examples of multi-user multitask OS.
Many users can be logged in to the same system by remote logins (via ssh or rsh etc.), and can obviously run multiple applications.
You might be thinking that a DOS command shell is similar to a UNIX shell but how the DOS is single task and UNIX shell is a multitask environment? Using the UNIX shell you can run tasks or processes in background which you cannot do in the DOS.
People say application programs usually require an operating system to function, which means an application cannot run on its own and it is dependent on an Operating system. But the fact is without an operating system there can be only one application that can use all the hardware components in a system. When you make that application to manage all operating system like functions it becomes the Operating System.
Lets discuss briefly of a system without an Operating System and a system with Operating System:
Think of a system where we don’t have an operating system but we have to write some software code that will make use of the system. Lets take this particular piece of software code as the only application running on the system. Now lets think that you need another similar application to run on the system, then you need another similar system with similar hardware components because the existing system cannot run two similar applications at the same time (without an OS), isn’t it!
If we will have an operating system on such a system which will enable us to run multiple applications on the same hardware. At the cost of an operating system, you have saved many hardware systems. Now that sound really cool!
Finally, why do we need an Operating System?
- An OS helps multiple applications running on a single system at the same time, which saves much time.
- As an OS virtualizes or shares a single hardware among different applications, hence we are saving more hardware resources by running an OS.
- We can have only single system even for multiple users. Again hardware resource saving because of on OS.
There are lot many advantages of using of an Operating System than not using one. I have just presented some of the advantages, but definitely there are more. Including these, of course there many things to cover in the topic of Operating Systems but its really hard to fit everything into a single article. But I will be writing many other posts after this to cover most of the things.
Operating system is a design oriented or most appropriately a program oriented topic and not at all theoretical concept. In many colleges I have seen that Operating System is covered by Lecturers in theoretical approach where as to understand Operating System and the services given by an OS you have to do practical programming on Operating System itself to understand how it really works and how are the services used by the different modules of OS.
Have a look around the Operating System concept topics in our website.