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

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)(編輯修改稿)

2025-08-15 03:00 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 表示系統(tǒng)調(diào)用所需參數(shù), parameters為參數(shù)。如上面的宏中,第一個(gè)參數(shù) int表示返回值類型,第二個(gè)參數(shù) mycall為函數(shù)名。第三個(gè)和第四個(gè)分別用來(lái)指定參數(shù)的類型和名稱。v編譯 gcc–oappintmain(intargv,char*argc[]){inta=mycall(100)。printf(“%d\n”,a )。return0。}includeinclude/usr/src/include/asm/include_syscall1(int,mycall,int,ret)Date 31RealTime Systems Lab.添加系統(tǒng)調(diào)用(續(xù))161。 注意(與內(nèi)容一文件拷貝的異同):? 相同點(diǎn):功能相同、代碼基本完全一樣? 不同點(diǎn):作為內(nèi)核代碼,不能直接調(diào)用系統(tǒng)調(diào)用命令,應(yīng)直接使用系統(tǒng)調(diào)用的實(shí)際函數(shù)printf —— printkopen() —— sys_open()close() —— sys_close()read() —— sys_read()write() —— sys_write()Date 32RealTime Systems Lab.課程設(shè)計(jì)輔導(dǎo)161。 Linux系統(tǒng)的相關(guān)知識(shí)v以 Redhat Linux 161。 添加系統(tǒng)調(diào)用161。 添加設(shè)備驅(qū)動(dòng)程序161。 /proc文件分析Date 33RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序內(nèi)核模塊 LKM Loadable Kernel Modules161。 Linux核心是一種 monolithic類型的內(nèi)核,即單一的大核心。161。 linux內(nèi)核是一個(gè)整體結(jié)構(gòu),因此向內(nèi)核添加任何東西 .或者刪除某些功能,都十分困難。為了解決這個(gè)問(wèn)題,引入了模塊機(jī)制,從而可以動(dòng)態(tài)的在內(nèi)核中添加或者刪除模塊。一旦被插入內(nèi)核 ,他就和內(nèi)核其他部分一樣。Date 34RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序 (續(xù))161。 模塊的實(shí)現(xiàn)機(jī)制v模塊初始化 intinit_module(){}; v模塊卸載 intcleanup_module(){}; v操作 252。unsignedlongsys_create_module(char*name,unsignedlongsize)。//重新分配內(nèi)存252。intsys_delete_module(char*name)。//卸載252。intsys_query_module(constchar*name,intwhich,void*buf,size_tbufsize,size_t*ret)。//查詢v頭文件:/usr/scr/linux/include/linux/Date 35RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序(續(xù))161。 模塊的實(shí)現(xiàn)機(jī)制v模塊加入: insmod 完成:加載目標(biāo)文件 調(diào)用 create_module重新分配內(nèi)存 內(nèi)核符號(hào)用 get_kernel_syms解析未解析的引用 調(diào)用 init_module初始化 LKM執(zhí)行 init_module(void)函數(shù) v查看模塊: lsmod 結(jié)果: Module Page Used by modulename 1(內(nèi)存信息 ) 0(使用次數(shù) )v刪除模塊: rmmodmodulename Date 36RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序(續(xù))161。 模塊編程實(shí)例 v編譯gcc–DMODULE–D_KERNEL_I/usr/src/c printk(helloworld!\n39。)。printk(Ihaveruninginakernelmod!\n)。return0。}voidcleanup_module()/*模塊卸載 */{printk(Iwillshutdownmyselfinkernelmod!\n)。}includelinux/includelinux//*處理版本問(wèn)題 CONFIG_MODVERSIONS*/ifCONFIG_MODVERSIONS==1defineMODVERSIONSincludelinux/endifintinit_module()/*模塊初始化 */{Date 37RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序(續(xù))161。 Linux支持的設(shè)備類型v字符設(shè)備 —— c 存取時(shí)沒(méi)有緩存;對(duì)字符設(shè)備發(fā)出讀寫請(qǐng)求時(shí),實(shí)際的 I/O就發(fā)生了。如:鼠標(biāo)、鍵盤等。 v塊設(shè)備 —— b 利用一塊系統(tǒng)內(nèi)存區(qū)域作緩沖區(qū),當(dāng)用戶進(jìn)程對(duì)設(shè)備請(qǐng)求能滿足用戶要求時(shí),返回請(qǐng)求數(shù)據(jù),否則,調(diào)用請(qǐng)求函數(shù)進(jìn)行實(shí)際的 I/O操作。如:硬盤、軟盤、 CDROM等。v網(wǎng)絡(luò)設(shè)備 Date 38RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序(續(xù))161。 設(shè)備驅(qū)動(dòng)程序v一組常駐內(nèi)存的具有特權(quán)的共享庫(kù),是低級(jí)硬件處理例程。v設(shè)備等同文件處理,每個(gè)設(shè)備文件有兩個(gè)設(shè)備號(hào) 主設(shè)備號(hào):標(biāo)識(shí)驅(qū)動(dòng)程序 從設(shè)備號(hào):表示使用同一個(gè)設(shè)備驅(qū)動(dòng)程序的不同硬件設(shè)備。161。 設(shè)備驅(qū)動(dòng)程序工作的基本原理 用戶進(jìn)程利用系統(tǒng)調(diào)用對(duì)設(shè)備進(jìn)行諸如 read/write操作,系統(tǒng)調(diào)用通過(guò)設(shè)備文件的主設(shè)備號(hào)找到相應(yīng)的設(shè)備驅(qū)動(dòng)程序,然后讀取這個(gè)數(shù)據(jù)結(jié)構(gòu)相應(yīng)的函數(shù)指針,接著把控制權(quán)交給該函數(shù)。Date 39RealTime Systems Lab.添加設(shè)備驅(qū)動(dòng)程序(續(xù))161。 設(shè)備驅(qū)動(dòng)程序的功能v對(duì)設(shè)備初始化和釋放; v把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù); 1
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1