操作系統(tǒng)課程設計實驗報告_第1頁
操作系統(tǒng)課程設計實驗報告_第2頁
操作系統(tǒng)課程設計實驗報告_第3頁
操作系統(tǒng)課程設計實驗報告_第4頁
操作系統(tǒng)課程設計實驗報告_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、第 1 頁 共 18 頁操作系統(tǒng)課程設計實驗報告冊班級:學號:姓名:教師:第 2 頁 共 18 頁實驗說明1實驗做為學習的重要促進手段,是為了深化對理論的理解,鍛煉實踐動手能力。2實驗同時也作為考核的手段。3實驗內(nèi)容會在課程進行中下達,并且會分次地、部分地被抽查。4課程結束時,要求把所有的實驗整理成一個完整的電子文檔并上交,做為最后成績的評定依據(jù)。5如果有興趣的合適的題目,也可自己選題目。格式說明1本文檔文件名命名為“ 學號 - 姓名” ,如“ 13071000_小王” 。2留白部分不足的自己調(diào)整長度,也可加頁(增加內(nèi)容應在表格內(nèi))。3每次的實驗報告都要在這個文件中(按照實驗次序依次)增加,而

2、不是每次一個新的 word 文件。4本文檔保存為 doc 格式( 請勿用 word2007的 docx格式) 。重要提示:1實驗正文建議使用小四號或五號宋體。2若附加圖形,則請直接嵌入到實驗手冊相應位置。3各實驗的源程序,請按實驗分目錄存放,如第一個實驗的源程序存放在目錄 lab1 下,第二個實驗的源程序存放在目錄lab2 下等等,依次類推。4可互相討論,但嚴禁抄襲網(wǎng)絡或同學的實驗結果。實驗編號4 題目系統(tǒng)調(diào)用實驗目的1. 了解系統(tǒng)調(diào)用2. 學習添加系統(tǒng)調(diào)用。實驗內(nèi)容為 linux 內(nèi)核增加一個系統(tǒng)調(diào)用,并編寫用戶進程的程序來測試。要求該系統(tǒng)調(diào)用能夠完成以下功能:(1). 該系統(tǒng)調(diào)用有1 個整

3、型參數(shù), 接收輸入自己的學號;(2). 若參數(shù)為奇數(shù), 則返回自己學號的最后5 位。 如您的學號為13051007,則返回 51007;(3). 若參數(shù)為偶數(shù),則返回自己的學號的最后4 位。如您的學號為 13051004,則返回1004。第 3 頁 共 18 頁報告內(nèi)容要求(1) 實現(xiàn)方法和思路(2) 測試及結果報告正文1. 第一步:解壓縮內(nèi)核源碼包linux-2.6.32.60.tar.bz2到目錄 /usr/src下解壓縮命令 tar xvf linux-2.6.32.60.tar.bz2 /usr/src 解壓縮后在 /usr/src中多了一個 linux-2.6.32.60的文件夾,之

4、后的修改源碼的工作都是在這個文件夾中進行。第二步:修改系統(tǒng)調(diào)用表文件linux-2.6.32.60/arch/x86/kernel/syscall_table_32.s在文件中最后一組 .long 代碼后添加一行.long sys_mycall 第三步:修改系統(tǒng)調(diào)用號文件,增加自己函數(shù)的系統(tǒng)調(diào)用號,并將系統(tǒng)總調(diào)用號增加。linux-2.6.32.60/arch/x86/include/asm/unistd_32.h 在文件最后增加系統(tǒng)調(diào)用第 4 頁 共 18 頁#define _nr_mycall 337 /自己函數(shù)的調(diào)用號同時修改系統(tǒng)調(diào)用函數(shù)總數(shù),這是可以調(diào)用的編號上限#define nr_

5、syscalls 338 注意: 系統(tǒng)調(diào)用號不是隨意添加, 一定是按順序排列是第幾個就是第幾個編號,例如原有 336 個系統(tǒng)調(diào)用,新添加的必須放在最下邊的第337 的位置,不能改成其他位置,編號是337. 第四步:增加系統(tǒng)調(diào)用聲明,修改文件linux-2.6.32.60/include/linux/syscalls.h 在文件后添加代碼asmlinkage long sys_mycall(int num);/ 我這里測試用的系統(tǒng)調(diào)用函數(shù)只用了一個int 型參數(shù),并返回一個long 型值,這條語句是你自己的函數(shù)的完整聲明,有幾個參數(shù)寫幾個參數(shù)。第五步:添加系統(tǒng)調(diào)用函數(shù)的實現(xiàn),修改文件linux-

