Hardware and software communicate all the time. Every time you turn on a video game, your hardware starts working, ramping up, while you enjoy your game. There are various processes that tell the hardware what to do, what to render and how to give you the best experience ever.
But, you do know that not all games are able to run on all operating systems. Why is that? Well, operating systems are different and they go about doing similar things in their own way, which is system dependent.
Some would go as far as asking, what is an operating system? This is a valid question so here is an easy to understand explanation.
What Is an Operating System?
Operating systems are aplenty, from Windows versions to MacOS to various Linux distributions to Unix-like systems like FreeBSD.
Operating systems are system software. System software are platforms for other software. They bridge the gap between the user, software that runs on an operating system and hardware.
Operating systems manage hardware, resources, and it provides common services for computer programs to run. It helps software with which the user interacts communicate to the hardware and tell it what to do.
What Type of Operating Systems Are There?
The obvious answer is Unix, Unix-like, Linux, MacOS, Windows, but these are just names for systems, not really a classification.
Systems can be single and multi-tasking. A single-tasking system can execute only a single task at a time. Almost all modern systems are multitasking.
A system can also be single and multi-user. The former has no concept of administration and is meant to accommodate any user. The multi-user system can have various degrees of administration and privileges, depending on the use case. Most systems are multi-user.
Distributed operating systems appear to be one computer but actually manage multiple processors and graphics accelerators. These are typically used in high-performance computing, especially when it includes servers and remote computing.
Templated systems are related to distributed, but they differ because they run virtual machines and can run multiple virtual images. This is used for virtualization and cloud computing.
Embedded systems are small and meant to be used on a single machine, usually being able to run with little to no resources. An example would be a washing machine computer.
Real-time operating systems do work in real-time. They can have many of the above mentioned characteristics. Multitasking systems are interesting in the way that they achieve multitasking. A type of scheduling combined with clock interruption is used, so that more tasks are executed at the same time.
Operating systems are interesting and can change the way you interact with your computer and the way you do your daily tasks. Hopefully, now they are easier to understand.