Simple Operating System
Repository link: https://github.com/BimaliWickramasinghe/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