The C2OS kernel is written in 16-bit x86 real mode assembly language. This gives the information of the hardware.
This OS can be bootable through floppy disk, CD Rom & USB.
Pre-requisites for this task
Basic knowledge of assembly language is needed for this.
mkisofs — This is to generate a CD-ROM ISO image of C2OS
sudo apt-get install cdda2wav cdrecord mkisofs
NASM — This tool can be installed using terminal in Ubuntu following code.
sudo bash apt-get install nasm
QEMU — This is an emulator and this is to run .flp/.iso file that we needed. Code to install this tool is,
sudo bash apt-get install qemu-system-x86
Above mentioned tools should be installed prior to coding of OS.
You can find the source code by the following link.
Go to source/kernel.asm
In C2OS operating system, the source code for displaying hardware information is also included in kernel.asm
And the features of the operating system is included in souce/features/..
In kernel.asm each source code is explained using comments.And programs/c2dev.inc is described the system call vectors.
source/.. contains the entire OS source code
source/bootload/.. — source to generate bootload.bin, which is added to the disk image when building
source/kernel.asm — The core kernel source file, which pulls in other source files and it includes source code which needs to display the hardware information.
programs/.. — Source code for programs added to the disk image
After you have extracted the C2Os.zip file, switch into the disk_images/ directory and you’ll see three files:
C2os.flp — Floppy disk image containing C2OS and programs
C2os.iso — CD ISO image built using the floppy disk image
So, these files are virtual disk images that you can write to real floppy disks or CD-Rs, or run in a PC emulator as described in a moment.In Linux, you can run build-linux.sh to make cd iso image.
This script assembles the C2OS bootloader, kernel and programs
with NASM, and then creates floppy and CD images (on Linux).Only the root user can mount the floppy disk image as a virtual drive (loopback mounting), in order to copy across the files.
Now you can run the iso image using virtualbox.