Development process of KumaranOS

Sivasubramaniam Elankumaran
3 min readJul 26, 2020

--

KumaranOS Front page

What Is KumaranOS?

KumaranOS is a simple Operating System written in Assembly language.

Requirements

  • Linux (It is easy to change mikeos to KumaranOS)
  • Virual Box
  • NASM assembler

When you are in Linux, get (NASM assembler) by entering this in a terminal :

get nasm compiler in linux

Importent things in KumaranOS

  • Home page-You can choose one from Menu or Exit. If you click on Menu button you will go to the menu window, otherwise, you can shut down the machine.
  • menu window -You can choose HD-I button to go to the hardware information display page or otherwise click back to go to the welcome page again.
  • Displaying hardware information- This is the page which displays hardware information. Press ESC to go back.

You can visit “KumaranOS” from my GitHub Repository.

https://github.com/Elankumaran98/KumaranOS

Some key points

BIOS(Basic input output system) is executed when computer is powered up. It checks for memory and does other hardware tests. After finishing it checks for your OS in any media it can find. Usually it is on your hard drive and BIOS finds the execute code in Master Boot Record(MBR), a 512 bytes section. But it all depend on your boot order. BIOS loads the 512 bytes section from the chosen media into its memory and begins executing it. This is called the boot loader, the small segment of code that runs the main OS kernel. Boot loader is responsible to load your OS and make the environment for correct functioning of the OS.

Kernel is the core of the operating system. It provides the complete control over everything in the system. It always stays in the main memory. Therefore it is important to be as very small as possible. Typically, the kernel is responsible for memory management, process and task management, and disk management. The kernel connects the system hardware to the application software.

In assembly languages there is no thing called variables. Instead we use registers to store numbers. Here is the list of registers in a typical CPU :

Source : mikeos.sourceforge.net

Here is the list of commonly used assembly instructions. These move memory around, compare them and perform calculations. We are going to use these instructions for most of the time :

Source : mikeos.sourceforge.net

--

--

Sivasubramaniam Elankumaran

Software Engineering 2nd Year Student in university of Kelaniya