亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

linux2.6.38.2進(jìn)程列表顯示

系統(tǒng) 2192 0

哈爾濱理工大學(xué)軟件工程專業(yè)08-7李萬(wàn)鵬原創(chuàng)作品,轉(zhuǎn)載請(qǐng)標(biāo)明出處

http://blog.csdn.net/woshixingaaa/archive/2011/04/15/6324900.aspx

這里使用/proc文件系統(tǒng)顯示出進(jìn)程列表。/proc文件系統(tǒng)是一種特殊的,由軟件創(chuàng)建的文件系統(tǒng),內(nèi)核使用它向外界導(dǎo)出信息。/proc下的每個(gè)文件都綁定于一個(gè)內(nèi)核函數(shù),用戶讀 取其中的文件時(shí),該函數(shù)動(dòng)態(tài)的生成文件的”內(nèi)容”。現(xiàn)代Linux發(fā)行版中的很多工具都是通過(guò)/proc/來(lái)獲取它們需要的信息,例如ps,top和uptime。/proc存于內(nèi)存中,關(guān)機(jī)后就 消失了。
所有使用/proc的模塊必須包含<linux/proc_fs.h>,并通過(guò)這個(gè)頭文件來(lái)定義正確的函數(shù)。為創(chuàng)建一個(gè)只讀的/proc文件,驅(qū)動(dòng)必須實(shí)現(xiàn)一個(gè)函數(shù),用于讀取文件時(shí)生成數(shù)據(jù)。
當(dāng)某個(gè)進(jìn)程讀取這個(gè)文件時(shí),讀取請(qǐng)求會(huì)通過(guò)這個(gè)函數(shù)發(fā)送到驅(qū)動(dòng)程序模塊。在某個(gè)進(jìn)程讀取我們的/proc文件時(shí),內(nèi)核會(huì)分配一個(gè)內(nèi)存頁(yè)(PAGE_SIZE字節(jié)的內(nèi)存塊),驅(qū)動(dòng)程序可 以將數(shù)據(jù)通過(guò)這個(gè)內(nèi)存頁(yè)返回到用戶空間。該緩沖區(qū)會(huì)傳入傳入我們定義的函數(shù),而該函數(shù)稱為read_proc方法:

一旦創(chuàng)建好了一個(gè)read_proc函數(shù),就需要把它與一個(gè)/proc入口項(xiàng)連接起來(lái)。這通過(guò)調(diào)用create_proc_read_entry實(shí)現(xiàn):

其中,name是要?jiǎng)?chuàng)建的文件名稱;mode是該文件的保護(hù)掩碼,base是該文件所在的目錄,read_proc是實(shí)現(xiàn)文件的read_proc函數(shù),內(nèi)核會(huì)忽略data參數(shù),但是會(huì)將該函數(shù)傳遞給 read_proc。
在卸載模塊時(shí),/proc中的入口項(xiàng)也應(yīng)被刪除。remove_proc_entry就是用來(lái)撤銷create_proc_read_entry所做的工作的:

在read_myproc中,我們打印進(jìn)程列表的信息。這里我是通過(guò)手動(dòng)遍歷的,沒(méi)有使用list_for_each函數(shù)。在內(nèi)核中進(jìn)程是使用進(jìn)程描述符task_struct來(lái)描述的,它是一個(gè)結(jié)構(gòu) 體,包含了進(jìn)程的相關(guān)信息。這個(gè)結(jié)構(gòu)體的獲得是通過(guò)slab來(lái)分配的。正因?yàn)槿绱?所以UNIX有一個(gè)特性就是創(chuàng)建進(jìn)程非常迅速。task_struct是通過(guò)list_head域鏈接到一起的,這 個(gè)雙向循環(huán)鏈表把所有的進(jìn)程描述符串到了一起。在linux內(nèi)核鏈表中,不是鏈表結(jié)構(gòu)中包含數(shù)據(jù),而是在數(shù)據(jù)結(jié)構(gòu)中包含鏈表節(jié)點(diǎn)。init_task是0號(hào)進(jìn)程的進(jìn)程描述符(也就是傳說(shuō)中的idle或swapper進(jìn)程)。從它下一個(gè)開始遍歷,也就是從init進(jìn)程開始。list_entry可以通過(guò)指向成員的指針獲得指向這個(gè)容器的指針。

顯示結(jié)果如下,我只截了部分:

linux2.6.38.2進(jìn)程列表顯示

linux2.6.38.2進(jìn)程列表顯示


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 婷婷色九月综合激情丁香 | 国产综合亚洲欧美日韩一区二区 | 亚洲 欧美 成人日韩 | 元龙第三季动漫在线观看免费版 | 日韩小视频在线播放 | 视频一区在线免费观看 | 国产99页 | 免费视频爱爱太爽在线观看 | 国产一级大片免费看 | 夜夜夜夜夜夜夜工噜噜噜 | 污视频在线网站 | 爆操白虎逼| 欧美黄色录像视频 | 精品伊人久久久99热这里只 | 91欧美在线视频 | 日韩精品成人在线 | 91精品国产免费久久国语麻豆 | 国产精品亚洲精品日韩已满 | 天天舔天天插 | 亚洲韩国日本一级二级r级 亚洲韩精品欧美一区二区三区 | 久久中文字幕不卡一二区 | 中文字幕亚洲综合 | 污视频在线看网站 | 国产一级毛片免 | 免费一级毛片在线观看 | 亚洲福利一区福利三区 | 男女精品视频 | 福利视频久久 | 三中文乱码视频 | 99色视频在线观看 | av天天看 | 男人猛桶女人下面视频国产 | 天天操天天摸天天爽 | 国产精品久久久久久影视 | 精品在线免费观看视频 | 91社区视频| 久久精品免费观看 | 亚洲欧美日韩国产vr在线观 | 乱子伦免费视频中文字幕 | 美女视频很黄很暴黄是免费的 | 91精品免费观看 |