Hey there,
Shipwreck OS is a project I started around 3 years ago and just finished up and pushed to github. It's very minimal for an OS but served me greatly as a personal exercise in design and programming. I also learned a lot from this forum and even untangled some of my issues just by reading other people's discussions here, so thanks a bunch to everyone here!
It's an OS for x86 PCs written in C++11, it has a simple GUI and minimal ELF support that it uses to load its shell program - which only supports a "help" command as a proof-of-concept.
It uses TAR as its filesystem so the disk image is literally a tar file prepended with a boot sector. Its API includes some file IO, threading, locks and GUI functions. The GUI is controlled by syncing a window hierarchy between userland and the kernel. I wasn't aiming for security so there are places in the code where pointers are blindly trusted by the kernel and array bounds might be unchecked.
For development I used clang, cmake and nasm on Ubuntu. I tried building the project on OSX with the same tool chain but it required too much tweaking so I wrote a Dockerfile that closely resembles my dev environment - theoretically anyone with Docker can build the project now.
I also included a pre-built virtual disk (as a .vmdk file) in a separate branch in case anyone wants to see it without building it, but keep in mind there's not much to it.
During development I ran it on VirtualBox, never on real hardware. I've used VMware and Bochs for past projects so I wouldn't be surprised if it works on those.
Anyway, I got the project to a state where I feel good wrapping it up and moving on to other stuff - it was a fun educational project and I reached my main goals with it. I won't be actively working on it for now but if anyone wants to read it or add to it, go right ahead.
Shipwreck OS
- TheCool1Kevin
- Posts: 24
- Joined: Fri Oct 14, 2016 7:37 pm
- Location: Canada
- Contact:
Re: Shipwreck OS
It's quite cute ^-^
LiquiDOS, my weird hobbyist OS.
"Strive for progress, not perfection" - Anonymous
"Strive for progress, not perfection" - Anonymous