In an attempt to learn how to write an operating system and to relive the nostalgia of tinkering with Delphi as a kid, I have decided to begin writing an operating system in Object Pascal. This is simply a toy project to work on when I am bored.
Despite having "OS" in the name, PascalOS is far from an operating system right now. Here's a summary of what is and isn't currently implemented:
- Boot to kernel entrypoint
- Basic GDT setup
- Bare-minimum IDT setup and ISR handling
- Bare-minimum IRQ handling
- Keyboard support
- Virtual memeory (paging)
- Dynamic memory allocation
- Filesystem support
- Multitasking
- User mode
- Everything else
WARNING: The current Makefile makes some pretty strong assumptions about your build environment and is NOT portable. I am developing PascalOS inside a 32-bit Debian 10 virtual machine because I am too lazy to set up proper cross compilation. To set up a development environment on Debian, run the following command to install all necessary packages (I might be forgetting some):
sudo apt install build-essential fpc git qemu-system-i386
If for some reason you still want to build this, you can like so:
git clone https://github.com/jonpalmisc/PascalOS.git
cd PascalOS
make isoTo run the OS after building the ISO, use the included run targets:
make runb # to run with Bochs; or make runq # to run with QEMU
This project would not have been possible without the following resources:
This project is licensed under the Mozilla Public License v2. For more information, see the LICENSE.txt file.