How to start OS Development
Extend Josh OS within Linux
How startup the computer?
When start the computer firstly,BIOS firmware copy to the RAM and call the CPU for execute that. After that firmware give the instruction for call to the boot sector in the hard disk.Now execute OS.

Now we learn how to develop OS using JOSH OS,
Josh OS is real-mode operating system and it is a single tasking operating system.
First you install followings for the OS development
- nasm
- qemu / virtual box
You can use following command for that
sudo apt-get install nasm
sudo apt-get install qemu
I feel virtual box is good because of that I use it for my works.After that all we start our work for run the JOSH OS.
Step 1:
Download the kernel code and boot strap loader code and save it as assembly language source file format in desktop .
Step 2:
Convert it to bin format
nasm -elf64 kernel.asm -o kernel.bin -f bin
nasm -elf64 boot.asm -o boot.bin -f bin
Step 3:
Go to the media folder and create the folder as myfloppy or some thing .
cd /media
sudo mkdir myfloppy
Step 4:
Go to the desktop directory and give following command for create 1440kb myfloppy.img file.
mkfs.msdos -C myfloppy.img 1440
Step 5:
Mount the myfloppy.img file and myfloppy folder
sudo mount -o loop myfloppy.img /media/myfloppy/
Step 6:
Check file System name of that mounted virtual device
df -h

In my case it is /dev/loop0
Step 7:
Copy the boot.bin file into the boot sector of the disk.
sudo dd if=./boot.bin of=/dev/loop0
Step 8:
Copy the kernel.bin file into the disk.
sudo cp kernel.bin /media/myfloppy/
Step 9:
If you want check it use following code.
ls -l /media/myfloppy/
Step 10:
Unmount the myfloppy device and remove the myfloppy folder in media directory.
sudo umount /media/myfloppy/
sudo rm -rf /media/myfloppy/
Now , myfloppy.img file is a bootable file.You can try it using virtual box or qemu application.
After all you can start to develop the JOSH-OS using Assembly language.
In our case, boot.bin work as a boot strap loader .It is the part of executed one first of all other OS code.
If you want to add new features to JOSH ,edit the kernel.asm file and create the bootable file again.
click here to get my codes and img file.
Reference: