MangOS is a small, open source operating system. It is worked on as a hobby by myself, but if you want to contribute, please do!
Table of Contents
This is a simple OS made by myself to train my C skills.
-
Docker
-
apt
-
qemu
- Linux/MacOS:
Linux has a build script made specifically for it, to build, just make sure your docker daemon is running, and run
chmod +x ./build,sh
./build.sh
This will also automatically run qemu.
- Windows(CMD):
docker run --rm -it -v "%cd%":/root/env mangos-buildenv
make iso
- Windows(Powershell):
docker run --rm -it -v "${pwd}:/root/env" mangos-buildenv
To build it, run this in your build environment
make
To make an ISO file from this, run
make iso
The ISO file will be found in ./image.iso
.
I'm not sure why you would want to do this, but take the ISO, and use a tool like rufus to flash it onto a USB. Then, enter your BIOS and set the USB as your boot drive.
For QEMU, the only supported virtual machine for now, run
qemu-system-x86_64 -cdrom dist/x86_64/MangOS.iso -serial stdio -m 1024
TASKS TO DO
- - Very basic printf that outputs to serial
- - Implement a GDT
- - Implement an IDT
- - Exception handling (i.e. just make an exception handler that prints when errors occur)
- - Basic Log
- - Make a Physical Allocator
- - Make a page allocator (Bitmap, Page list, whichever one you feel like)
- - Implement paging using the allocator
- - Load the new page table
- - TSS
This project is distributed under the MIT License. See LICENSE.txt
for more information.