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

正文內(nèi)容

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

2025-08-15 03:00 本頁面
 

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