How jl115/jos works
This is a small bare-metal kernel prototype whose sampled runtime entry prints startup diagnostics, then idles. Its UART driver provides character, string, and formatted output through memory-mapped hardware. The source supports the UART call and register-access links shown; boot assembly and the documented future kernel phases were not sampled, so no boot-to-entry or roadmap behavior is inferred.
Main entry points: uart.c Format dispatch · uart_registry.h UART register map · kernel.c Kernel entry
Components 10
Kernel startup
- Kernel entry
src/kernel.c
UART output
- Formatted output
src/drivers/uart/uart.c - Format dispatch
src/drivers/uart/uart.c - Number formatting
src/drivers/uart/uart.c - Character output
src/drivers/uart/uart.c - UART transmit
src/drivers/uart/uart.c - Transmit readiness
src/drivers/uart/uart.c - UART register map
src/drivers/uart/uart_registry.h
Other components
- Platform runtime
- UART hardware
Connections 11
- Platform runtime → Kernel entry: enters
- Kernel entry → Formatted output: prints diagnostics
- Formatted output → Format dispatch: dispatches formats
- Format dispatch → Character output: outputs characters
- Format dispatch → Number formatting: formats numbers
- Number formatting → Character output: outputs digits
- Character output → UART transmit: sends characters
- UART transmit → Transmit readiness: waits for readiness
- Transmit readiness → UART register map: reads flag register
- UART transmit → UART register map: writes data register
- UART register map → UART hardware: maps MMIO