You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
kernel/arch/x86_64/arch_idt.{c,h}: a 256-entry IDT with interrupt
gates; a new GDT with a TSS; IST1 = panic stack (#DF/#MC get their
own stack - never a context switch on IST2, which is the dedicated
exception-exit stack, BUG-0139); IST2 = debug stack.
PIC and LAPIC
arch_irq.c remaps the 8259 to vectors 32-47 (IRQ0-15). The local
APIC handling lives in arch_lapic.c. The IRQ lines are visible
in-guest via irqabitest.
Exception path
The stubs (arch_idt_stub.S) build a frame, dispatch by vector:
page-fault growth (stack/heap), syscall entry (int 0x80 family ->
core_syscall.c), device IRQs, and the crash path for anything
unhandled: register dump to serial, crashlog to /etc, halt.
The boot-time self-test fires #DE, #UD and #PF deliberately and
asserts the kernel survives - exception self-test: 3/3 is on every
boot log, so a broken trap path never makes it to a shell prompt.
Time sources
PIT (the tick), HPET, ACPI PM timer, TSC, CMOS RTC - each with a
command (timer, hpet, pmtimer, tsc, rtc) and a bring-up
manual page under Drivers-Index-EN.