Files
termOS/ROADMAP.md
T
2026-01-30 00:52:43 +04:00

3.7 KiB

termOS Roadmap

Legend

  • Done: Implemented and working.
  • 🚧 WIP: Currently under active development.
  • 📅 Planned: Scheduled for future releases.
  • 🤔 Vision: Long-term goals for v1.0.

Current Status: v0.5.2 (Alpha)

Where we are now.

  • Core: Ring 0 / Ring 3 isolation implemented.
  • Mem: PMM (bitmap), VMM (PML4, HHDM).
  • Exec: Custom HOT! executable format (static loader).
  • FS: VFS + Initramfs (CPIO, read-only).
  • User: Basic jump to userspace (hardcoded stack, no heap yet).

📅 Phase 1

Goal: Transform the decorative userspace into a functional mechanism.

v0.5.3 (Immediate Priority)

Focus: Lifecycle & Memory

  • Syscall: Memory Management
    • Implement sys_sbrk or sys_mem.
    • Allow userspace to dynamically allocate pages (User Heap).
  • Syscall: Process Lifecycle
    • sys_spawn(path): Load .hot files via VFS, create new process structures.
    • sys_exit(code): Proper termination, ZOMBIE state, resource cleanup in scheduler.
  • Userspace Lib (mini-libc)
    • Wrappers: malloc, free, exec, exit.
    • crt0.asm for proper main() entry.

v0.5.4 (The Shell Update)

Focus: Interactive Userspace

  • Userspace Shell (ush)
    • Porting ksh logic into a standalone .hot binary.
    • Standard I/O abstraction (stdin/stdout) to pass keyboard input to active process.
  • Basic Utils
    • ls, cat, echo, ver as standalone programs.
    • Remove built-in commands from the kernel.

📅 Phase 2

Goal: Total independence from external libraries and architectural hygiene.

v0.6.0 (Architecture Overhaul)

  • Bootloader Independence
    • Remove posix-uefi library.
    • Write custom UEFI entry point (pure PE).
    • Kernel itself becomes a valid .hot executable (or loaded by custom bootloader).
  • HOT! Format Hardening
    • Fix segment alignment (Page Alignment) in elf2hot and kernel loader.
    • Add metadata headers (stack size, permissions).
  • Concurrency Fixes
    • Implement spinlocks (spinlock).
    • Protect allocator and process lists from interrupt race conditions.

📅 Phase 3

Goal: Prepare the environment for self-hosting. We cannot compile on a Read-Only FS.

v0.7.0 (Filesystem & Input)

  • Write Support
    • Storage driver (NVMe/AHCI or Writable RAMDisk).
    • Writable Filesystem (FAT32 or custom simple FS).
  • Input Subsystem
    • Input buffering, Pipe (|) support in shell.
    • Basic TTY/PTY abstraction.

v0.8.0 (The Editor)

  • Text Editor
    • Write a simple editor (nano-like) in userspace.
    • Capabilities: Open, Edit, Save files.

📅 Phase 4

Goal: Self-Hosting.

v0.9.0 (The Toolchain)

  • Linker (hld)
    • Native linker capable of outputting .hot files (running inside termOS).
  • Compiler Port
    • Port TCC (Tiny C Compiler) to termOS.
    • Adapt libc headers for the OS environment.

🤔 v1.0.0 (Self-Hosting)

  • Bootstrapping
    • Compile the Dewar kernel inside termOS.
    • Boot from the newly compiled kernel.
    • Total victory.

📜 History

Version Date Key Features
v0.5.2 2026-01-30 HOT! format, Ring 3 isolation, VFS, CPIO parsing.
v0.5.1 2026-01-29 Initial userspace jumps, syscall mechanics.
v0.5.0 2026-01-29 Kernel officially named "Dewar". Versioning standardized.
v0.4.x 2026-01-28 Basic VFS, Shell improvements, basic multitasking.
v0.3.x 2025-12-30 Scheduler, Composer, Heap manager.
v0.2.x 2025-12-28 ksh, Keyboard driver, HHDM, PMM/VMM.
v0.1.x 2025-12-21 First boot, GDT/IDT, Serial/Console, Panic handler.