freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

華科操作系統(tǒng)實驗報告(編輯修改稿)

2025-06-09 23:09 本頁面
 

【文章內(nèi)容簡介】 argc, argv)。 MainWindow w。 ()。 pid_t p1,p2,p3。 if ((p1=fork()) == 0) { execv(/home/hukeled/,NULL)。 } else if ((p2=fork())==0) { execv(/home/hukeled/,NULL)。 } return ()。} 掌握系統(tǒng)調(diào)用的實現(xiàn)過程,通過編譯內(nèi)核方法,增加一個新的系統(tǒng)調(diào)用。另編寫一個應用程序,調(diào)用新增加的系統(tǒng)調(diào)用(實現(xiàn)的功能為文件拷貝)。 1  任務分析:一般的,進程是不能訪問內(nèi)核的。它不能訪問內(nèi)核所占內(nèi)存空間也不能調(diào)用內(nèi)核函數(shù)。CPU硬件決定了這些(這就是為什么它被稱作保護模式)。系統(tǒng)調(diào)用是這些規(guī)則的一個例外。其原理是進程先用適當?shù)闹堤畛浼拇嫫鳎缓笳{(diào)用一個特殊的指令,這個指令會跳到一個事先定義的內(nèi)核中的一個位置(當然,這個位置是用戶進程可讀但是不可寫的)。在Intel CPU中,這個由中斷0x80實現(xiàn)。硬件知道一旦你跳到這個位置,你就不是在限制模式下運行的用戶,而是作為操作系統(tǒng)內(nèi)核。進程可以跳轉(zhuǎn)到的內(nèi)核位置叫做sysem_call。這個過程檢查系統(tǒng)調(diào)用號,這個號碼告訴內(nèi)核進程請求哪種服務。然后,它查看系統(tǒng)調(diào)用表(sys_call_table)找到所調(diào)用的內(nèi)核函數(shù)入口地址。接著,就調(diào)用函數(shù),等返回后,做一些系統(tǒng)檢查,最后返回到進程(或到其他進程,如果這個進程時間用盡)。 系統(tǒng)調(diào)用是應用程序和操作系統(tǒng)內(nèi)核之間的功能接口,通過系統(tǒng)調(diào)用進程可由用戶模式轉(zhuǎn)入內(nèi)核模式。在內(nèi)核模式下完成相應的服務之后再返回到用戶模式。系統(tǒng)調(diào)用的主要目的是使得用戶可以使用操作系統(tǒng)提供的有關設備管理、輸入輸出系統(tǒng)、文件系統(tǒng)和進程控制、通信以及存儲管理等方面的功能,而不必了解系統(tǒng)程序的內(nèi)部結(jié)構和有關硬件細節(jié),從而起到減輕用戶負擔和保護系統(tǒng)以及提高資源利用率的作用。 本次課設,我通過編譯內(nèi)核的方式,增加了一個系統(tǒng)調(diào)用,其功能為文件拷貝。2  添加的系統(tǒng)調(diào)用源代碼和測試程序系統(tǒng)調(diào)用源代碼asmlinkage int sys_mycall(char* sourceFile,char* destFile){ int source=sys_open(sourceFile,O_RDONLY,0)。 int dest=sys_open(destFile,O_WRONLY|O_CREAT|O_TRUNC,0600)。 char buf[4096]。 mm_segment_t fs。 fs = get_fs()。 set_fs(get_ds())。 int i。 if(source0 amp。amp。 dest0) { do { i=sys_read(source,buf,4096)。 sys_write(dest,buf,i)。 } while(i)。 } else { printk(Error!)。 } sys_close(source)。 sys_close(dest)。 set_fs(fs)。 return 1。}測試程序源代碼include include int main(int argc ,char * argv[]){ syscall(351,argv[1],argv[2])。 return 0。}3  實驗過程與步驟根據(jù)教程:第一步:(1)獲取系統(tǒng)的版本號,使用命令uname a, (2),解壓到文件夾/usr/src中,解壓命令: xz –d tar –xvf (3),,命令: make mrproper(4):,:cd ./configuremakemake install(5)make menuconfig選擇編譯配置選項。(6)確定依賴性:make dep(7)清理中間文件:make clean(8)生成新內(nèi)核:make bzImage(9)生成modules:make modules(10)安裝modules:make modules_install(11)安裝內(nèi)核make install(12)重啟選用新內(nèi)核第二步:添加自定義系統(tǒng)調(diào)用(1) 添加系統(tǒng)調(diào)用函數(shù),修改文件:/kernel/asmlinkage int sys_mycall(char* sourceFile,char* destFile){ int source=sys_open(sourceFile,O_RDONLY,0)。 int dest=sys_open(destFile,O_WRONLY|O_CREAT|O_TRUNC,0600)。 char buf[4096]。 mm_segment_t fs。 fs = get_fs()。 set_fs(get_ds())。 int i。 if
點擊復制文檔內(nèi)容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1