linux
下增加新的系統功能呼叫在
linux
環境下為
os增加乙個新的系統功能呼叫。功能是:把使用者輸入的整數乘以
2後回。
這份實驗報告是在第乙個程式設計作業時,一邊在
ubuntu9.10
上做實驗,一邊整理的。
在這裡只是將我在
ubuntu9.10
下的整個操作過程描述一下:
1.
linux-2.6.33.1.tar..bz2
放在home/ht/
下,
2.
然後拷貝到/usr/src/
下用sudo cp /home/ht/linux-2.6.33.1.tar.bz2 /usr/src/ linux-2.6.33.1.tar.bz2
3.
解壓該資料夾
使用命令tar –jxvf /usr/src/ linux-2.6.33.1.tar.bz2
結果在/home/ht/
中出現了linux-2.6.33.1
;將壓縮後的/home/ht/linux-2.6.33.1
移動到/usr/src/ linux-2.6.33.1.tar.bz2
使用命令sudo mv linux-2.6.33 /usr/src/linux-2.6.33
編寫源**,在在/usr/src/linux-2.6.33.1/kernel/sys.c檔案中新增源**,如下所示:
asmlinkage int sys_mycall(int number)
4.
連線新的系統呼叫:1>
在/usr/src/linux-2.6.33.1/arch/x86/include/asm/unistd_32.h
中給系統呼叫分配乙個唯一的編號,我分配的是338.
同時並修改下面的#define nr_syscalls 338
,改為#define nr_syscalls339
。(我頭兩會編譯時都沒有意識到這邊,後來是在測試自己增加的系統功能呼叫時出了問題,上網找了資料才發現的,然後又從新編譯一邊核心。)
5.
在arch/x86/kernel/syscall_table_32.s
中新增:.long sys_mysyscall
6.
在當前工作目錄(/usr/src/linux-2.6.33.1)下,才可以重建核心定製核心:
先用sudo mrproper(清除前一次編譯的內容,在第一次編譯時,如果使用這個命令,終端提示沒有相應的make規則)
然後用sudo make config
或者sudo make oldconfig
重建核心(這有四種選擇,第二次編譯時我選了前一種,每個配置我都選用預設形式,第三次編譯時使用的是第二種)
下面是乙個截圖:(第三次編譯的)
7.
sudo make clean
(頭一次輸入這個命令時終端提示這個命令時
unnecessary
,在第三次編譯時有乙個如下所示的截圖:)
Ubuntu9 10 中核心編譯過程(二)
8.編譯核心 sudo make 使用時間大約是80 分鐘左右,下面是 乙個截圖 9.安裝模組輸入命令 sudo make modules install 10.安裝核心,直接輸入命令 sudo make install 11.生成映象檔案 輸入命令 sudo mkinitramfs o initr...
ubuntu9 10配置編譯xawtv 3 95
2.解壓,配置 tar xzf xawtv 3.95.tar.gz cd xawtv 3.95 configure prefix pwd tmp make make install 3.出現的錯誤 1 console fs.h找不到 console fs.h 2 20 error fslib.h n...
ubuntu9 10 硬碟安裝
網上一般有乙個步驟是 修改 boot.ini,在最末加上一句 c grldr ubuntu 其實我開啟的時候發現其實wingrub已經為我們做好這一步了 4 重啟計算機,選擇ubuntu。之後就進入了livecd介面,開啟終端,sudo umount l isodevice,然後關閉終端,雙擊桌面上...