Developers have long debated what is the best operating system.
Now, if you are active on social media platforms and developer forums you might have come across Twitter polls and endless discussions on platforms like Reddit, StackOverflow, and others. We haven't come up with a solid answer yet because everybody has their own opinion.
I will promise you one thing here – we won't be answering this question in this article, as trying to answer this question is similar to answering which is the best laptop for a developer to use – we all have different preferencese, right?
But what this article will do is discuss questions like:
- What is an operating system?
- The history of operating systems
- How an operating system works
- Types and examples of operating systems
- Functions of an operating system
- Why you need an operating system
By answering these questions hopefully you will be in a position to choose the right operating system for your needs. You'll also understand the basics of how an operating system works, and that will be the best OS for you as a developer.
Let's get started:
What is an Operating System?
The recent advancements in technologies, where every gadget is considered a smart device has really revolutionized the world. Almost everyone has access to this devices be it mobile phones, tablets, laptops, smart watches or even your personal computer at home. Also to add to the list the huge rising number of the modern vehicles.
What all the above mentioned have in common is, they use an operating system to enable their functionality for you to achieve a certain task. Despite all this amazing being owned by us, very few of us get to understand how the OS that makes it possible to achieve different tasks is structured.
With this understanding we can describe an Operating System(OS) as a software that manages computer hardware and software resources and provides common services for computer programs.
In simple English we can say an OS is an interface between the user and the machine that makes it easy for the user to achieve different tasks with ease.
Now you have an understanding of what an OS is and also a slight idea of what it does, So! how did it all come into existence, where did it all begin? Let's have a look at it's history
History of Operating Systems
It all began back in the 1950s, when computer could only handle one program at a go. During this period users directly interacted with the computer hardware. For a program to be executed it was loaded in an input device like a card reader before execution could begin, and incase of an error during execution the registers and main memory had to be inspected to determine the cause of the error.
When the first operating system was developed by General Motors in 1956 it came as a huge success in the market. It's main purpose was to run a single IBM central computer. Due to it's success, IBM took it forward and became the first company to develop operating systems and began distributing them.
In the 1960s the Bell labs introduced the first version of the Unix OS, it was the first system that could support multi-tasking and multi-user functionality. This system was written in C programming language and was freely available. It was widely accepted and adapted by many users this led to it's official release of the first version in the 70s.
With it's success on early stages it was widely accepted, which led to many operating systems used today borrow their origin from them. Some of the companies with their origin from UNIX include: Mac OS X, iOS, Android, Chrome OS etc...
1977 Apple Dos was introduced in the market. It was designed for home computers and it was a huge success. The designer of this OS was Steve Wozniak. Originally it was designed as a ROM, but in 1978 a first DOS was commissioned and it became a popular software.
Microsoft came into play in the year 1981, where they introduced MS-DOS. After it's launch it was shipped and used for the IBM personal computers. Later on in 1990 Windows 3.0 was launched, this became a rival to Apple's Macintosh GUI.
1992 Windows 3.1x was launched. This operating system introduced several enhancements like improvement in multimedia support and system usability just to list a few. Over the years Microsoft continued to improve their system with betterment from the user's side. The improvement has been seen long way till the recent system we have which is Windows 11.
In March 2008 Apple introduced iPhone OS 1, which was the first iOS for Apple's mobile OS. When the iPhone software development kit (iPhone SDK) was released, the operating system previously known as iPhone OS was later renamed to iOS.
Android OS was released on September 2008. It was developed by Google based on Linux Kernel. By this time Android became the first competitor iOS.
Today Apple, OS X, Windows and various forms of Linux dominate the market of the modern Operating System.
How an Operating System Works
The work-flow of a computer begins when you press the power button on your PC or even your phone. Once the power button is pressed the OS is the first program that runs.
In a real real-life scenario we can compare an OS to the government in a particular country. Just like the way governments offer different directives on services and regulations to run different departments the same way OS controls program executions in a machine.
Another scenario to describe this: If you were to travel to a place that you had never been to before, where they speak a language that you are not familiar with, how will you communicate with the locals? Obviously yo will need a translators help. That's exactly what an OS does in your computer. It converts the computer language into a human understandable language.
Without the help of an OS it will be difficult to run even a single program in a machine actually it will be very complex to execute a single task. With this simple understanding you are able to understand that one of the OS's role is to organize and control hardware and software so that the device it lives in does not only behave in a flexible but also predictable way.
Types of Operating Systems
Operating Systems is one of the softwares that have been constantly updated over the past years. Different companies continuously working to provide best of their product to keep up with competitors.
- Real-time Operating System
The main aim of this system is executing real-time applications. It gives the maximum time for each of the critical operations that it performs. As a result, it guarantees the events will be processed in a given time.
This OS uses a specialized scheduling algorithms, this is to ensure that it switches tasks according to their priorities so that the deadlines are met for every task.
Some of the commonly known real-time OS include Windows CE, OS-9, and Symbian. Some common application of real-time include air traffic control systems, weapons control systems, industrial control systems, and control machinery.
- Multi-programming Operating System
They are also known as Multi-tasking OS. They are divided into two parts:
pre-emptive and co-operative.
In pre-emptive the OS divides the CPU time and dedicates a slot to each of the assigned programs. It is similar to the multi-threading. On the other hand Cooperative is achieved by depending on each process to give time to the other processes in a defined manner. It is similar to block multi-threading.
The main goal in multiprogramming operating systems is to improve resource utilization and system throughput and this is achieved through organizing the computing jobs in a manner that ensures that the CPU always has a job to execute at any one time.
- Batch Operating System
The execution of programs is done in batches. Programs are collected, grouped and scheduled for later processing. This ensures faster processing speed for the programs.
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. A good example of this system is the IBM's z/OS.
- Distributed Operating System
This is OS manages a group of independent machines and makes them appear as a single computer. They use powerful micro-processors that take advantage of the advancement in networking.
Distributed operating systems also ensure that there is a lighter load on the host machine even when performing heavy computations. A group of computers together in a cooperation form a distributed system.
Examples of Operating Systems
Different types of OS means that we will have specific examples for each. Tech companies compete on daily basis to meet their customer's needs be it users of mobile phones, Desktops, laptops or the smart gadgets we have.
Below is a list of the most popular computer and smart-phone operating systems in the market today.
Developed by Microsoft, It is the most used OS among computer users. It's latest release is Windows 11, with some of it's older versions include: Windows 10, 8.1, 8, 7, Vista. XP and Windows 2000.
To install it you will need to purchase a copy of the software which is accompanied by a uniques product activation key.
Developed by Apple for Apple computers. This OS comes pre-installed in all Macintosh computers.
It is an Open-Source software, which has resulted to many distributions over the past years. It is considered to be used by people who know their way around working with the command line.
Some of it's distributions include: Ubuntu, Parrot, Debian, Arch, Linux Mint, Fedora, Kali Linux, and more.
Other rising OS among computer field include: Chrome OS & Android
Some of the most popular include: Android, Apple iOS, Windows Mobile, Blackberry OS, Palm OS, Google pixel and Symbian OS.
Functions of an Operating System
Speaking of OS functions, has it ever crossed your mind how the computer manages to handle different processes, how different tasks are managed or even implemented?
If this questions have ever crossed your mind, then in this section they will be answered, all this are functions that are being handled by the OS, Let's talk more about the same below:
It's the work of the OS to manage the computer memory. With the help of the CPU the OS keeps track of the memory used by a particular program, It will be fair to mention that the OS ensures that each program is allocated enough memory to execute it's process
The OS is responsible for deciding the order in which processes will be executed, this act is known as process scheduling. Process management is made possible with the help of algorithms. Other responsibilities that lie under this category include: keeping status of a process and ensuring each process receives enough time to execute.
It monitors all devices connected to your device, both the input and output devices. It's main function is to ensure that all the connected devices are correctly allocated and function. It also decides which process gets access to a certain device and for how long.
As we all know a system do contain multiple and large amount of data. It's the work of the OS to keep track of all this information including their location, accessibility rights, where they are stored, status of the file. It also manages the process of file deletion.
The operating system determines the jobs/tasks that need to be processed first and ensures that these tasks are completed. Usually the one with the highest priority is executed first. It also keeps track of the time and resources used by various tasks and users.
Error Detection & Response
When a computer is running we are bount to encounter a number of errors, by the computer being able to indicate or show you where this is made possible with the help of the OS. The OS offers helps by a response that guides you on what to do next.
Advantages and Disadvantages of Operating Systems
By this point it is evident that OS plays a big role in our day to day life. It is within our midist either your phone or even you laptop or the PC back at the office.
With the different types we have they all have their benefits and downsides, that's why there will always be new versions released time after time. Let's have a look at some of the pros and cons of an OS.
Operating System allows for an opportunity to share resources with other users via services like printers, fax, over the network etc... some of the most commonly shared resources include: files documents, videos, images and apps, mails.
With the large amount of data stored in the computers it's the responsibility of an OS to make sure all the data present is secure. A good example of an OS actively securing user data is the Microsoft's Windows Defender, it detects malicious and harmful files and removes them or denies access to install.
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.
By using an operating system, users can perform different tasks simultaneously. There is no need to close one window to open another.
Unless it is an open-source operating system like Linux and it's distros, most Operating Systems are considered to be expensive. Even though users can choose free versions of them, they typically have limited features.
Just like any other software out there, the risk of viruses is always higher in an operating system. Sometimes users can unknowingly download malicious programs, visit malicious websites, or open email attachments containing viruses, all which can make a computer vulnerable to viruses.
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 you will have to look for a specialist to help hence maintenance cost rises.
An operating system is the heart of the computer system, and if by any chance, due to any reason, it stops functioning, then the whole system will crash. Meaning without an OS your machine can not function at all.
How to Choose an Operating System
By knowing what to look for when choosing an OS, will have a big impact on your daily interaction with computer. It is always advised to shop keeping in mind the budget at hand and the features you are aspiring for this also depends with your career.
Here are the common actors to consider:
Each OS has a new thing it has to offer, especially for the beginners. Be sure the OS you choose has an easier learning curve and you can easily adapt to it. Linux and it's distributions have always been considered less user friendly to beginners with OS like windows being more friendly.
Be sure to chore an OS that supports installation of the softwares you use on daily basis or even plan to use. A good example is windows system supports a wide variety of commercial softwares unlike Mac which mostly supports softwares from it's library only.
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.
Cost & 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.
As discussed from the disadvantages since an OS is just like any other software it's vulnerable to attacks. Be sure to choose an OS that has high security measures. Usually Windows is considered to be more vulnerable due to it's wide market share while Linux distros are considered less vulnerable
Perhaps you are still wondering what people's take is on the longest debate about the OS best for developers, well according to many surveys and polls conducted by different organizations windows has always managed to scope the top position:
According to the latest Stack Overflow survey, over 80,000 developers were asked that same question. and here is the overall say:
There you have it, all the knowledge you require to help you get around the OS topic, having said this hope this article has helped you out and if you are a beginner all the best as you find the best OS for your work.
Enjoy coding ❤.