boredos_mirror/docs
Lluciocc 915e33434e
feature(input): implement keyboard layouts and utf-8 input subsystem
* Adding keyboard layout (backend)

* Update settings.c with new keyboard tab

* Fixing keyboard icon && Fixing long loading time in settings.c

* Refactor of key handling for a larger compatibility with the keyboard layout

* Adding keyboard handler

* Udating ps2.c with the new logic

* Updating WM/kernel/userland with the new input system

* Fixing keycode range && Updating dead keys handling

* Add comments for explanation

* Update notepad & vm.c to parse utf-8

* Adding utf-8 parsing utils in libc && Update notepad.c

* Adding icon for icon settings

* Fixing a warning with double definition

* Adding new kb kayout: QWERTZ and DVORAK && Update new layout instrauction

* Add documentation for keyboard input subsystem

This document outlines the architecture and design of the input subsystem, focusing on keyboard input processing, driver responsibilities, keycode representation, and keymap functionality.

---------

Co-authored-by: boreddevnl <chris@boreddev.nl>
2026-04-23 21:31:52 +02:00
..
appdev doc: adjust examples with ELF metadata 2026-04-21 00:28:29 +02:00
architecture feature(input): implement keyboard layouts and utf-8 input subsystem 2026-04-23 21:31:52 +02:00
build Remove installation instructions for toolchain 2026-04-18 16:45:48 +02:00
usage DOC: Reference .bashrc in terminal docs 2026-04-17 09:20:39 +02:00
README.md docs: restructure architecture documentation and add new guides 2026-04-22 18:15:39 +02:00

BoredOS Documentation

Internal guides, architecture, and application development.


Welcome to the documentation for BoredOS! This directory contains detailed guides on how the OS functions, how to build it, and how to develop applications for it.

Table of Contents

The documentation is organized into three main categories:

1. Architecture

Explains the logical layout of the kernel and internal components.

System

Memory

Storage & Filesystems

  • Filesystem: Virtual File System (VFS) and the RAM-based FAT32 simulation.
  • AHCI Drivers: Hardware communication for block storage devices.

Network

Graphics

  • Window Manager: Compositor, events, and overlapping windows.
  • Rendering: Framebuffer, font rendering, and image loading.

Hardware

  • PCI: PCI bus enumeration and device binding.
  • Input: PS/2 Keyboard and Mouse input handling.

Misc

  • Versioning: The OS date-based version scheme (YY.M[.x]) and kernel semantic versioning (MAJOR.MINOR.PATCH).

2. Building and Deployment

Instructions for compiling the OS from source.

  • Toolchain: Prerequisites and cross-compiler setup (x86_64-elf-gcc, nasm, xorriso).
  • Usage: Understanding the Makefile targets, QEMU emulation, and flashing to bare metal hardware.

3. Application Development

The SDK and toolchain guides for creating your own .elf userland binaries.

  • SDK Reference: Overview hub for SDK layout, includes, and links to detailed libc/syscall docs.
  • Syscalls: Current syscall numbers, FS/SYSTEM command IDs, and wrapper guidance.
  • libc Reference: Current libc headers, implemented APIs, and behavior notes.
  • UI API: Drawing on the screen, creating windows, and polling the event loop using libui.h.
  • Widget API: High-level UI components like buttons, textboxes, and scrollbars using libwidget.h.
  • Custom Apps: A step-by-step tutorial on writing a new graphical C application, editing the Makefile, and bundling it into the ISO.
  • ELF App Metadata: How to declare app icons and descriptions using source annotations, how the build system embeds them into .note.boredos.app ELF sections, and how the kernel reads them at runtime.
  • Example Apps: A collection of sample C applications ranging from basic terminal output to advanced TCP networking.
  • Grapher: Full reference for the built-in mathematical graphing application — equation syntax, keyboard controls, architecture, and configuration.

4. Usage

General guides on how to interact with the OS.

  • Booting: How to use the Limine bootloader and toggle kernel boot flags like -v.
  • Desktop: Window management, shortcuts, and desktop interaction.
  • Lumos: Using the system-wide search (Shift + Ctrl + Space).
  • Terminal: Command line interface, redirection, and common commands.
  • Launching Apps: Ways to launch files and applications, plus a software overview.