How aliashrafabbasi/batos-os works
BATOS is an x86_64 kernel whose implemented workflow is boot handoff, hardware/platform setup, memory and interrupt initialization, then managed task execution through scheduling and lifecycle services. The graph preserves documented architecture stages and sampled process, memory, timer, and console capabilities. Some subsystem internals are unsampled; those connections are shown only when documented or supported by the SOURCE INDEX, with uncertain integration links omitted.
Main entry points: kernel.c Kernel startup · runtime.c Kernel runtime · execution.c Execution admission · task.c Task management
Components 20
Boot and platform
- Boot handoff
kernel/boot/boot.c - Kernel startup
kernel/kernel.c - Platform discovery
kernel/platform/platform.c
CPU and interrupts
- ACPI discovery
kernel/arch/x86_64/acpi/acpi.c - CPU setup
kernel/arch/x86_64/cpu/cpu.c - IRQ routing
kernel/arch/x86_64/interrupt/irq_routing.c - Interrupt controllers
kernel/arch/x86_64/apic/ioapic.c - Interrupt dispatch
kernel/arch/x86_64/interrupt/irq.c
Memory management
- Physical memory
kernel/mm/pmm/pmm.c - Virtual memory
kernel/mm/vmm/vmm.c - Kernel heap
kernel/mm/heap/heap.c
Processes and scheduling
- Process management
kernel/process/process.c - Task management
kernel/sched/task.c - Scheduler
kernel/sched/scheduler.c - Execution admission
kernel/execution/execution.c - Task reclamation
kernel/lifecycle/lifecycle.c
Kernel services
- Kernel runtime
kernel/runtime/runtime.c - Timer services
kernel/arch/x86_64/time/timer_service.c - Console output
kernel/console/console.c
Other components
- Bootloader
Connections 25
- Bootloader → Boot handoff: hands off
- Boot handoff → Kernel startup: provides boot data
kernel/boot/boot.c - Kernel startup → Physical memory: initializes
kernel/kernel.c - Kernel startup → Platform discovery: initializes
kernel/kernel.c - Kernel startup → IRQ routing: initializes
kernel/kernel.c - Kernel startup → Kernel runtime: starts
kernel/kernel.c - Kernel startup → Console output: reports through
kernel/kernel.c - Platform discovery → ACPI discovery: uses discovery
- Platform discovery → Interrupt controllers: configures
- IRQ routing → Interrupt controllers: programs routes
kernel/arch/x86_64/interrupt/irq_routing.c - IRQ routing → Interrupt dispatch: sets controller ownership
kernel/arch/x86_64/interrupt/irq_routing.c - Physical memory → Virtual memory: supplies frames
kernel/mm/vmm/vmm.c - Physical memory → Kernel heap: supplies frames
kernel/mm/heap/heap.c - Virtual memory → Kernel heap: maps heap memory
kernel/mm/heap/heap.c - Process management → Virtual memory: references address spaces
kernel/process/process.c - Task management → Virtual memory: maps task stacks
kernel/sched/task.c - Task management → Scheduler: joins runnable scheduling
kernel/sched/task.c - Execution admission → Process management: uses registry
kernel/execution/execution.c - Execution admission → Task management: admits tasks
kernel/execution/execution.c - Execution admission → Scheduler: registers runnable work
kernel/execution/execution.c - Task reclamation → Task management: reclaims resources
kernel/lifecycle/lifecycle.c - Kernel runtime → Execution admission: starts execution
kernel/runtime/runtime.c - Kernel runtime → Task reclamation: uses lifecycle
kernel/runtime/runtime.c - Kernel runtime → Timer services: initializes timer service
kernel/runtime/runtime.c - Kernel runtime → Console output: uses output
kernel/runtime/runtime.c