Try out our web demo! Note: since this is hosted on github pages none of the networking commands work. Clone the repo or check out the video above to see Smiggles' full capabilities!

Inspiration

Windows, MacOS, and a good amount of Linux distributions are way too heavy and waste memory in unnecessary places. We were inspired to build a lightweight operating system that uses memory in all the necessary places to maximize computer performance. Since Smiggles weighs in at 1.44 MB, we've so far accomplished that.

What it does

Smiggles is a 32bit x86 operating system that boots via GRUB Multiboot2 and runs a custom kernel. It's written mostly in C and includes a command interpreter, a custom filesystem, a text editor and BASIC interpreter, user/group privilege support, process management, and a networking stack.

How we built it

We coded it using mostly C, Assembly, and a bit of Python for the package installer. The OSDev wiki was pretty helpful in getting started.

Challenges we ran into

We had trouble adding persistent storage and a networking stack.

Accomplishments that we're proud of

We're pretty proud of getting persistent storage working, since it was the biggest roadblock we've faced and took over a month to figure out.

What we learned

We learned a lot about low level computer architecture, OS development, Assembly, and C.

What's next for Smiggles

Hardening up the codebase, improving the networking stack and process management features, possibly switching to 64bit, eventually adding a GUI.

Built With

Share this project:

Updates