github.com/29jm/SnowflakeOS

"It is very special"

Open this visualization on its own page →

Contributors

5

Lines of Code

1,949

From

2015-06-03

To

2021-01-01

About 29jm/SnowflakeOS

SnowflakeOS is a hobby operating system written in C designed as a learning project to understand kernel development before diving into Linux kernel work. The project implements a substantial set of core OS features including a higher-half kernel with paging, memory management, interrupt handling, preemptive multitasking, and usermode process loading. It supports both text-based and graphical output through 80x25 text mode and VBE graphics, includes a custom window manager and GUI toolkit, and provides PS/2 input device support through keyboard and mouse drivers.

The system can boot from an ISO and run in emulators like QEMU and Bochs, with the developer having also tested it on real hardware via USB boot. SnowflakeOS includes filesystem support through ext2, a PIC timer for scheduling, and serial output capabilities. The codebase emphasizes readability and organization, with development documented in a blog at jmnl.xyz and additional information available in the project's wiki.

Building SnowflakeOS requires standard OS development tools including xorriso, GRUB, and an i386 cross-compiler, which can be built from source through the project's toolchain target or sourced from an existing system installation. The project welcomes contributions and provides documentation through both a contributing guide and extensive wiki pages covering the project's internals and development workflow.

Share this video