Building a Simple Operating System
What is the OS:-An Operating system is system software that manages computer hardware and software resources and provides common services for computer program.
This is a simple guidance of showing how to implement an OS using Assembly language to show hardware information of a computer. In this article this task is performed in Linux based OS called Ubuntu. This OS can be bootable through floppy disk, CD Rom & USB.
Pre-Requisites for Creating OS
We need to gain Basic knowledge of assembly language.
This task is performed in Ubuntu.So below mentioned tools should be installed to coding.
- NASM Installation — This tool can be installed using terminal in Ubuntu following code.
sudo apt-get install nasm
2. mkisofs Installation -This is to generate a CD-ROM ISO image of OS
sudo apt-get install cdda2wav cdrecord mkisofs
3. QEMU — This is an emulator and this is to run .flp/.iso file that we needed.
sudo apt-get install qemu
File Containing the OS
- programs/ — Source code for programs added to the disk image.
- source/ — Contains the entire OS source code.
- source/bootload/ — Source to generate BOOTLOAD.BIN, which is added to the disk image when building.
- source/features/ — Components of dilu OS(keyboard and screen).
- source/kernel.asm — The core kernel source file, which pulls in other source files.
You can find the full source code from this link.
Contribute to dilusha07/dilu_os-master development by creating an account on GitHub.
Build the OS
To build the OS open the terminal in the folder which contain the source files of the OS and enter the following code.
sudo bash ./build-linux.sh
Run the OS
To run the OS open the terminal in the folder which contain the source files of the OS and enter the following code.
sudo qemu-system-i386 -soundhw pcspk -drive format=raw,file=disk_images/diluos.flp,index=0,if=floppy
This is how “dilu OS” looks like:
Hands on to Operating Systems
This article provides guidance to learn Operating System fundamentals and concepts which are discussed in SENG 21213 —…