Linux1 0核心中斷體系的建立

2021-07-03 12:35:21 字數 698 閱讀 9387

head.s中設定了idt的指標,共256項,都指向ignore_int函式

ignore_int:

cldpushl %eax

pushl %ecx

pushl %edx

push

%dspush

%espush

%fs movl $(kernel_ds),%eax

mov %ax,%ds

mov %ax,%es

mov %ax,%fs

pushl $int_msg

call _printk

popl %eax

pop%fs

pop%es

pop%ds

popl %edx

popl %ecx

popl %eax

iret

而在traps.c檔案中,對可能出現的異常進行初始化

void trap_init(void)

至於硬體裝置產生的中斷,linux1.0核心專門建立了對應的函式呼叫表,當產生中斷則呼叫相應的函式。在irq.c檔案中處理。

void init_irq(void)

bh_active = 0;

intr_count = 0;

}

Linux 核心中斷體系 初探

還是要先理解整個中斷的體系,首先要理解對中斷的含義 如果這是涉及到的軟體的除錯的話,沒有接觸過硬體的同學會對,gdb的除錯中的中斷有一定的認知 但是,這兩個中斷指的意思是不相同的,gdb的除錯中的中斷 指的是程式執行到某個節點的的時候就跳出程式,這個 節點指的是提前設定好的中斷點,而這個linux ...

Linux核心 10 核心中的鍊錶

使用鍊錶的目的很明確,因為有很多事情要做,於是就把它放進煉表裡,一件事一件事的處理。比如在usb子系統裡,u盤不停的提交urb請求,usb鍵盤也提交,usb滑鼠也提交,那usb主機控制器咋應付得過來呢?很簡單,建乙個鍊錶,然後你每次提交就是往裡邊插入,然後usb主機控制器再統一去排程,乙個乙個來執行...

linux核心中的軟中斷的實現

最近在閱讀linux核心原始碼,把自己的一些理解發上來,一方面看到的朋友可以幫我指正我理解偏差的地方,別一方面也算是做乙個簡單的總結。首先呼叫open softirq 函式來初始化軟體中斷處理函式,將軟體中斷處理函式根據軟中斷的下標號插入到softirq vec陣列中,實現過程很簡單如下 123 4...