linux核心程式設計4部曲之四 模組程式設計

2021-07-09 23:06:10 字數 1461 閱讀 9919

一、實驗要求

新增系統呼叫加減乘除,並通過模組載入,實現加減乘除。

二、增加系統呼叫

按照實驗一的步驟增加系統呼叫:

增加系統呼叫主要分為3步:

1)、增加系統呼叫函式

修改/usr/src/linux-2.6.12/kernel/sys.c檔案,在檔案末尾增加4個系統響應函式(+、-、*、/)。這裡,我們在add系統呼叫中,使用了函式指標實現,即在系統呼叫中不指定具體實現,而在模組中指定具體實現,不過需要用export_symbol巨集將函式指標匯出。**如下:

2)、在系統呼叫表中註冊。在/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的具體實現函式,如下圖:

2)編寫makefile檔案

3)編譯模組

執行make  all,執行編譯,生成模組檔案。

五、測試

1)測試**

測試**主要檢驗add系統呼叫是否能完成加法功能,**如下:

2)安裝模組

通過insmod來載入模組,如下圖:

3)執行測試程式,測試結果

如果add呼叫正常,說明實驗取得成功。

linux核心程式設計4部曲之四 模組程式設計

linux 核心程式設計 4部曲之一 linux 核心編譯 2.6.12 版本 解說 linux核心程式設計4 部曲之二 增加linux 核心系統呼叫 linux核心程式設計4 部曲之三 修改o 1 排程演算法 linux核心程式設計4 部曲之四 模組程式設計 一 實驗要求 新增系統呼叫加減乘除,並...

塔勒布四部曲之《反脆弱》

繼 黑天鵝 的第二本,作者納西姆 尼古拉斯 塔勒布,是研究不確定性的專家。塔勒布曾經是華爾街上的明星交易員。他在20多年的交易員生涯中,經歷過1987年美國股災 9 11崩盤 2008年金融危機等重大事件。塔勒布的厲害之處在於,他不但在這些災難性事件中毫髮無損,而且還通過提前做空,從中大賺特賺。塔勒...

Linux之檔案程式設計(四)

linux檔案程式設計之安裝檔案系統 前言 可能我們機子上都按了兩個作業系統linux作業系統和xp,那麼我們一般都可以在linux下訪問xp下的檔案,但是我們卻不能在xp下訪問linux,這是為什麼呢?一.安裝檔案系統 1.由於 ext2 ext3是 linux 的標準檔案系統,所以系統把ext2...