This is a simple 32-bit OS that can run some basic commands. It is written in C and uses multiboot.
It supports:
- Text mode VGA driver
- Graphics mode VGA driver w/ console
- PS/2 Keyboard and mouse drivers
- Serial port driver
- Parallel port driver
- [-] ATA Hard disk support (read only), LBA28 and LBA48
- Terminal driver, with multiplexing between Serial and VGA/Keyboard
- A built-in kernel shell, with support for basic commands
- Basic libc with utility functions (strlen, strcmp, strcpy, strcat, reverse, itoa, memcpy, memset)
- [-] Dynamic memory allocation (half done, currently malloc just returns an increasing pointer and cannot be free'd)
- [-] FAT16 FS support (read-only at the moment)
- Partition table (needs to be written once we have ATA driver)
- Loading an external shell program from disk
- Graphical Shell with terminal emulator, calculator, and text editor
- Preemptive multitasking with round-robin scheduler
Use
make
or
make run
to run the OS in QEMU.
Use
make kernel.elf
To build the kernel as kernel.elf
, a 32-bit ELF multiboot executable.
Use
make myos.img
To build a 10MB hard disk image that can be flashed to a USB drive or run in an emulator for testing. (Needs grub2
and grub-pc-bin
)
or
Just download an image from the Actions tab. These images are built from the latest version of the code and may or may not work.