Back to Popcorn

About Popcorn

What is Popcorn?

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.

Key Features

Console System

Complete VGA text mode abstraction layer with cursor management, color styling, screen scrolling, and status bar support.

Pop Modules

Extend kernel functionality through modular "pops" that can be easily integrated into the system without modifying core code.

Utilities Framework

Shared helper functions across modules to reduce code duplication and ensure consistent behavior.

Minimal Assembly

Written primarily in C with only essential assembly code, making it more approachable for beginners.

WSL Support

Full support for Windows Subsystem for Linux, making development accessible across platforms.

Keyboard Input

Interrupt-driven keyboard handling with proper IDT setup and backspace support.

Pop Module System

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.

Current Pop Modules

Spinner Pop

Animated loading indicator displaying "Running... |/-\" with rotating animation in the top-right corner.

Uptime Pop

Real-time system tick counter showing "Ticks: XXXXXX" in the top-left corner.

Filesystem Pop

In-memory filesystem with commands: create, write, read, delete, mkdir, go, back, listsys.

Halt Pop

Visual halt screen with green screen effect, rainbow colors, and fade to black animations.

Shimjapii Pop

Example pop module for developers, displaying in the bottom right corner.

Building and Running

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.

Technical Requirements

To build and run Popcorn, you'll need:


Computer Prerequisites

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.

Current Status & Limitations

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.