BrewKernel User Manual

IMPORTANT: Running this kernel on real hardware is at YOUR OWN RISK. This software comes with ABSOLUTELY NO WARRANTY. The developer is not liable for any damage to your system.

System Overview

Welcome to the BrewKernel, a simple hobby operating system kernel designed for x86_64 architecture. This manual provides an overview of the system, its features, and available commands.

BrewKernel boots into a VGA text mode display (80x25 characters). It initializes a custom color palette and provides basic keyboard input handling. The primary user interface is a simple command-line interface (CLI).

Hardware Requirements

Tested Configuration:
HP EliteDesk 705 G4 DM 65W SBKPF
CPU:
AMD Ryzen 5 PRO 2400G (8) @ 3.600GHz
GPU:
AMD ATI Radeon Vega Series (VGA ONLY)
Display:
VGA port required - No other display outputs are supported
Boot:
Legacy boot mode required (NOT UEFI)

Building from Source

Prerequisites

Docker is required for building the kernel in a consistent environment.

Build Steps

# Build the Docker container cd BrewKernel docker build buildenv -t brewkernel # Run the build script docker run --rm -it -v "$(pwd)":/root/env -w /root/env --platform linux/amd64 brewkernel make build-x86_64

Build outputs:

  • dist/x86_64/kernel.bin - Kernel binary
  • dist/x86_64/kernel.iso - Bootable ISO image

Installation on Real Hardware

Steps to Install

  1. Install BalenaEtcher on your device
  2. Use BalenaEtcher to flash kernel.iso to a USB drive
  3. Ensure you have a compatible x86_64 system
  4. Enable legacy boot in BIOS
  5. Boot from USB using legacy boot option (NOT UEFI)

Technical Details

Memory Map

Kernel Load Address: 0x100000 (1MB) Stack Size: 16KB Page Tables: Identity Mapping VGA Buffer: 0xB8000

VGA Text Mode

  • Resolution: 80x25 characters
  • 16-color palette with RGB customization
  • Hardware cursor support
  • Automatic screen scrolling
  • Text wrapping at screen boundaries

Text Input & Display

  • 256-character input buffer
  • Backspace handling with cursor movement
  • Case-insensitive commands
  • Color attributes for text and background

Real-Time Clock & Timezone Support

  • RTC driver with BCD conversion
  • Global timezone database
  • Support for half-hour offsets
  • System uptime tracking

Features

How to Use the CLI

Upon boot, you can type 'CLI' and press Enter to start the command-line interface. Once in the CLI, you can type commands followed by Enter. Commands are case-insensitive.

Available Commands

Command Description
HELP Displays a short list of available commands.
MAN Shows this detailed user manual. Use UP/DOWN arrow keys to scroll and 'q' to quit the manual viewer.
ABOUT Displays information about the kernel, including version, build date, architecture, and compiler.
MATH A simple calculator for basic arithmetic operations (add, subtract, multiply, divide) on integers.
DATE Displays the current date and time, with an option to select your timezone.
CLEAR Clears the entire screen and moves the cursor to the top-left.
EXIT Exits the CLI mode and returns to the initial kernel screen.
LICENSE Displays the full GNU General Public License v3. Use UP/DOWN to scroll, 'q' to quit.
UPTIME Shows how long the system has been running since boot.