Popcorn is a lightweight, modular kernel framework designed to make operating system development more accessible and intuitive. Built with a focus on simplicity and extensibility, it provides developers with a solid foundation for exploring system programming and OS concepts. Currently in version 0.5, Popcorn features a modern console system and modular architecture that allows easy extension through "pop" modules.
Complete VGA text mode abstraction layer with cursor management, color styling, screen scrolling, and status bar support.
Extend kernel functionality through modular "pops" that can be easily integrated into the system without modifying core code.
Shared helper functions across modules to reduce code duplication and ensure consistent behavior.
Written primarily in C with only essential assembly code, making it more approachable for beginners.
Full support for Windows Subsystem for Linux, making development accessible across platforms.
Interrupt-driven keyboard handling with proper IDT setup and backspace support.
The core of Popcorn's extensibility lies in its Pop Module system. Each "pop" is a self-contained module that can register itself with the kernel and uses the console system for consistent behavior:
typedef struct {
const char* name; // Module
name
const char* message; // Display message
void (*pop_function)(unsigned int start_pos); // Module functionality
} PopModule;
All pop modules must save and restore console state (cursor position and color) to prevent interference with user input. The system maintains a registry of modules and executes them in registration order.
Animated loading indicator displaying "Running... |/-\" with rotating animation in the top-right corner.
Real-time system tick counter showing "Ticks: XXXXXX" in the top-left corner.
In-memory filesystem with commands: create, write, read, delete, mkdir, go, back, listsys.
Visual halt screen with green screen effect, rainbow colors, and fade to black animations.
Example pop module for developers, displaying in the bottom right corner.
Popcorn provides multiple build system options for different environments:
Note: All build systems are provided AS-IS without warranties. Use at your own risk. Versions below v1.0 are considered trial versions.
To build and run Popcorn, you'll need:
To work on Popcorn at a fluid level, you'll need:
WSL is strongly recommended but this can run in Linux environments natively. It cannot run in Mac or Windows environments natively. Windows 11 and WSL 2.0 are strongly recommended.
Popcorn is currently in version 0.5 and marked as unstable with all versions being pre-releases. The project includes:
Work in Progress: The project is actively being developed with plans for a working ISO file, more kernel functionality, and additional pop modules. Future versions will include more features and improvements to the kernel framework.
Contributions: Special thanks to Swarnim A for the Intel book reference that made keyboard inputs possible for this kernel.