How ivseznayfews/ivseznayfews-os works
Ivseznayfews is a hobby x86 operating system with a current 64-bit kernel and an earlier 32-bit version. Its user-facing workflow is boot into a kernel, initialize hardware and interrupt handling, accept keyboard input in an interactive shell, execute commands, and display results. The 64-bit version also documents physical-page allocation, a kernel heap, and round-robin task switching. README capabilities are included where source excerpts were unavailable; those subsystem links are limited to documented behavior rather than inferred call chains.
Main entry points: kernel/kmain.cpp 64-bit startup · kernel/kmain.cpp 32-bit startup · kernel/isr.cpp Exceptions and IRQs · kernel/isr.cpp Exceptions and IRQs
Components 25
Kernel startup
- 64-bit startup
64bit/kernel/kmain.cpp - Boot information
64bit/kernel/multiboot.cpp - GDT
64bit/kernel/gdt.cpp - IDT and dispatch
64bit/kernel/idt.cpp - Exceptions and IRQs
64bit/kernel/isr.cpp - PIC
64bit/kernel/pic.cpp - 32-bit startup
32bit/kernel/kmain.cpp - GDT
32bit/kernel/gdt.cpp - IDT and dispatch
32bit/kernel/idt.cpp - Exceptions and IRQs
32bit/kernel/isr.cpp - PIC
32bit/kernel/pic.cpp
Input and output
- Keyboard driver
64bit/kernel/keyboard.cpp - Interactive shell
64bit/kernel/shell.cpp - VGA console
64bit/kernel/vga.cpp - Serial output
64bit/kernel/serial.cpp
64-bit kernel
- PIT timer
64bit/kernel/pit.cpp - Physical allocator
64bit/kernel/pmm.cpp - Kernel heap
64bit/kernel/heap.cpp - Task scheduler
64bit/kernel/task.cpp
32-bit kernel
- Keyboard driver
32bit/kernel/keyboard.cpp - Interactive shell
32bit/kernel/shell.cpp - VGA console
32bit/kernel/vga.cpp - Serial output
32bit/kernel/serial.cpp
Other components
- GRUB / Multiboot
- GRUB / Multiboot
Connections 29
- GRUB / Multiboot → 64-bit startup: boots
- 64-bit startup → Boot information: reads boot data
- 64-bit startup → GDT: initializes
- 64-bit startup → IDT and dispatch: initializes
- 64-bit startup → PIC: initializes
- 64-bit startup → Keyboard driver: initializes
- 64-bit startup → PIT timer: initializes
- 64-bit startup → Physical allocator: initializes
- 64-bit startup → Kernel heap: initializes
- 64-bit startup → Task scheduler: initializes
- 64-bit startup → Interactive shell: starts
- IDT and dispatch → Exceptions and IRQs: dispatches
- Keyboard driver → Interactive shell: sends keys
- Interactive shell → VGA console: prints output
- Exceptions and IRQs → VGA console: reports exceptions
- Exceptions and IRQs → Serial output: reports exceptions
- Kernel heap → Physical allocator: allocates pages
- VGA console → Task scheduler: locks output
- GRUB / Multiboot → 32-bit startup: boots
- 32-bit startup → GDT: initializes
- 32-bit startup → IDT and dispatch: initializes
- 32-bit startup → PIC: initializes
- 32-bit startup → Keyboard driver: initializes
- 32-bit startup → Interactive shell: starts
- IDT and dispatch → Exceptions and IRQs: dispatches
- Keyboard driver → Interactive shell: sends keys
- Interactive shell → VGA console: prints output
- Exceptions and IRQs → VGA console: reports exceptions
- Exceptions and IRQs → Serial output: reports exceptions