Forest OS Wiki
Welcome to the Forest OS wiki. This covers the architecture, kernel, bootloader, libraries, userspace, build system, and development workflow. For the full and always-current version, see the wiki on GitHub.
What is Forest OS?
Forest OS (codename ALDER) is a Unix-like operating system written from scratch. It is not a Linux distribution — it has its own kernel, bootloader, C library, cross-toolchain, and userspace.
| Component | Name | What it does |
|---|---|---|
| Kernel | Fern | Memory, processes, filesystems, networking, graphics, audio, hardware drivers |
| Bootloader | ForeB | BIOS 3-stage loader and native UEFI application |
| C Library | libc | POSIX C standard library and system call wrappers |
| Cross-Toolchain | ForestOS Toolchain | GCC 13.2.0 targeting i686-forestos and x86_64-forestos |
Quick Navigation
Architecture
- Overview — how everything fits together
- Boot Flow — from power-on to login prompt
- Kernel–Userspace Interface — system calls and conventions
- Component Communication — how parts talk to each other
Kernel (Fern)
- Overview — Fern at a glance
- Memory Management — physical/virtual memory, paging, COW, swap
- Process Management — fork/exec, ELF loading, signals, SMP
- Virtual Filesystem — VFS layer, devfs, procfs, sysfs
- Filesystems — FAT, ext2/3/4, ISO9660, and more
- Networking — TCP/IP stack, Ethernet drivers
- Graphics — framebuffer, drivers, font rendering
- OpenGL — software OpenGL 1.1 renderer
- Audio — sound system and drivers
- USB — USB controller and device drivers
- Hardware Abstraction — PCI, ACPI, timers, interrupts
- Session Management — TTY sessions, GUI sessions
- Security — SMEP/SMAP, stack protection, VMM security
- Multi-Architecture — x86, x86_64, ARM, RISC-V support
- Kernel Configuration — conf.sh and .forestos_config
Bootloader (ForeB)
- Overview — ForeB at a glance
- BIOS Boot — 3-stage MBR bootloader
- UEFI Boot — native UEFI loader
- Boot Menu — graphical forest-themed menu
- Configuration — forebo.cfg reference
- Recovery Tools — disk tools, shell, rescue mode
- Theme Customization — backgrounds, icons, colors
Libraries
- Overview — library ecosystem
- libc — POSIX C standard library
- ForestCore — low-level runtime helpers
- LeafGFX — graphics library
- LeafUI — UI framework
- Third-Party — uACPI, qrcodegen
Userspace
- Overview — all 44 applications
- Shell — forest-shell interactive shell
- Core Utilities — cat, ls, cp, and friends
- System Tools — ps, kill, init, shutdown
- Disk Tools — fdisk, mkfs, mount, and more
- X11 Server — forest-x11 display server
- Initrd Builder — creating initial RAM disks
- Installer — forinstall + forupdate, install and offline update reference
Build System
- Overview — how the build works
- Toolchain — cross-compiler setup
- Kernel Build — building the kernel
- Userspace Build — building userspace apps
- ISO Creation — creating bootable media
- Interactive Build — createos.sh GUI builder
Install
- Install on a VM — QEMU/VirtualBox/VMware install walkthrough
- Install on Real Hardware — USB install, firmware setup, bootloader sectors, post-install
- USB Persistence — live vs persistent vs full USB install
- Overview — installation methods at a glance
- Requirements — hardware and media prerequisites
- Quick-Start — fastest path to an installed system
- Backup — back up before forinstall wipes the target
- Choosing a Filesystem — ext2 vs ext4 and layout choices
- Partitioning — MBR layout, schemes, fdisk verify
- Filesystem Setup — mkfs, mount, fstab variants
- Install Guide (BIOS) — step-by-step BIOS install
- Install Guide (UEFI) — step-by-step UEFI install
- Dual-Boot — alongside another OS, chainload, shared FAT32
- First Boot — what to expect on first startup
- Post-Install — users, networking, updates setup
- Updates — offline forupdate, manifest, backup, rollback
- Remove / Uninstall — restore MBR, reclaim space, reuse USB
- Troubleshooting — common install and boot failures
- FAQ — installation frequently asked questions
Development
- Contributing — how to contribute
- Code Style — coding conventions
- Testing — testing with QEMU
- Troubleshooting — common issues and fixes
Reference
- FAQ — frequently asked questions