How fullavatar/rupios works
RuPiOs is a small bare-metal Raspberry Pi OS kernel with a serial command shell for system and interrupt diagnostics. The main workflow starts at the ARM boot entry, initializes UART and the GIC, then accepts shell commands and reports results over serial. Timer commands query or schedule the architectural timer; IRQ vectors dispatch through the exception handler to acknowledge GIC interrupts and update timer state. The README is empty, so capabilities are inferred from the sampled source; unsampled runtime behavior is not expanded.
Main entry points: exceptions.rs Exception handlers · shell.rs Command shell · uart.rs UART driver · timer.rs Timer services
Components 14
Boot and kernel
- ARM boot entry
src/boot.rs - Kernel startup
src/main.rs
Serial shell
- UART driver
src/drivers/uart.rs - Command shell
src/shell.rs - Info commands
src/shell.rs - Timer commands
src/shell.rs - IRQ commands
src/shell.rs - Exception commands
src/shell.rs
Interrupts and timer
- GIC driver
src/drivers/gic.rs - Exception vectors
src/boot.rs - Exception handlers
src/system/exceptions.rs - IRQ control
src/system/interrupts.rs - Timer services
src/system/timer.rs
Other components
- Serial user
Connections 26
- ARM boot entry → Kernel startup: enters
- Kernel startup → UART driver: initializes
- Kernel startup → GIC driver: initializes
- Kernel startup → Command shell: starts
- Serial user → UART driver: sends input
- UART driver → Serial user: prints output
- Command shell → UART driver: reads and writes
- Command shell → Info commands: dispatches
- Command shell → Timer commands: dispatches
- Command shell → IRQ commands: dispatches
- Command shell → Exception commands: dispatches
- Info commands → UART driver: prints results
- Info commands → Timer services: queries
- Info commands → Exception handlers: queries level
- Info commands → GIC driver: queries status
- Timer commands → Timer services: queries or schedules
- IRQ commands → IRQ control: enables IRQs
- IRQ commands → Timer services: reads count
- IRQ commands → GIC driver: queries pending
- Exception commands → Exception handlers: triggers fault
- Exception vectors → Exception handlers: dispatches exceptions
- Exception vectors → Exception handlers: dispatches IRQs
- Exception handlers → GIC driver: acknowledges and completes
- Exception handlers → Timer services: handles timer IRQ
- Exception handlers → UART driver: prints fault details
- Timer services → Timer services: reschedules IRQ