This is the code for my operating system, written in C++. It is currently under development, but it already includes support for interrupt handling, multitasking, device drivers, a GUI, and a FAT32 filesystem handler.
- Assembly Language
- C++
- 1st stage bootloader
- Support for interrupt handling
- Multitasking support
- PCI device detection and device drivers
- Keyboard driver
- IDE driver for handling ATA hard disks
- AHCI driver for handling SATA hard disks
- USB 2.0 EHCI driver
- FAT32 filesystem handler
- Support for some available video (VESA) modes
- Basic GUI
- Displaying a bitmap image on the screen
- Windows 10 or Linux
- GCC compiler
- QEMU emulator (optional)
- VirtualBox (optional)
- Clone the repository:
git clone https://github.com/preciousbetine/osdev.git
- Compile the operating system:
cd osdev
make
- Boot the operating system in QEMU:
qemu-system-x86_64 -kernel mykernel.bin
- (Optional) Boot the operating system in VirtualBox:
- Create a new virtual machine in VirtualBox.
- Set the operating system to "Other".
- Set the memory size to at least 1024 MB.
- Generate a VMDK and boot the OS by the instructions in this article.
- Start the virtual machine.
Once the operating system is booted, you can interact with it using the keyboard.
- Basic GUI controls (textboxes, list boxes, etc.).
- An application launcher.
- More device drivers.
- A file manager.
- A shell.
I would like to thank these sources for their extensive info:
- OSDev Wiki: https://wiki.osdev.org/.
- This youtube playlist.
- Most importantly, this one.
This project is MIT licensed.