|Page 1 of 1|
|Author:||slackbeard [ Sat Oct 27, 2018 4:07 pm ]|
|Post subject:||Shipwreck OS|
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.
|Author:||TheCool1Kevin [ Sat Oct 27, 2018 6:51 pm ]|
|Post subject:||Re: Shipwreck OS|
It's quite cute ^-^
|Page 1 of 1||All times are UTC - 6 hours|
|Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group