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 hardware. Humans that buy a device need an OS with it to ensure that:
the user is getting the most out of the device's resources, e.g., CPU, memory, storage and I/O devices;
the user is able to give commands to the device via a user interface; and
the user is able to run programs on the device to perform tasks well.
That's it! Well... not really, that is quite a lot... Let us try and understand the definition by imagining a 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.
Two Types of OS
General-Purpose Operating Systems These are designed for general-purpose computers that are meant to help the user perform a wide variety of tasks, allowing users to install and run different applications and attach peripheral devices to customise the experience. Your desktop or laptop with Windows OS/macOS and your smartphones with Android/iOS are notable examples.
Embedded Operating Systems
These are designed for specific digital devices that are good at a small number of tasks for a very specific scenario. The Samsung home appliances that are becoming popular to make our home feel "smart" e.g., smart fridge, smart TV all come with a Tizen OS. We are surrounded by so many digital devices at home, at school and at work, that it is impossible to list all the embedded OS out there. However, these dedicated digital devices come with their own OS that is designed to perform tasks as efficiently as possible.
Basic Functions of an OS
I must have mentioned previously that the humans operating devices are normally referred to as users. Also, as we already said it is very important that the OS hides the nitty gritty details of the hardware but ultimately the user must always feel in control!
The OS is ultimately working for the benefit of the user. The basic functions of an OS reflect the basic features a user expects when buying a new device. With a new device, the user wants to be able to...
Interact with the Device via a User Interface
A user interface is the point at which human users interact with a computer in the easiest way so the the user can get the most out of the underlying hardware. Different user interfaces exist to target specific human senses for e.g., sight, touch, auditory and movement. For a human user to use the interface they need to use I/O devices.
Type of UI | Description | I/O Devices | OS Examples |
Command Line Interface (CLI) | Use the computer by typing textual commands into a console and get textual feedback. | Keyboard, monochrome screen | MS DOS (not used anymore but if you want to get an idea it was similar to Windows Powershell). |
Graphical User Interface (GUI) | Use the computer by pointing and clicking on visual elements like icons, buttons and drop-down menus. | Keyboard, mouse, joystick, stylus pen,colourful screen | Windows 11, macOS Sierra, Ubuntu 13, Orbis OS for the PlayStation, Android, iPad OS |
Natural User Interface (NUI) | Use the computer by performing natural actions like touch to tap, gesture signals, voice commands and eye movement. | Microphone, cameras, colourful touchscreen, consoles | Xbox Kinect, Android/iOS, Android/iOS with Augement Reality (AR) |
Extended Reality (XR) | Use the computer in an immersive way so that it seems like the user world is "inside the computer" by making gestures, moving around a space, looking around by moving your neck etc... | Immsersive VR headset with display, cameras, and sensors, separate consoles for hand gestures | Meta Horizon OS |
Manage their Personal Data on the Device
Users expect a structured way to store, retrieve, and organize their personal data on stored on the device. When we use our desktops/laptops we use File Explorer (Windows) or Finder (macOS) to create, access, and organise our programs and files. In fact, any device that allows us to save our data must have some kind of file system in the OS faciliate data access perhaps via a graphical interface or textual commands.
Many different types of file systems exist depending on the device and OS.
FAT32 (Universal)
A file system used for portable storage devices, primarily USB flash-drives and SD cards. All operating systems natively support this format to allow users to attach external storage devices and access their personal data.
NTFS (Windows)
A file system invented by Microsoft for Windows File Explorer which is meant to perform faster, particularly with large files and large storage devices whilst adding more security via file permissions and file recovery features through journaling, i.e., a mechanism whereby the operating system keeps track of file changes.
APFS (Apple)
You probably guessed this one, a file system invented by Apple for Finder which also implements journaling but adds more functionality like encryption, file sharing with other Mac users, and clever space saving algorithms to organise files better.
EXT4 (Linux)
The default file system by Red Hat Enterprise Linux that support very large files and storage capacities of up to 1EB (very very very large, larger than you can imagine) in size very efficiently making it very suitable for our computers that act as servers. Operating systems based on Linux, like Android and iOS support this format as well to a certain extent.
Run Several Applications Securely for Tasks
Nowadays users expect to run multiple applications at once, most especially on their smartphone or their laptop. We take this feature for granted, but the multitasking environments in our modern operating systems are very complex and we need to write very complex programs to manage this well.
In Chapter 36 we will talk about techniques used by the operating systems to securely organise our processes in RAM, ensure that our cores are working as hard as possible, and respond instantly to user commands.
Which is the most popular OS to date?
At the time of writing the post, research shows that across all device types, Android is the world's most popular operating system and has dominated the market. Android is an operating system that is based on Linux. It offers a graphical, even natural user interface that enables users to use their smartphones and tablets with ease. Embedded device manufacturers entering the "smart home" market, like Xiaomi, base their embedded operating systems on Android.
Kommentare