MMP OS — A small OS to display hardware information of the computer😊

Masith Pramuditha Jayarathna
3 min readNov 10, 2022

--

I have created a small Operating System which displays the Hardware Information of the computer. The OS is created by modifying the JOSH operating system which is also an operating system for educational purpose.

Prerequisite

In order to complete this operating system a basic understanding of some functions and operations in assembly language is required. this OS can be run using virtual box or QEMU emulator. Therefor, before starting the creation of the OS, Also a compiler named nasm is needed sometimes, for compiling. To install both of them in Ubuntu use the below command:

sudo apt-get install build-essential qemu nasm

Structure

This is the root folder of the MMP_OS:

‘source’ folder Contains the Main Assembly code of the OS

source/bootload folder contains bootload.asm file which will create bootload.bin . Actually bootload.bin file was created when the disk image was building.

source/kernel.asm —kernal.asm is the main kernel source file, which includes source code which needs to display the hardware information. kernel.asm file will create kernel.bin file after source code build.

disk_image — This folder contains mmpos.iso and mmpos.flpfile which is the responsible for OS booting.

build-linux.sh — This is the main build script for the MMP_OS.

Booting

After creation of all the files (refer here), we can boot our OS using pen drive or floppy disk. For a pen drive, mount it using mmpos.iso file which is located in the disk_images folder and boot the virtual machine using it. Or else you can boot the OS using mmpos.flp file by mounting it to a floppy disk.

As I mentioned before, there is another way to do this. by using QEMU emulator. we have already installed it using the above command which was mentioned in prerequisites section.

Lets boot our OS using QEMU emulator.

For that first go to the root directory and open the terminal and run below command:

sudo bash ./build-linux.sh

After that you can investigate, there are several bin files have created such as kernal.bin, bootload.bin and also in the disk_images folder mmpos.iso and mmpos.flp should be created.

After running “sudo bash ./build-linux.sh”

Then go to the disk_images folder and open the terminal then run the below command.

qemu-system-x86_64 -boot d -cdrom mmpos.iso -m 512

After running this command the QEMU emulator will be opened.

QEMU emulator

Congratulation! 🥳 Now you can view the hardware information of the computer using our MMP_OS.

Displaying hardware information

Source code:

MMPjayarathne/mmpOS: Extended MMP_OS referring JOSH (github.com)

--

--