Features
Brew DE
Windows 3.1 UI Inspired Desktop Environment.
Network Stack
A fully working network stack.
Interrupt Handling
Basic IDT implementation with essential handlers.
FAT32 File System
Memory based FAT32 file system.
CLI
A shell to interact with the kernel.
PS/2 Keyboard/Mouse Driver
Handles key presses and mouse movements.
Command-Line Interface (CLI)
How to Use
Upon boot, you will be greeted with the BrewOS desktop, under the "BrewOS" menu in the bottom left you can click on applications and run them.
Handy Tools
HELP
A cmd command allowing you to see a short list of available commands.
Explorer
Allows the user to navigate the file system.
About
Displays brewkernel and BrewOS version number.
Calculator
A simple calculator for basic arithmetic operations (add, subtract, multiply, divide) on integers.
Notepad
Allows you to jot down some notes!
Control panel
Allows you to graphically change certain settings.
Prerequisites
To build BrewOS, you'll need the following tools installed:
Required Tools
- x86_64 ELF Toolchain:
x86_64-elf-gcc,x86_64-elf-ld - NASM: Netwide Assembler for compiling assembly code
- xorriso: For creating bootable ISO images
- QEMU (optional): For testing the kernel in an emulator
macOS Installation
brew install x86_64-elf-binutils x86_64-elf-gcc nasm xorriso qemu
Building
Simply run make from the project root:
make
Build Process
- Compile all kernel C sources and assembly files
- Link the kernel ELF binary
- Generate a bootable ISO image (
brewos.iso)
Build Output
- Compiled object files:
build/ - ISO root filesystem:
iso_root/ - Final ISO image:
brewos.iso
Running
QEMU Emulation
Run the kernel in QEMU:
make run
Or manually:
qemu-system-x86_64 -m 2G -serial stdio -cdrom brewos.iso -boot d
Running on Real Hardware
Warning: This is at YOUR OWN RISK. This software comes with ZERO warranty and may break your system.
- Create bootable USB: Use Balena Etcher to flash
brewos.isoto a USB drive - Prepare the system:
- Enable legacy (BIOS) boot in your system BIOS/UEFI settings
- Disable Secure Boot if needed
- Boot: Insert the USB drive and select it in the boot menu during startup
Tested Hardware
- HP EliteDesk 705 G4 DM (AMD Ryzen 5 PRO 2400G, Radeon Vega)
- Lenovo ThinkPad A475 20KL002VMH (AMD Pro A12-8830B, Radeon R7)
Project Structure
src/kernel/- Main kernel implementationboot.asm- Boot assembly codemain.c- Kernel entry point*.c / *.h- Core kernel modules (graphics, interrupts, filesystem, etc.)cli_apps/- Command-line applicationswallpaper.ppm- Default desktop wallpaperbuild/- Compiled object files (generated during build)iso_root/- ISO filesystem layout (generated during build)limine/- Limine bootloader files (downloaded automatically)linker.ld- Linker script for x86_64 ELFlimine.cfg- Limine bootloader configurationMakefile- Build configuration and targets
Help me brew some coffee! ☕️
If you enjoy this project, and like what i'm doing here, consider buying me a coffee!
License
Copyright (C) 2024-2026 boreddevnl
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
NOTICE
This product includes software developed by Chris ("boreddevnl") as part of the Brewkernel/BrewOS project.
Copyright (C) 2024–2026 Chris / boreddevnl (previously boreddevhq)
All source files in this repository contain copyright and license headers that must be preserved in redistributions and derivative works.
If you distribute or modify this project (in whole or in part), you MUST:
- Retain all copyright and license headers at the top of each file.
- Include this NOTICE file along with any redistributions or derivative works.
- Provide clear attribution to the original author in documentation or credits where appropriate.
The above attribution requirements are informational and intended to ensure proper credit is given. They do not alter or supersede the terms of the GNU General Public License (GPL), which governs this work.