People have long debated which is the best operating system for developers.

In order for us to answer this question, we first need to understand a few things, like:

  • What is an operating system?
  • The history of operating systems
  • How an operating system works
  • Types and examples of operating systems
  • What an operating system does
  • Why you need an operating system

Once we've answered these questions, you'll hopefully be able to choose the right operating system for your needs and understand the basics about how an operating system works.

What is an Operating System?

These days, almost everyone uses some sort of electronic device, whether it's a phone, laptop, tablet, or desktop.

All of these devices have one thing in common: they use an Operating System (OS) to enable their functionality. But not many people really understand how an OS is structured.

So, what is an OS? we can define it as software that manages computer hardware and software resources and provides common services for computer programs.

In simpler terms, we can say that an OS is an interface between the user and the machine.

Now that we know what an OS is, let's go a step further and see how they were developed, how they work, and why you need one.

History and Evolution of Operating Systems

Here is a quick fact: the first computers did not have an operating system.

Programs that were running on these computers had to include all the code needed to run on the computer, communicate with the connected hardware, and perform the calculations that the program had to perform. This made even the simplest programs very complex.

Due to these challenges, owners of the central machines began to develop software that facilitated the writing and execution of programs. This is when the first operating systems were created.

The first OS was created in 1956 by General Motors to run a single IBM central computer. Later in the 1960s IBM started manufacturing and distributing operating systems.

The first version of Unix was developed in the 60s, written in the C programming language. It was readily available, so it became widely used and accepted in the market.

Many modern computer operating systems today (including Apple OS X and different versions of Linux) rely on the Unix OS.

Microsoft windows was first developed after as an OS that could run on personal computers. It's first model was called MS-DOS and it was built in 1981. It was a modification of a Seattle Computer Products system that was updated to meet IBM requirements.

Today Apple, OS X, Windows and various forms of Linux dominate the market of the modern Operating System.

How an Operating System Works

Take this scenario: if you were to travel to a place that you had never been to before, where they speak a different language that you don't know, what would you need to help communicate with the local people?

Well, you guessed it right – you'd need a translator. Now that's what an OS does in your computer. It converts the binary input into a human understandable language.

Without an OS, every program would need a means to handle all computer components and hardware.

This means that it would need a method to accept user input using a keyboard and mouse, print documents, read and write on storage devices, keep track of time, send output to other screens and even communicate across a network.

This would cause every single program to be very complex and heavy.

That's why one of the main purpose of an OS is to organize and control hardware and software so that the device it lives in behaves in a flexible but predictable way.

So what are the different types of operating systems and how do they work?

Types of Operating Systems

Since the very first operating system was made, they have kept evolving over time to accommodate more and more tasks. Let’s take a look at some of the most common types of operating systems in use today.

  1. Realtime Operating System

This type of OS gives the maximum time for each of the critical operations that it performs. As a result, the operating system has to guarantee that the events will be processed in a given time.

Some of these systems might allow multi-tasking, but they have special algorithms in place for scheduling. These ensure that the OS switches tasks according to their priorities so that the deadlines are met for every task.

Examples of Realtime operating systems include: air traffic control systems, weapons control systems, industrial control systems, and control machinery.

  1. Multiprogramming Operating System

These operating systems are sometimes referred to as multitasking operating systems because they allow two or more processes to run simultaneously. This means that data from two or more processes can be held in the primary memory at any given time.

The main goal in multiprogramming operating systems is to improve resource utilization and system throughput. They acheive this by organizing the computing jobs in a manner that ensures that the CPU always has a job to execute at any one time.

  1. Batch Operating System

In batch operating systems, the user prepares the job and submits it to a computer operator in form of a device like a card or tape. The computer operator then groups the jobs according to their computing requirements and executes them in batches to ensure a faster processing speed.

Some problems associated with these operating systems include the lack of interaction between the user and the computer, difficulty in prioritizing tasks based on their urgency, and high CPU idle time caused by the low speed of the mechanical input and output devices.

  1. Time Sharing Operating System

These operating systems are very similar to Multiprogramming batch systems. But these are unique because they're designed to accommodate multiple users. This means that multiple users can use the same computer resources.

  1. Distributed Operating System

Distributed operating systems use powerful microprocessors that take advantage of advances in communication technology.

These processors pull together groups of distinct computers and make them function as one single computer. Distributed operating systems also ensure that there is a lighter load on the host machine even when performing heavy computations.

Examples of Operating Systems

There are many operating systems out there today. Different tech companies have made different systems to meet their customer's demands with different features.

And some of them are more popular than others. Below is a list of the most popular computer and smartphone operating systems.

Computer Operating Systems

