操作系統(tǒng)實(shí)驗(yàn)一指導(dǎo)手冊_第1頁
已閱讀1頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、操作系統(tǒng)實(shí)驗(yàn)一指導(dǎo)手冊操作系統(tǒng)實(shí)驗(yàn)一指導(dǎo)手冊提示:此文檔只包含一些基本的實(shí)驗(yàn)提示,很多地方仍然需要自己去思考去實(shí)現(xiàn)。有能力的同學(xué)可以忽略此文檔。Feda7虛擬機(jī)鏡像的初始登錄用戶名:seu,密碼:seu,root用戶密碼:seu。實(shí)驗(yàn)實(shí)驗(yàn)1:LinuxLinux內(nèi)核代碼分析內(nèi)核代碼分析1.解壓內(nèi)核桌面上的linux2.6.21.tar.gz是linux2.6.21的內(nèi)核代碼壓縮包,解壓:$cdDesktop$tarzxvflinux2.

2、6.21.tar.gz$cdlinux2.6.212.生成內(nèi)核配置文件將當(dāng)前正在運(yùn)行的內(nèi)核對應(yīng)的配置文件作為模板來生成.config文件,即將boot目錄下的已有的config文件復(fù)制到linux2.6.21目錄下$makemrproper$cpbootconfig`unamer`.config第一個(gè)命令makemrproper用來保證內(nèi)核樹是干凈的,如果內(nèi)核第一次編譯則可以省略。其中的uname–r命令可查看當(dāng)前環(huán)境下的內(nèi)核版本號。更

3、新config文件:$makeoldconfig部分新配置項(xiàng)會(huì)提示用戶選擇,都選N或者缺省即可,完成后即可生成.config文件。3.編譯安裝內(nèi)核在編譯內(nèi)核前,可以定義自己的內(nèi)核版本號,在內(nèi)核代碼的根目錄下有Makefile文件,例如將第4行改為:EXTRAVERSION=seu這樣新內(nèi)核版本號就是2.6.21seu$makeall$su#makemodules_install#makeinstall#makeheaders_insta

4、llMakeall的執(zhí)行過程可能比較長。如果三個(gè)命令均成功執(zhí)行,可以觀察引導(dǎo)程序grub的配置文件bootgrubmenu.lst的內(nèi)容,在hiddenmenu之后可以看到剛剛編譯安裝的內(nèi)核版本,將hiddenmenu那一行注釋或刪除,方便直接操作菜單:#hiddenmenu或者h(yuǎn)iddenmenu然后重啟系統(tǒng):#reboot重啟后可以看到grub菜單已經(jīng)包含了新編譯的內(nèi)核。如果新內(nèi)核啟動(dòng)失敗,一般是由于配置或者內(nèi)核代碼修改的有問題,選

5、擇原先的內(nèi)核啟動(dòng),再進(jìn)行修改、編譯。另外,第2步中psta的實(shí)現(xiàn)不一定要在一個(gè)新文件中,例如文件kernelsys.c也許是添加這個(gè)系統(tǒng)調(diào)用的合適位置,這樣的話第3步就不需要了。4.在includeasmi386unistd.h里加上系統(tǒng)調(diào)用號的宏定義:其中NR_syscalls表示的值應(yīng)該是最大的系統(tǒng)調(diào)用號加一。5.修改includelinuxsyscalls.h,加上函數(shù)sys_psta的聲明。先在頭上加入結(jié)構(gòu)體申明structpi

6、nfo在該文件的頭文件引用列表的末尾添加:這算是pinfo結(jié)構(gòu)體的實(shí)現(xiàn)。在函數(shù)申明列表的最后添加:6.重新編譯內(nèi)核在清理上次編譯生成的中間文件之前,最好將配置好的.config文件備份至別的目錄下以防刪除,否則必須再執(zhí)行實(shí)驗(yàn)1中的第2步配置.config文件。$makemrproper在實(shí)驗(yàn)1中就已提到該命令,用于清理編譯內(nèi)核代碼的中間文件,它也會(huì)刪除.config文件。在清理執(zhí)行完成后,將備份的.config文件復(fù)制回來。然后執(zhí)行實(shí)驗(yàn)

7、1中的第3步就可以編譯安裝新內(nèi)核了。在這個(gè)過程里面可以換一個(gè)內(nèi)核版本名稱,以示區(qū)別,比如EXTRAVERSION=seu2。安裝好的內(nèi)核必須reboot后才能生效。以上6步成功執(zhí)行后系統(tǒng)調(diào)用psta就已被添加到系統(tǒng)中,下面來進(jìn)行測試。首先,可以用unamer命令測試目前所使用的內(nèi)核版本號。然后,隨便寫一個(gè)test.c文件,在里面使用glic庫提供的函數(shù)syscall來間接地使用新系統(tǒng)調(diào)用,調(diào)用syscall必須添加以下兩個(gè)頭文件,以及頭

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論