This is demo operating system that boots up and displays a logo and echoing keystrokes to the screen. Nothing usefull for now. Currently the project is mainly targets the old bios style boot systems not UEFI/EFI. (Although you can boot it using legacy mode support in UEFI systems)
- nasm (Assembler)
- gcc (C Compiler)
- ld (Linker)
I highly recommend to run it in a emulator such as qemu or bochs as it may not work in real hardware.
Just use the included makefile to build the os_image. Use that as in any emulator to run it.
make
- First blank make a ISO file (If using linux you can use dd to create it)
- Make a mbr partition table/scheme and a partition use fdisk to create a mbr partition table and a partitiom
3.
dd if=objs/boot_loader.bin of=<The ISO File> conv=notrunc bs=440 count=1 # Skip the mbr partitiom
dd if=objs/boot_loader.bin of=<The ISO File> conv=notrunc bs=1 count=2 skip=510 seek=510 # The preserve the magic number
dd if=objs/kernel.bin of=<The ISO File> conv=notrunc bs=1 seek=512 status=progress # Add the kernel
sudo dd if=<The ISO File> of=<Your Flash Drive> status=progress # Burn the ISO File in the flash drive
- [X] Load the bootloader
- [X] Read the sectors from harddrive
- [X] Switch to a graphics mode
- [X] Enter Protected Mode
- [X] Load the Kernel
- [X] Bitmap font rendering
- [X] Setup IDT
- [X] Setup ISR(Interrupt Service Routine)s
- [X] Setup and Initialize the PIC
- [X] PS2 Controller Driver Implementation
- [X] Functional PS2 keyboard driver
- [X] Translate the scancodes from keyboard to ascii characters
- [-] PCI Driver
- [ ] AHCI Controller Driver
- [ ] File System
- [ ] Shell
Use VBE(Vesa Bios Extensions) to get a more proper resolution- ACPI
- PCI-E Support
- Support for USB devices