linux
核心程式設計
4部曲之一:
linux
核心編譯(
2.6.12
版本)**解說
linux核心程式設計4
部曲之二:增加linux
核心系統呼叫
linux核心程式設計4
部曲之三:修改o(1)
排程演算法
linux核心程式設計4
部曲之四:模組程式設計
一、實驗要求
新增系統呼叫加減乘除,並通過模組載入,實現加減乘除。
二、增加系統呼叫
按照實驗一的步驟增加系統呼叫:
增加系統呼叫主要分為3步:
1)、增加系統呼叫函式。
修改/usr/src/linux-2.6.12/kernel/sys.c檔案,在檔案末尾增加4個系統響應函式(+、-、*、/)。這裡,我們在add系統呼叫中,使用了函式指標實現,即在系統呼叫中不指定具體實現,而在模組中指定具體實現,不過需要用export_symbol巨集將函式指標匯出。**如下:
)、在系統呼叫表中註冊。在
/usr/src/linux-2.6.12/arch/i386/kernel/syscall_table_32.s
中新增我們的系統呼叫。
3
)、新增系統呼叫入口引數
在/usr/src/linux-2.6.12/include/asm-i386/unistd.h
中新增系統呼叫入口引數(注意:其中會順序定義入口引數的序號,新增的序號是在原有最大值的基礎上
+1)。
三、編譯核心,修改
grub
引導程式,重新啟動,進入修改過的核心。
四、編譯模組
1
)模組源**
模組源**主要實現了我們系統呼叫中函式指標
addfunc
的具體實現函式,如下圖:
)編寫makefile
檔案
3
)編譯模組
執行make all
,執行編譯,生成模組檔案。
五、測試
1
)測試**
測試**主要檢驗
add系統呼叫是否能完成加法功能,**如下:
)安裝模組
通過insmod
來載入模組,如下圖:
3
)執行測試程式,測試結果
如果add
呼叫正常,說明實驗取得成功。
0 給主人留下些什麼吧!~~
linux核心程式設計4部曲之四 模組程式設計
一 實驗要求 新增系統呼叫加減乘除,並通過模組載入,實現加減乘除。二 增加系統呼叫 按照實驗一的步驟增加系統呼叫 增加系統呼叫主要分為3步 1 增加系統呼叫函式。修改 usr src linux 2.6.12 kernel sys.c檔案,在檔案末尾增加4個系統響應函式 這裡,我們在add系統呼叫中...
塔勒布四部曲之《反脆弱》
繼 黑天鵝 的第二本,作者納西姆 尼古拉斯 塔勒布,是研究不確定性的專家。塔勒布曾經是華爾街上的明星交易員。他在20多年的交易員生涯中,經歷過1987年美國股災 9 11崩盤 2008年金融危機等重大事件。塔勒布的厲害之處在於,他不但在這些災難性事件中毫髮無損,而且還通過提前做空,從中大賺特賺。塔勒...
Linux之檔案程式設計(四)
linux檔案程式設計之安裝檔案系統 前言 可能我們機子上都按了兩個作業系統linux作業系統和xp,那麼我們一般都可以在linux下訪問xp下的檔案,但是我們卻不能在xp下訪問linux,這是為什麼呢?一.安裝檔案系統 1.由於 ext2 ext3是 linux 的標準檔案系統,所以系統把ext2...