See also: Kernel Index, HAL, Init

This directory contains architecture-specific implementations.

Supported Architectures

Currently only i686 (Intel 32-bit) has concrete implementations. x86_64 and aarch64 are planned but not yet implemented.

i686 Architecture (kernel/arch/i686/)

Directory Structure

Directory Contents

boot/

Kernel entry point (_start), multiboot info parser, hardware detection (CPUID, memory)

cpu/

GDT, IDT, ISR stubs, IRQ handlers, PIT (i8253), PIC (i8259), TSS, scheduler context switch, usermode entry

drivers/

PS/2 controller driver, serial port driver

io/

Port I/O wrappers (inb/outb/inw/outw), interrupt control

mem/

Paging (page tables), TLB invalidation, stack operations, virtual memory layout definitions

signal/

Signal frame setup on user stack, sigreturn trampoline

syscall/

int 0x80 syscall handler

video/

VGA text mode driver (80x25 character display)

Key Files

  • linker.ld — Kernel linker script defining memory layout

  • rust-target.json — Rust target configuration (for potential Rust kernel components)

  • cpu/isrs_gen.c / cpu/isrs_gen.inc — Auto-generated ISR stubs (generated by cpu/mkisrs.sh)

  • mem/vm_layout.h — Virtual memory layout constants

Typical Work in This Area

  • Bring up a new CPU architecture target (x86_64, aarch64)

  • Adjust interrupt, syscall, and context-switch assembly paths

  • Tune paging and trap behavior for architecture-specific semantics

Revision History

v2.0

Updated for v0.28: clarified only i686 is implemented, added detailed directory structure table and key files

v1.0

Initial arch subsystem summary