Having a good grasp of OS concepts is essential for a Software Engineer!

Smruti Ranjan Badatya
3 min readDec 6, 2022

--

Operating System is essential for every electronic device because it provides an interface between the connected hardware and the end users. This improves the abstraction for the end users and the convenience that an OS provides is immense.

Operating System tends to be everywhere around us with a varied range of specification, and with varied hardware to take care of.

As Software Engineer, it is our duty to know the ins and outs of the working of an OS in general. Because the same principle is applied pretty much in all OS. And It is important for developing better software.

Most Operating systems provide us with basic functionalities ( like Device Manager, File Manager, Memory Manager, Process Manager, and Network Manager ), which helps us as a developer. For instance, if we want to develop an application that uses keyboard inputs, the OS does all the heavy lifting of communicating with the keyboard hardware and creating interrupts and giving us the response, and we as application developers can solely focus on the application with a greater abstraction.

The earliest computers did not have an OS. Every program had to include all of the code to run the computer. This made each computer program complex and difficult to create. Since then, operating systems have been developed, with part of their function being to include the code needed to run the computer. This allows for multiple applications to be written more easily to work on a common operating system rather than for individual computers.

Most people take OS for granted really without knowing the heavy lifting it does behind the scene. But we are engineers, right? It becomes necessary to know how things work internally.

Unix was one of the earliest OS. But nowadays Unix is not being used directly instead, it is used in every other OS at its core. OS is undoubtedly the most used software in the world.

Operating systems can be CLI( Command Line Interface ) based or GUI ( Graphical User Interface ) based. The very first operating system like Unix was CLI based. We had to write commands for doing everything. Mainly you can say Terminal in macOS or Command Prompt in windows gives a feeling of how Unix must have felt back in the day.

Later, apple developed macOS which was the first GUI-based OS, and later windows just borrowed some of the features from apple ( it still does ) and became the most used OS in the world.

macOS uses a Linux kernel internally. To be honest even android uses a Linux kernel.

The kernel is the core of the OS. It is the heart of the operating system. Rest things are built on top of this

Every OS provides with following facilities:

  • Managing CPU
  • Managing Memory
  • Managing Files
  • Managing Devices
  • Provides Security Services

The best way to know an OS is to make one yourself( CS background needed ). I am on this journey myself and it's been a few days since I started putting my time into researching this.

Here is a very good repo on GitHub that guides you on how to make your own OS. https://github.com/cfenollosa/os-tutorial

I will be writing my Journey along the way I proceed. You can follow me to get updates.

See ya soon!

--

--

Smruti Ranjan Badatya
Smruti Ranjan Badatya

No responses yet