From 09b946dc5b41f4cc3eb2e5b9eb461b75bbd90e5a Mon Sep 17 00:00:00 2001 From: IngridMorstrad Date: Tue, 3 Dec 2024 19:26:38 -0800 Subject: [PATCH] Detail interrupt vector table in 1-the-basics.mdx ## Why is this change being made? I found the text a little confusing - wasn't clear what the interrupt vector table (IVT) contains. ## What's changed now? Updated to mention that the IVT has addresses of system code (interrupt handlers). --- src/content/chapters/1-the-basics.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/content/chapters/1-the-basics.mdx b/src/content/chapters/1-the-basics.mdx index 9042633..705721e 100644 --- a/src/content/chapters/1-the-basics.mdx +++ b/src/content/chapters/1-the-basics.mdx @@ -90,7 +90,7 @@ If you've ever written code that interacts with the OS, you'll probably recogniz User space to kernel space control transfers are accomplished using a processor feature called [*software interrupts*](https://en.wikipedia.org/wiki/Interrupt#Software_interrupts): -1. During the boot process, the operating system stores a table called an [*interrupt vector table*](https://en.wikipedia.org/wiki/Interrupt_vector_table) (IVT; x86-64 calls this the [interrupt descriptor table](https://en.wikipedia.org/wiki/Interrupt_descriptor_table)) in RAM and registers it with the CPU. The IVT maps interrupt numbers to handler code pointers. +1. During the boot process, the operating system stores a table called an [*interrupt vector table*](https://en.wikipedia.org/wiki/Interrupt_vector_table) (IVT; x86-64 calls this the [interrupt descriptor table](https://en.wikipedia.org/wiki/Interrupt_descriptor_table)) in RAM and registers it with the CPU. The IVT maps interrupt numbers (signifying the type of interrupt) to the memory address of the code (almost always system code, not user space code) handling the interrupt. For example, to read keyboard input, the user space program can make a system call that issues an interrupt, which will cause the kernel to look up the interrupt in the IVT and start running the interrupt handler. A image of a table captioned "Interrupt Vector Table". The first column, labeled with a number sign, has a series of numbers starting at 01 and going to 04. The corresponding second column of the table, labeled "Handler Address", contains a random 8-byte-long hex number per entry. The bottom of the table has the text "So on and such forth..."