How guilhermegiacomosimoes/big_green_os works
This is an under-development x86 kernel, with an additional AVR boot-sector source. The clearest user-facing workflow is keyboard input through the PS/2 handler, command dispatch to the shell, and VGA text output; kernel startup installs interrupts and registers the keyboard handler. The sampled source supports these runtime links and the VGA-to-memory copy. Boot loading details and some interrupt assembly are not sampled, so their wiring is left unspecified.
Main entry points: ibmpc-ps2.c PS/2 handler · vga.c VGA text output · kernel.c Kernel startup · shell.c Command shell
Components 13
Boot and startup
- x86 boot code
arch/x86/boot - AVR boot sector
arch/avr/boot/mbr.asm - Kernel startup
arch/x86/kernel.c
Interrupt handling
- ISR and IRQ setup
arch/x86/io/int.c
Keyboard and shell
- Keyboard registration
drivers/keyboard/keyboard.c - PS/2 handler
drivers/keyboard/ibmpc-ps2.c - Command shell
client/shell.c
Platform and runtime
- Port I/O
arch/x86/io/helper.c - VGA text output
arch/x86/io/vga.c - Memory operations
lib/memory.c - String operations
lib/string.c - Kernel allocator
memory/alocated.c
Other components
- Keyboard user
Connections 13
- Kernel startup → VGA text output: prints startup
- Kernel startup → ISR and IRQ setup: installs interrupts
- Kernel startup → Keyboard registration: initializes keyboard
- ISR and IRQ setup → Port I/O: configures PIC
- Keyboard registration → ISR and IRQ setup: registers handler
- Keyboard user → PS/2 handler: presses keys
- PS/2 handler → Port I/O: reads scancode
- PS/2 handler → Command shell: dispatches command
- PS/2 handler → VGA text output: prints input
- PS/2 handler → String operations: uses string helpers
- Command shell → String operations: compares command
- Command shell → VGA text output: prints response
- VGA text output → Memory operations: scrolls screen