Skip to content

Rudranil-Sarkar/PAW-OS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PAW_OS

https://github.com/Rudranil-Sarkar/PAW-OS/blob/master/Screenshots/out.gif

TABLE OF CONTENTS

Description

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)

Dependencies

  • nasm (Assembler)
  • gcc (C Compiler)
  • ld (Linker)

Build Instruction

I highly recommend to run it in a emulator such as qemu or bochs as it may not work in real hardware.

For Emulator

Just use the included makefile to build the os_image. Use that as in any emulator to run it.

make

For Real Hardware

  1. First blank make a ISO file (If using linux you can use dd to create it)
  2. 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

Current Progress [73%]

  • [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

Planning Features

  • Use VBE(Vesa Bios Extensions) to get a more proper resolution
  • ACPI
  • PCI-E Support
  • Support for USB devices