期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘要:Linux操作系統是UNIX操作系統的一種克隆系統,它誕生于1991 年的10 月5 日(這是第一次正式向外公布的時間)。以后借助于Internet網絡,并通過全世界各地計算機愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統,并且使用人數還在迅猛增長。文章發表在《電力信息化》上,是軟件工程師論文發表范文,供同行參考。
關鍵字:Linux2.6,設備驅動程序,PCI9656
1 引言
Linux操作系統因為其高效、安全、可動態加載及源代碼開放等特點,深受設備驅動程序開發人員的喜愛。系統內核大部分獨立于底層硬件運行,用戶無需關心硬件問題,而用戶操作是通過一組標準化的調用來完成。設備驅動程序的任務是將這些調用映射到作用于實際硬件設備的特定操作上,該編程接口能夠使得驅動程序獨立于內核的其他部分來搭建,在需要時才動態加載到內核。這種模塊化的特點,使得Linux設備驅動程序的編寫過程變得清晰簡單。
目前,為滿足日益龐大的數據處理需要,基于64位PCI總線接口設備的研究開發顯得尤為重要。因而本文將基于PLX公司推出的PCI總線接口芯片PCI9656,設計開發在Linux2.6內核下的設備驅動程序,進而對2.6內核的內存和中斷管理機制進行分析研究。
2 Linux2.6與2.4內核的比較
2.1 系統穩定性
為了徹底防止對正在被使用的內核模塊進行錯誤操作,2.6內核在加載和導出內核模塊方面都較2.4內核進行了改進,避免了用戶執行將導致系統崩潰的操作,例如強制刪除模塊等。同時,當驅動程序需要在多個文件中包含頭文件時,不必定義宏__NO_VERSION__來檢查內核的版本。
2.2 統一設備模型
統一設備模型的創建是2.6內核最重要的變化之一。它促進了模塊接口的標準化,其目的是更好地控制和管理設備,主要包括:更準確地確定系統設備,更高效的進行電源管理以及改進的系統總線結構管理。
3 Linux2.6內核下PCI設備驅動程序的設計
3.1 PCI設備驅動程序中核心數據結構
在2.6內核下使用file_operations數據結構,來建立設備驅動程序中的函數與主設備號(major number)之間的對應關系。該數據結構中包含了指向驅動程序內部大多數函數的指針,描述了虛擬文件系統如何操作一個打開的外圍設備。因而file _operations結構是驅動程序向內核其他部分提供的一個統一的標準設備接口。
3.2 驅動程序與內核和外部設備間的關系
(1) 通過Linux提供的系統調用函數(例如init_module等)進入內核,這些函數在2.6內核版本下總共有兩百多個,提供了幾乎所有應用程序進入內核所需要執行的操作。
(2) 系統的內核函數都有“sys_”前綴(例如函數sys_init_module),應用程序通過訪問設備文件系統來調用這些函數。這一層主要是“devfs”(device filesystem)文件管理機制,它是從普通文件和設備文件抽象出來的一個文件系統層,完成進入具體的設備文件操作之前的準備工作。
4.Linux2.6內核下內存和中斷管理的研究
2.6內核應用了許多新技術來實現對各類外部設備驅動程序的更好支持。下面結合PCI9656驅動程序中的內存和中斷管理,進一步分析和研究2.6內核對內存和中斷進行的改進和優化。
內存管理:在Linux內存管理器中,頁表保持對進程使用的內存物理頁的追蹤,它將虛擬頁映射到物理頁上。系統必須找到映射到該頁的每一個進程,將使用較少的頁置換出去,這樣進程中相應頁的頁表條目才能被更新。隨著在系統中運行的進程數量的增加,將這些頁置換出去的工作量也會急劇增加。
電子學術期刊網友情提示:《電力信息化》雜志于2003年5月正式創刊,是國家電網公司主管、國網信息通信有限公司361期刊網主辦的月刊,是電力行業目前唯一在國內外公開發行,且反映電力信息化建設及應用的專業技術刊物。