Interrupts are not one path
This figure documents the historical i386 source baseline. Current native x86-64/AArch64 qualification is recorded separately; this is not an ELF64 or native SMP implementation diagram.
Exceptions, device IRQs and user syscalls share entry machinery but have different dispatch rules.
Text equivalent and source references
- CPU exceptions use isr_handler; PIC IRQs are remapped to vectors 32–47; the ring-3 syscall entry uses INT 0x80.
- irq_handler acknowledges the controller before calling a device handler. The BSP timer increments ticks, wakes sleepers and schedules when the quantum expires; AP entries skip shared tick work.
Dispatch tree. Source paths refer to the atlas baseline; the kernel checkout is private.
arch/x86/interrupt.asm · ISR / IRQ stubskernel/core/interrupt.c · irq_handler, timer_handlerkernel/core/x86.c · idt_init