歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOCX文檔下載  

Linux源碼分析報告——字符終端設備

  • 資源ID:40950686       資源大?。?span id="5xa5pqo" class="font-tahoma">28.21KB        全文頁數(shù):6頁
  • 資源格式: DOCX        下載積分:0積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要0積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付說明:
本站最低充值0.01積分,下載本資源后余額將會存入您的賬戶,您可在我的個人中心查看。
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

Linux源碼分析報告——字符終端設備

源碼分析報告字符終端設備字符終端設備的打開操作當我們需要使用一個字符終端設備的時候,首先需要打開它。而打開這一動作,在下面通常是由一些守護進程所發(fā)起的,比如當我們在登錄到一個虛終端的時候,通常是由一個進程來打開這個虛終端(從 的的版本開始,開始改用另一個較小的程序來實現(xiàn)相同的功能) ,是被進程所發(fā)起的進程,它完成以下的操作:. 打開行設備并設置它們的模式;.打印出的提示符,并得到用戶名;.為用戶發(fā)起一個進程為用戶進行登錄()流程:我們從程序調(diào)用函數(shù)打開一個終端設備開始。() ("");()()很簡單,得到一個空閑,設置一些參數(shù),然后調(diào)用():(, )()() ;先獲得一個空閑結構;填充這個結構;調(diào)用獲得設備文件的;繼續(xù)填充結構;這之中調(diào)用了 >>() 來執(zhí)行下層的打開操作,下面才真正涉及到終端的()()(* ,* )、首先通過取得;>注:即先取得所指向的設備的設備號;再根據(jù)當前的終端類型生成新的主、從設備號;、調(diào)用 ()函數(shù)得到結構。把它賦給>(, );()1 / 6;> ;、調(diào)用檢查 >是否真正表示了內(nèi)存中打開該的。大概是出于完整性的考慮。、調(diào)用 >的 ()函數(shù)。>(, );具體說來,每一個不同的,有不同的執(zhí)行相應操作的函數(shù),詳見附錄。、將賦給結構。>>>>>>()( ,*)本函數(shù)包括主要的的操作。本函數(shù)使用了一個來互斥操作。; 在函數(shù)的開始調(diào)用() 進入臨界區(qū)在函數(shù)的結尾調(diào)用()退出臨界區(qū)。為了實現(xiàn)干凈操作,本函數(shù)先分配內(nèi)存,再進行關鍵操作,若出現(xiàn)錯誤,則先到: 區(qū),釋放出所有分配的內(nèi)存,再退出。現(xiàn)在講述程序的操作流程。、根據(jù)設備號得到設備的結構。();、進入臨界區(qū)();、若該不是第一次打開,轉(zhuǎn)到( ). 否則,繼續(xù)。>();、第一次打開的操作比較復雜。主要為申請設置結構,值得注意的是 > ; 表明所有的開始都用相同的結構。而最終都調(diào)用的讀寫函數(shù),體現(xiàn)了只是一個虛擬終端的思想。5 、調(diào)用 >中的 ()函數(shù)。6 、 >,計數(shù)。7 、退出臨界區(qū)();8 、返回。()這個函數(shù)在 >中被調(diào)用。(*)設置的底層讀寫參數(shù)(大多與讀寫有關)。如:讀寫緩沖,結構的參數(shù)。>()2 / 6如前文所示: ( )在第四步會調(diào)用>( ),對于不同類型的來說,這里相應的>( )當然也會有所不同,下面列舉了一些對應于不同類型的不同操作,同時我們也看到在()中會調(diào)用 >() ;下面是面向不同行設備的相應操作。對應于不同的類型的>():;對應于不同類型的>();如果是,則有;若為則為:的初始化詳見后面的說明。;如果是串行的設備則為:;在里面:;字符終端設備的寫操作程序中的兩個重要數(shù)據(jù)結構*(*)();(*)(*, );(*)(*);(*)(*, , , , );(*)(*, , , );(*)(*,*, , , );(*)(*, );(*)(*, , , , );(*)(*, , , , , , );(*)(*);3 / 6(*)(*, );(*)(*,*);(*)(*,*);(*)(*, );(*)(*);(*)(*);(*)(*, , , , , );(*)(*,*, );*;* , . *;*; *;()的流程我們從程序調(diào)用()開始。調(diào)用 ()函數(shù)。()()此函數(shù)中調(diào)用具體的() 函數(shù)。(>);>>();(>);()(* ,* ,* ,)首先從 >里面取出一個結構,得到相關的的信息,此函數(shù)中調(diào)用 ()(>, , ,(*),( );(>, , 最后調(diào)用 ()注:大概考慮到一次不能寫太多字符中將字符分批輸出。反復調(diào)用傳來的函數(shù):(, , , );4 / 6這個函數(shù)其實就是>,即 ()()(* ,* ,* ,)注:此函數(shù)先在的寫等待隊列上等待,等它被喚醒后,然后再進行寫操作。而這一函數(shù),最后實際上是會調(diào)用>(, , , ); 而在此處在對應的控制臺是時,>()對應的就是里的:(* ,*,)而如果對應的是的話,那么>() 對應的應該是:()(* ,*,)如果對應的是串行設備的話,那么>()對應的應該是:()(* ,*,)或者里面的 () ;在此處,我們以到的輸出的分析為重點:()里面直接調(diào)用:(, , , );();抽象的終端驅(qū)動程序為字符終端提供了一個一般性的接口,它通過一個特別的數(shù)據(jù)結構,里面有一些指針指向了相應的函數(shù)來進行進一步操作。* ( *)>定義在里面,而在里面有一個全局變量:*;()首先該過程會得到當前的的>進入臨界區(qū)();開始寫屏如果是轉(zhuǎn)義序列則進入一個自動機,進行翻譯,并根據(jù)轉(zhuǎn)義序列的進行實際的動作。最后寫屏退出臨界區(qū)();值得注意的是其中為了識別轉(zhuǎn)義序列,使用了一個有限狀態(tài)自動機:如下圖所示:分析轉(zhuǎn)義序列的自動機5 / 6非 ”“數(shù)字或 ”“( )( )非數(shù)字”;”中用于各種顯示功能的函數(shù):(*,*);(, );();( ,);( );( ,);(*);();( );( );以下略。6 / 6

注意事項

本文(Linux源碼分析報告——字符終端設備)為本站會員(靚***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!