Simple Operating System

Bimali Wickramasinghe
2 min readJul 26, 2020

Repository link: https://github.com/BimaliWickramasinghe/wickyOS

The interface of wickyOS

I created my simple OS, “wickyOS” by modifying the JOSH OS. To create a simple OS, you need to use a lower level language like C or Assembly. In my operating system, I used Assembly language. You need to install Ubuntu OS on a virtual box. I used VMware. In order to build my operating system, QEMU emulator and NASM assembler was installed by the following code.

sudo apt-get install build-essential qemu nasm

Kernel

To build the kernel, I referred this tutorials. To build the kernel, you need to understand how the registers in memory works. And a basic idea on how the data is stored in the RAM is needed. Th keywords and the knowledge on registers and stack, etc. was gained through this tutorial and more.

Boot-strap Loader

I used a pre-defined boot-strap loader cause coding a boot loader can harm your RAM. I referred this tutorial to implement the boot-strap loader.

I ran the command

sudo sh build-linux.sh

to create the .iso file and .bin files.

Then ran the command

qemu-system-x86_64 -boot b -cdrom wickyOS.iso

to compile the .iso file.

When “info” is pressed hardware details are displayed.

Find my code of my simple operating system from here.

References:

https://www.cs.bgu.ac.il/~yagel/dolev/MinimalOS/josh/

https://medium.com/setublog/hands-on-to-operating-systems-a847e9dc75f7

http://mikeos.sourceforge.net/write-your-own-os.html

--

--

Bimali Wickramasinghe

Demostrator in Software Engineering, University of Kelaniya Sri Lanka