Early on we learnt that machines can only interpret magnetic recordings of electrical pulses which we call ones and zeroes. So how come we have so many cool applications? How is it that we are able to do so many things on a single device? In this topic you will be introduced to the most sophisticated piece of software one can build - the Operating System. Any device you buy comes with its own.
What is an Operating System?
The Operating System is the system software designed by the device manufacturer so that a human can easily operate the device without any knowledge of the underlying complexity.
That's it! Let us try and understand the definition by imagining a real-life scenario... Suppose that your birthday is coming and you have your eye on the latest phone which costs a lot of money. Imagine we live in a world where you just buy the nicely packaged hardware that simply lights up but does nothing. A blank canvas! It is completely up to you to write all the ones and zeroes so that you can make a phone call with the device. The device comes with an instruction manual the size of the Bible and you can use it in any way like. Would you buy the device?
If you are thinking "heck no, that would be a nightmare!", I completely agree. You might be shocked to learn that it was like this in the very early days and yes, it was a nightmare. Over time, device manufacturers found out that many engineers were coding in a very similar way to do basic things.
And so to improve usability (and make devices so much more popular) it was decided that devices should come with an...
operating system so that a human would be able to easily perform basic functions on a device without needing to know everything about the underlying hardware.
What Does the Operating System Do?
The purpose of an Operating System, OS in short, is to efficiently manage resources so that many programs can run concurrently on the device and provide an interface to the hardware.
Below are some examples of basic OS capabilities:
Launch programs by placing them in main memory and instructing the CPU to execute.
Quit programs or temporarily put them on hold by safely moving them in secondary storage so that main memory is freed up.
Lets a printer know what needs to be printed.
Lets a monitor know what needs to be displayed.
Listens for key presses and pass on instructions to the hardware based on the context of a program running e.g. key presses in the context of a word processor would result in displaying letters and numbers on the monitor.
Operating System Basic Features
If you are thinking of designing an OS for a particular device, below is a very basic list of features you should probably build because a device operator would be expecting them:
Multithreading which is the ability to execute many instructions at the same time.
A Graphical User Interface (GUI) so that a human can easily give instructions.
Manage a clipboard (also referred to as a buffer) with Cut, Copy and Paste functions that enable a user to exchange information between applications.
Manage a File System with Create, Read, Write, Remove, Move, Execute functions and user permissions.
Most devices today are very attractive to purchase because they do not just come with their OS. Nowadays devices are pre-loaded with various applications, like I/O drivers, games, browsers etc... It is important to point out that these applications are not part of the OS.
These kind of applications sit on top of the OS.
Operating System Optimization
With such a variety of devices out there, Operating Systems have had to tailor themselves to different hardware specifications. You will find some have started out in the desktop arena like Windows, and over time developed lighter versions of the OS for smaller devices. Android is the opposite example; the OS started out geared towards small devices like mobile phones, which means it had to really optimize memory and CPU usage for the device to feel slick and fast. Over time, we've started seeing Android being used in more powerful devices too.
Comments