Microsoft Windows - many people have used the Windows operating system at some point. At the momemt, Windows 11 is the latest release version, while older versions include: Windows 10, 8.1, 8, 7, Windows Vista, Windows XP and Windows 2000.

Mac OS - developed by Apple for Apple computers. It comes pre-installed in all Macintosh computers.

Linux - designed for people who know their way around computer hardware and software. Its distributions include Ubuntu, Parrot, Debian, Linux Mint, Fedora, Kali Linux, and more.

Others
Chrome OS, Android

Smartphone Operating Systems

Just like computers, smartphones have their own operating systems with as many features as computers.

Some of the most popular smart phone operating systems include Android, Apple iOS, Windows Mobile, Blackberry OS, Palm OS, and Symbian OS.

What Do Operating Systems Do?

The main reason we have OSs is to help us complete various computing tasks. While some people might argue that operating systems should do more, as you'll see they handle a lot already.

Here are some of the primary functions of an operating system:

Processor Management

Operating systems perform processor management, also called process scheduling. Processor management involves:

  • Ensuring that each process and application receives enough of the processor's time.
  • Keeping track of the status of processes.

Memory Management

Operating systems also manage a computer's Primary Memory or Main Memory. An Operating System performs the following functions for memory management:

  • It allocates the memory to a process when the process requests it and deallocates the memory when the process has terminated.
  • It keeps tracks of primary memory.

Device Management

An OS manages devices via their respective drivers and performs the following tasks for device management:

  • Keeps tracks of all devices connected to a system.
  • Designates a program responsible for every device known as the Input/Output controller.
  • Decides which process gets access to a certain device and for how long.
  • Allocates devices in an effective and efficient way and deallocates devices when they are no longer required.

File Management

An Operating System carries out the following file management activities:

  • It keeps track of where information is stored
  • It manages user access settings, the status of every file, and much more. These facilities are collectively known as the file system.

Job Scheduling

The operating system determines the jobs/tasks that need to be processed first and ensures that these tasks are completed. It also keeps track of the time and resources used by various tasks and users.

Error Handling

Operating systems monitor any errors that happen and perform error checks on both hardware and software.

Advantages of Operating Systems

There are lots of benefits of using an operating system, some of which we've touched on briefly here. But let's look at some other reasons why an OS is crucial:

  1. Resource Sharing - operating systms provide an opportunity to share resources with other users. Resources include: files, such as videos, images and apps, printers, modems, and more.
  2. Security - It is the responsibility of an OS to make sure all the data present is secure.
  3. User Friendly - The interface provided by the GUI is much more user friendly compared to a command line interface. It comes with various symbols, buttons, menus and other graphical representations which all make them easily understandable. As a result, users can interact and communicate with the machine easily.
  4. Multitasking - By using an operating system, users can perform different tasks simultaneously. There is no need to close one window to open another.

Disadvantages of Operating Systems

But it's not all positive. Like anything else, there are some downsides to operating systems as well:

  1. Cost - Unless it is an open source operating system, most OSs are considered to be expensive. Even though users can choose free versions of them, they typically have limited features.
  2. Virus Attacks - The risk of viruses is always higher in an operating system. Sometimes users can unknowingly download malicious programs, visit malicious websites, or open virus-containing email attachments – all which can make a computer vulnerable to viruses.
  3. Complexity - The languages used to develop the OS are more complex for people without programming knowledge. So you can't always quickly resolve problems in the OS just by looking.
  4. System Failure - An operating system is the heart of the computer system. And if, due to any reason, it stops functioning, then the whole system will crash.

How to Choose an Operating System

Now that we have seen what an operating system is and have learned how it works along with its strengthes and weaknesses, let's see what to keep in mind when choosing an OS:

  1. Hardware Configuration
    You'll want to make sure that you'll have access to the software that you use in service delivery. You just need the software that will help you deliver your services. Pick the operating system that has everything that you need with full support and updates.

  2. Cost and support
    You will need to make sure that the price range is within your budget. Mac generally costs more than most of the others. It is possible to get a cheaper or free OS that effectively serves every purpose you'll need it to serve.

  3. User friendliness or human computer interface: Think about the user interface offered by the different operating systems. That is, is it command line-based, menu driven, or graphical user interface based?

Wrap Up

So let's get back to that big question we asked at the beginning: what's the most popular operating system?

According to the latest Stack Overflow survey, over 80,000 developers were asked that same question. And they said that Windows is the most widely used OS.
screenshot-insights.stackoverflow.com-2021.08.30-16_47_04

Now, which OS do you use on your phone or computer? I use Windows on PC and Android on my phone.

Thanks for reading, and enjoy coding ❤.