西安交大操作系統(tǒng)課內(nèi)實驗報告.doc

西安交大操作系統(tǒng)課內(nèi)實驗報告.doc

ID:59437825

大小:263.50 KB

頁數(shù):49頁

時間:2020-05-19

西安交大操作系統(tǒng)課內(nèi)實驗報告.doc_第1頁
西安交大操作系統(tǒng)課內(nèi)實驗報告.doc_第2頁
西安交大操作系統(tǒng)課內(nèi)實驗報告.doc_第3頁
西安交大操作系統(tǒng)課內(nèi)實驗報告.doc_第4頁
西安交大操作系統(tǒng)課內(nèi)實驗報告.doc_第5頁
資源描述:

《西安交大操作系統(tǒng)課內(nèi)實驗報告.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、操作系統(tǒng)原理課內(nèi)實驗報告學(xué)生姓名司默涵專業(yè)/班級計算機11班學(xué)號所在學(xué)院電信學(xué)院指導(dǎo)教師何暉張航提交日期2013年12月25日操作系統(tǒng)原理課內(nèi)實驗1.實驗?zāi)康?.1用戶接口實驗(1)理解面向操作命令的接口Shell;(2)學(xué)會簡單的shell編碼;(3)理解操作系統(tǒng)調(diào)用的運行機制;(4)掌握創(chuàng)建系統(tǒng)調(diào)用的方法。操作系統(tǒng)給用戶提供了命令接口和程序接口(系統(tǒng)調(diào)用)兩種操作方式。用戶接口實驗也因此而分為兩大部分。首先要熟悉Linux的基本操作命令,并在此基礎(chǔ)上學(xué)會簡單的shell編程方法。然后通過想Linux內(nèi)核添加一個自己

2、設(shè)計的系統(tǒng)調(diào)用,來理解系統(tǒng)調(diào)用的實現(xiàn)方法和運行機制。在本次實驗中,最具有吸引力的地方是:通過內(nèi)核編譯,將一組源代碼變成操作系統(tǒng)的內(nèi)核,并由此重新引導(dǎo)系統(tǒng),這對我們初步了解操作系統(tǒng)的生成過程極為有利。1.2文件系統(tǒng)實驗(1)掌握文件系統(tǒng)的工作機理;(2)理解文件系統(tǒng)的主要數(shù)據(jù)結(jié)構(gòu);(3)學(xué)習(xí)較為復(fù)雜的LINUX下的編程。這是相對來說有一定難度的實驗,它含蓋了一個簡單的二級文件系統(tǒng)的設(shè)計以及相關(guān)的接口命令編寫的內(nèi)容,也鑒于此把它放在了最后一個實驗。“一分耕耘,一分收獲”,在完整的完成本實驗,你將獲得的收益是:對文件系統(tǒng)工作

3、的機理,特別是linux的ext2文件系統(tǒng)工作機理了如指掌;linux下較強的編程能力。(注)文件系統(tǒng)實驗由吳治誠()和司默涵()分工合作完成。具體分工如下:吳治誠同學(xué)主要負(fù)責(zé)程序主體算法(例如用戶目錄等)和有關(guān)文件功能的實現(xiàn);司默涵同學(xué)主要負(fù)責(zé)子文件系統(tǒng)有關(guān)功能、位示圖的實現(xiàn)和錯誤調(diào)試。2.實驗方法詳述2.1用戶接口實驗通過將自行創(chuàng)建的系統(tǒng)調(diào)用添加到linux內(nèi)核中實現(xiàn)。2.2文件系統(tǒng)實驗實際上是利用了高級語言對jinux的文件系統(tǒng)進(jìn)行了模擬。真正的文件系統(tǒng)對外存進(jìn)行管理,涉及到許多硬件、設(shè)備管理方面的底層技術(shù),一方

4、面這些技術(shù)不屬于操作系統(tǒng)核心內(nèi)容,一方面過多的內(nèi)容不免造成實驗者顧此失彼,所以這里推薦一種使用內(nèi)存來模擬外存的方式,可以跳過這些硬件技術(shù)而直接把精力放在數(shù)據(jù)結(jié)構(gòu)設(shè)計和操作算法設(shè)計上面。3.詳細(xì)實驗過程3.1用戶接口實驗對于linux-3.0.2版本的系統(tǒng)添加方法:提示:建議使用Gcc-4.6版本(如果使用Ubuntu,建議使用Ubuntu12.04)1.修改arch/x86/include/asm/unistd_32.h,添加以下內(nèi)容:#define__NR_mycallSYS_ID并修改文件中的NR_syscalls

5、,將其值增加12.修改arxh/x86/include/asm/syscalls.h添加以下內(nèi)容:asmlinkagevoidsys_mycall();3.修改arch/x86/kernel/syscall_table_32.S,添加以下內(nèi)容:.longsys_mycall編譯內(nèi)核(請盡量避免使用makeclean)1.配置內(nèi)核(建議使用默認(rèn)配置,僅僅修改localversions即,可當(dāng)然也可以把一些無用的模塊去掉)makemenuconfig2.編譯內(nèi)核(-jN中的N表示使用多少個線程編譯,一般為處理器數(shù)目+1)m

6、ake-j5bzImage3.編譯內(nèi)核模塊make-j5modules4.安裝內(nèi)核模塊(需要root權(quán)限)提示:模塊被安裝在/lib/modules/versions/下(比如2.6.31內(nèi)核在config時設(shè)定其的localversions為-myservice,那么versions為2.6.31-myservice)sudomakemodules_install5.安裝內(nèi)核提示:在較新的Linux發(fā)行版中會自動生成init內(nèi)存文件系統(tǒng),并將配置文件、內(nèi)核及init內(nèi)存文件系統(tǒng)拷貝到/boot目錄下,最后更新引導(dǎo)。s

7、udomakeinstall6.(可選步驟)提示:在較舊的發(fā)行版中,可能需要手動生成init內(nèi)存文件系統(tǒng)及更改引導(dǎo)。生成init內(nèi)存文件系統(tǒng):mkinitramfs-k-oinitrd.img-versionsversions更改引導(dǎo)(grub文件):參考原有的啟動項,添加新內(nèi)核的啟動項即可。使用系統(tǒng)調(diào)用#includeintmain(intargc,char*argv[]){syscall(SYS_ID);return0;}運行程序后使用以下命令查看內(nèi)核日志(printk的輸出信息在內(nèi)核日志中):d

8、mesg3.2文件系統(tǒng)實驗3.2.1外存管理其實很早人們設(shè)計操作系統(tǒng)的時候就意識到一個問題:所有的程序和數(shù)據(jù)不可能都放在內(nèi)存當(dāng)中。所以為了騰出寶貴的內(nèi)存空間,也為了方便用戶管理外存上的文件,文件系統(tǒng)應(yīng)運而生。文件系統(tǒng)是一個含有大量的文件及其屬性,對文件進(jìn)行操作、管理的軟件,以及向用戶提供使用文件的接口的一個集合。在邏輯上它的層次結(jié)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。