Skip to content

Latest commit

 

History

History
73 lines (57 loc) · 2.09 KB

File metadata and controls

73 lines (57 loc) · 2.09 KB

Aesynx First Serial Boot

Status: v0.4 tagged milestone; v0.5 extends this with BootInfo normalization

v0.4.0 replaces the temporary v0.3 stage-0 probe with a Rust kernel entry. The image path now builds a release-profile freestanding x86_64-unknown-none ELF, packages it with Limine, boots it in QEMU, and validates serial output from Rust _start.

Commands

cargo xtask build-kernel
cargo xtask image
cargo xtask qemu

cargo xtask image creates:

build/qemu/aesynx-v0.4.0.iso
build/qemu/aesynx-v0.4.0.manifest

The manifest records the kernel profile, the Limine minimum version, and the Rust, Limine, xorriso, and QEMU version banners used to create and smoke-test the image.

cargo xtask qemu expects:

Aesynx: booting
arch=x86_64 platform=qemu
[TEST] boot=ok

Boot Path

  • boot/qemu/limine.conf configures Limine.
  • crates/aesynx-kernel/src/main.rs exports _start.
  • crates/aesynx-arch-x86_64/src/serial.rs provides the safe COM1 writer.
  • crates/aesynx-arch-x86_64/src/port.rs contains the reviewed port-I/O unsafe boundary.
  • linker/kernel-x86_64.ld keeps load segments page-separated so Limine does not load mixed-permission program headers onto the same page.
  • The v0.4 boot entry writes fixed strings directly, so the boot ELF avoids a writable .got section.
  • boot/qemu/limine.conf keeps KASLR disabled for the QEMU smoke image until Limine BootInfo parsing can populate KernelImageInfo with the randomized load addresses.

Boundary

This milestone proves:

  • Stable Rust can build the first freestanding kernel ELF.
  • Limine can load the ELF in QEMU.
  • Rust _start runs.
  • COM1 serial output works.
  • The QEMU smoke test validates a kernel-owned marker.
  • Panic serial output is best-effort and bounded so execution still reaches the halt path if the UART does not become ready.

This milestone does not prove:

  • BootInfo parsing.
  • Memory-map normalization.
  • KASLR-enabled boot.
  • Page-table ownership.
  • Interrupts or exceptions.
  • Panic diagnostics beyond a minimal serial fallback.
  • SMP-safe serial logging.
  • Allocator setup.