Skip to content

UTAMO OS v0.1.0

Choose a tag to compare

@zaureliu zaureliu released this 14 Sep 05:58
· 56 commits to main since this release

UTAMO OS v0.1.0

The first interrupt-driven UTAMO OS milestone builds on the preserved v0.0.1
boot baseline. The kernel now reaches an interactive utamo> prompt.

Highlights

  • Own x86_64 descriptor tables and CPU exception diagnostics.
  • Hardware timer interrupts and buffered PS/2 input.
  • A small, real kernel shell with explicit fault-test commands.
  • Existing boot, framebuffer, serial and freestanding foundations preserved.

Implemented

  • Limine boot and a higher-half ELF64 kernel in freestanding C17 and NASM.
  • GDT, 64-bit TSS and IST stacks for critical exceptions.
  • A 256-entry IDT, normalized interrupt frames and SysV AMD64 Assembly stubs.
  • Fatal CPU exception reports with general registers and serial-first output.
  • Page fault diagnostics with CR2 and error-bit decoding.
  • PIC 8259 remapping, masking, spurious IRQ handling and EOI.
  • PIT channel 0 at a nominal 100 Hz and monotonic ticks.
  • PS/2 set 1 keyboard initialization, input buffering and scancode decoding.
  • Shell commands: help, clear, version, sysinfo, mem, uptime,
    echo, halt, fault ud2, fault div0, fault pf.
  • Host tests, ELF/ABI inspection and a bounded headless QEMU harness.

Fault commands deliberately stop the kernel and never run during normal boot.

Validation

Recorded v0.1.0 results:

Validation Checks Failures
Host tests 5,214 0
ELF / ABI inspection 1,303 0
QEMU headless 126 0
Total 6,643 0

The same 6,643-check matrix passed again after the public documentation
preparation, with an unchanged kernel ELF hash and a regenerated ISO.

The headless runs observed the boot prompt, loaded GDT/IDT, advancing PIT
ticks, Invalid Opcode, Divide Error and Page Fault diagnostics, and a halted
CPU after fatal probes. The validated build used x86_64-elf GCC 14.2.0,
Binutils 2.43.1, NASM 3.01, Limine v8.7.0-binary and QEMU 10.2.1.

The maintainer separately confirmed manual QEMU/VNC validation on 2026-09-14:
PS/2 keyboard, character typing, Enter, Backspace, shell commands, clear
and halt. These are maintainer-reported results, not additional automated
checks. No specific image hash was supplied for the manual session.

These observations apply to the recorded validation environment; they do not
guarantee results on future builds or arbitrary hardware.
See the implementation report
and validation record.

Known Limitations

UTAMO OS is experimental and is not intended for production use.

There is no complete PMM, own VMM, kernel heap, multitasking, processes,
userspace, filesystem, networking or GUI/window manager. The current kernel
runs on one CPU in ring 0 and uses the bootloader's initial mappings.

Input is ASCII US with a bounded line buffer. The terminal clears on overflow;
it has no scrollback. There is no reboot command or exception recovery.
PIT uptime is nominal and uncalibrated.

TSS/IST is configured, but Double Fault, NMI and Machine Check were not
deliberately triggered in the recorded QEMU tests. UEFI and physical hardware
were not validated for this release. Exhaustive modifier combinations and
all graphical fault reports are outside the specific manual confirmation.

Next Milestone

v0.2.0 — Physical and virtual memory management: explicit frame ownership,
reserved-memory handling, physical allocation, own page tables and guard pages.

The v0.0.1 tag is preserved. Release sources use the annotated v0.1.0 tag.
Build outputs, the local toolchain and the Limine vendor checkout are excluded
from the repository.