MetalOS

An extremely minimalist OS - One app, one purpose, zero cruft.

MetalOS boots directly to a single full-screen QT6 application. No shell, no filesystem, no complexity.

Philosophy

"If it doesn't help QT6 Hello World, it doesn't exist."

This OS exists solely to run one QT6 application on AMD64 + Radeon RX 6600 hardware. Everything else is cut.

Design Principles

Boot directly to app - No command line or shell
Single application - One process, always running
No filesystem - App embedded in boot image
Static linking only - Maximum simplicity
Creative freedom - Not bound by POSIX or tradition
Precise drivers - Hardware code follows specs exactly

  • The main app is kinda part of the kernel, but we just put it in a different folder in this repo. No concept of users, unless it just a feature in the QT6 app, but thats unrelated.

What We Cut

See docs/MINIMALISM.md for full philosophy.

Scheduler Process management Filesystem
Networking Security Multi-core
Dynamic linking ACPI Virtual memory complexity

What We Keep (Absolute Minimum)

Memory allocator (bump allocator)
~5 interrupt handlers (timer, keyboard, mouse, GPU)
GPU driver (framebuffer only, ~50 KB)
Input drivers (PS/2 first, USB fallback, ~20 KB)
PCI scan (just find our GPU)
~5 syscalls (write, mmap, ioctl, poll, exit)

Target OS Size: ~200 KB (excluding QT6)

Development Phases

Phase 1: Project Foundation COMPLETE
Phase 2: UEFI Bootloader (Next)
Phase 3: Core Kernel Components
Phase 4: Hardware Support
Phase 5: System Call Interface
Phase 6: User Space & Application
Phase 7: QT6 Port
Phase 8: Integration & Testing

See docs/ROADMAP.md for detailed phase breakdown.

Building

make all      # Build bootloader, kernel, and userspace
make test     # Run unit tests
make qemu     # Test in QEMU
make clean    # Clean build artifacts

See docs/BUILD.md for detailed build instructions.

Documentation

Contributing

See CONTRIBUTING.md for guidelines. Remember: simplicity over features.

Target Hardware

  • CPU: AMD64 (x86-64)
  • GPU: Radeon RX 6600
  • Input: PS/2 or USB keyboard/mouse
  • Boot: UEFI

License

See LICENSE file for details.

Description
No description provided
Readme MIT 8.3 MiB
Languages
C++ 53.2%
C 21.6%
Shell 8.3%
CMake 6.9%
Python 6.1%
Other 3.9%