🎯 階段目標

  1. 控制台輸出:透過 display.c 操作顯存,實現內核級別的打印功能。
  2. 中斷架構:建立 IDT(中斷描述符表),讓 CPU 能夠響應外部事件。
  3. 鍵盤交互:透過重新映射 PIC,捕捉鍵盤掃描碼並轉譯為 ASCII 字符。

🏗️ 第一部分:核心知識點與硬體理論

1. 顯存與 VGA 模式

2. IDT (Interrupt Descriptor Table) 實體結構

IDT 是一個由 256 個描述符組成的數組。每個描述符(Gate)必須嚴格遵守 Intel 規定的 8 字節格式

struct idt_entry {
    u16 low_offset;  // 處理程序地址的低 16 位
    u16 sel;         ; // 段選擇子 (例如 0x08)
    u8  always0;     // 必須為 0
    u8  flags;       // 標誌位 (P, DPL, Type)
    u16 high_offset; // 處理程序地址的高 16 位
} __attribute__((packed)); // 必須 packed,防止編譯器優化對齊

3. IDT 與段選擇子 (Segment Selector)

當 CPU 接收到中斷時,它會查閱 IDT。

4. PIC 8259A 重新映射