6、2.6.32.60/kernel/sys.c 在文件后添加代碼,必須和第四步的聲明完全對應printk() 的輸出可以在終端中用dmesg命令查看asmlinkage long sys_mycall(int num) 第 5 頁 共 18 頁第六步:內(nèi)核編譯按照第二次課的ppt 重新編譯內(nèi)核,用新編譯的內(nèi)核作為啟動項。第七步:打開終端編寫測試代碼,代碼中調(diào)用你自己寫的系統(tǒng)函數(shù),編譯運行查看運行結果是否調(diào)用成功。也可以用dmesg 命令查看進程的printk() 函數(shù)的輸出。調(diào)用方式: syscall(系統(tǒng)調(diào)用號,參數(shù)列表); 創(chuàng)建一個 .c 的源文件,寫入測試代碼。測試實驗編號5 題目內(nèi)核模塊

7、實驗目的學會使用與創(chuàng)建內(nèi)核模塊實驗內(nèi)容題目一編寫一個內(nèi)核模塊;編譯該模塊;加載、卸載該模塊;第 6 頁 共 18 頁題目二用內(nèi)核模塊的方式為系統(tǒng)添加一個系統(tǒng)調(diào)用具體要求同專題一報告內(nèi)容要求(1) 實現(xiàn)方法和思路(2) 測試及結果報告正文內(nèi)核模塊編寫內(nèi)核模塊準備代碼和 makefile 代碼第 7 頁 共 18 頁makefile 第 8 頁 共 18 頁make 加載內(nèi)核成功移除第 9 頁 共 18 頁系統(tǒng)調(diào)用實驗編號5 題目proc 文件系統(tǒng)實驗目的了解并學會使用proc 文件系統(tǒng)實驗內(nèi)容編寫一個程序, 用來讀取和修改內(nèi)核參數(shù)(任意參數(shù)即可,不涉及到內(nèi)核編程,只需要使用標準c庫中的函數(shù)) 。

8、在/proc目錄下用自己的學號創(chuàng)建一個目錄,如/proc/13101201。然后在學號目錄下創(chuàng)建兩個文件,一個用自己的姓作為文件名,如/proc/13101201/zhang,此文件是只讀的,用于顯示當前進程的pid 信息;另一個文件用自己的名字作為文件名,如/proc/13101201/xiaoming,此文件是可讀寫的。報告內(nèi)容要求(1) 實現(xiàn)方法和思路(2) 測試及結果報告正文第 10 頁 共 18 頁1 實驗一的源代碼:運行第 11 頁 共 18 頁2 源代碼makefile 第 12 頁 共 18 頁加載內(nèi)核成功第 13 頁 共 18 頁!查看cat 卸載模塊第 14 頁 共 18

9、頁實驗編號7 題目專題四:設備驅動實驗目的學會使用設備驅動。實驗內(nèi)容完善例子中的字符設備程序,使之滿足以下功能:安裝設備后從設備中讀出字符串為你的學號;設備支持每次寫入字符不超過1024 個,超過部分被丟棄;用戶可以讀出最近寫入到設備中的字符;設備關閉前不能被多次打開;設備支持系統(tǒng)調(diào)用ioctl(int d, int req, ) req = 0 x909090, 清除設備中寫入的字符串; 自己編寫測試程序,驗證以上功能報告內(nèi)容要求(1) 實現(xiàn)方法和思路(2) 測試及結果報告正文1. 設備驅動程序代碼:第 15 頁 共 18 頁make 加載模塊第 16 頁 共 18 頁驗證功能:源代碼:第

10、17 頁 共 18 頁其他功能源代碼:#include #include void main() char yourmsg1024; char c1400; char waa1024; char u1024; int i; /*int h = open(/dev/rwbuf,o_rdonly); int n = read(h,yourmsg,sizeof(yourmsg); close(h); puts(yourmsg); printf(-n); for(i=0;i1400;i+) if(i1020) ci=a; else ci=u; h = open(/dev/rwbuf,o_wronly); n=write(h,c,sizeof(c)+1); close (h); h = open(/dev/rwbuf,o_rdonly); 第 18 頁 共 18 頁n = read(h,waa,sizeof(waa); close(h); puts(waa); printf(-n);*/ int h

溫馨提示

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

最新文檔

評論

0/150

提交評論