From 547affe6e5e9a9a0ede363daf7b2f2e3c551e37a Mon Sep 17 00:00:00 2001 From: Yixin Luo <18810541851@163.com> Date: Tue, 26 Jan 2016 17:05:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E4=B8=89=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interrupts/interrupts-1.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interrupts/interrupts-1.md b/interrupts/interrupts-1.md index 5071453..ba33477 100644 --- a/interrupts/interrupts-1.md +++ b/interrupts/interrupts-1.md @@ -137,9 +137,9 @@ static inline void native_irq_enable(void) 现在我们了解了一些关于各种类型的中断和异常的内容,是时候转到更实用的部分了。我们从 `中断描述符表` 开始。就如之前所提到的,`IDT` 保存了中断和异常处理程序的入口指针。`IDT` 是一个类似于 `全局描述符表(Global Descriptor Table)`的结构,我们在[内核启动程序](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-2.html)的第二部分已经介绍过。但是他们确实有一些不同,`IDT` 的表项被称为 `门(gates)`,而不是 `描述符(descriptors)`。 -* Interrupt gates -* Task gates -* Trap gates. +* 中断门 +* 任务门 +* 陷阱门 in the `x86` architecture. Only [long mode](http://en.wikipedia.org/wiki/Long_mode) interrupt gates and trap gates can be referenced in the `x86_64`. Like the `Global Descriptor Table`, the `Interrupt Descriptor table` is an array of 8-byte gates on `x86` and an array of 16-byte gates on `x86_64`. We can remember from the second part of the [Kernel booting process](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-2.html), that `Global Descriptor Table` must contain `NULL` descriptor as its first element. Unlike the `Global Descriptor Table`, the `Interrupt Descriptor Table` may contain a gate; it is not mandatory. For example, you may remember that we have loaded the Interrupt Descriptor table with the `NULL` gates only in the earlier [part](http://0xax.gitbooks.io/linux-insides/content/Booting/linux-bootstrap-3.html) while transitioning into [protected mode](http://en.wikipedia.org/wiki/Protected_mode):