linux設備驅動程序第三版
Ⅰ linux下PCI設備驅動開發詳解(三)
Linux下PCI設備驅動開發詳解:
在Linux系統下,PCI設備驅動的開發涉及到多個關鍵概念和組件的協同工作。以下是針對這一主題的詳細解答:
PCIe軟硬異構系統基礎:
- 應用程序與硬體的交互:應用程序通過文件系統訪問硬體,通常是通過讀寫文件操作來抽象設備。涉及硬體操作的庫函數如果非內核功能則直接實現,否則通過系統調用由內核處理。
- 設備分類:Linux將硬體分為字元設備、塊設備和網路設備。設備通過文件名和設備號進行區分。設備文件以文件形式存在於/dev目錄下,通過文件操作如open、read、write、close進行硬體操作。
- 驅動程序的位置:驅動程序作為內核模塊,不包含main函數,而是由初始化函數啟動。應用程序與驅動的工作模式不同,前者在用戶態,後者在內核態。
匯流排、設備和驅動的協作機制:
- 匯流排目錄的創建與注冊:系統啟動時會自動創建匯流排目錄。匯流排驅動通過bus_register函數進行注冊,生成設備和驅動文件夾。隨後,通過device_register和driver_register函數進行設備和驅動的具體注冊。
- 匯流排初始化和注冊:這是內核初始化的一部分。新匯流排的添加通常由系統自動處理。驅動的probe函數在匹配成功後執行初始化,這是設備與驅動成功連接並准備進行通信的關鍵步驟。
- 設備與驅動的注冊實例:通過PCI設備和其對應的驅動注冊過程,可以清晰地看到匯流排、設備和驅動是如何協同工作的。這一過程中,設備通過匯流排注冊自身,系統為其匹配合適的驅動,從而實現設備與系統的有效通信。
綜上所述,Linux設備驅動模型的核心在於匯流排、設備和驅動的緊密配合,它們共同構建了系統與硬體的交互機制。在開發PCI設備驅動時,深入理解這些概念和組件的協作機制是至關重要的。後續文章將深入探討實際PCI設備驅動的開發細節,包括如何編寫、編譯、載入和調試驅動等。
Ⅱ 剛剛大一,學習比較輕松,打算學計算機編程,但是對計算機不算太精通,請問我應該 怎麼做。
經典好書分類熱銷榜
1、java
java編程語言(第三版)---java四大名著----James Gosling(java之父)
java編程思想(第2版)----java四大名著----Bruce Eckel
java編程思想(第3版)----java四大名著----------------Bruce Eckel
java 2核心技術 卷I:基礎知識(原書第7版)---java四大名著-----Cay Horstmann
java 2核心技術 卷II:高級特性(原書第7版)----java四大名著-----Cay Horstmann
Effective java中文版------java四大名著--------Joshua Bloch
精通Struts:基於MVC的java Web設計與開發---孫衛琴
精通Hibernate:java對象持久化技術詳解---孫衛琴
Tomcat與java Web開發技術詳解------------孫衛琴
java與模式------------------------------閻宏
2、c#
C#程序設計-------Charles Petzold「windows編程泰山北斗」---C#語言「倚天屠龍雙劍」
C# Primer中文版--------Stanley B.Lippman---C#語言「倚天屠龍雙劍」
.NET框架程序設計(修訂版)--------Jeffrey Richter「windows編程泰山北斗」---.NET平台四大天王
C# Windows程序設計----------Charles Petzold「windows編程泰山北斗」------.NET平台四大天王
.NET程序設計技術內幕-------------Jeff Prosise---.NET平台四大天王
.NET本質論--第1卷:公共語言運行庫(中文版)--------Chris Sells---.NET平台四大天王
3、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata
廣博如四庫全書The c++ programming language、c++ Primer
深奧如山重水復Inside the c++ object model
程序庫大全The c++ standard libray
工程經驗之積累Effective c++、More Effective c++、Exceptional c++
c++八大金剛:
1、Essentital c++---lippman---C++之父,旁枝暫略,主攻核心,輕薄短小,初學者
2、The c++ programming language----C++之父,技術權威,用詞深峻,思想深遠,c++網路全書代表,聖經。
3、c++ Primer----lippman---縱橫書市十數年,c++最佳教本,c++網路全書代表。
4、Inside the c++ object model-----lippman----揭示c++底層,非常好,非常難。
5、Effective c++-----通過50個編程實例,展示專家經驗,行文有趣,深處淺出。
6、More Effective c++----通過35個編程實例,展示專家經驗,行文有趣,深處淺出。
7、The c++ standard libray---c++標准庫的網路全書。
8、設計模式:可復用面向對象軟體的基礎------good!
4、c
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、VB
Visual Basic .NET技術內幕-----VB編程三劍客-----------Francesco Balena「vb首席大師」
Windows程序設計-Visual Basic.NET語言描述--VB編程三劍客-----Charles Petzold「windows編程泰山北斗」---
.NET框架程序設計:Visual Basic.NET語言描述--VB編程三劍客--Jeffrey Richter「windows編程泰山北斗」---
Visual Basic 6編程技術大全------------------------Francesco Balena「vb首席大師」
Visual Basic.NET 從入門到精通-------------------------Petroutsos,E.
高級VISUAL BASIC編程-----------------------------------MATTHEW CURLAND
6、Delphi
Inside VCL(深入核心——VCL架構剖析)----------李維
Delphi 7高效資料庫程序設計--------------李維
面向對象開發實踐之路(Delphi版)----------李維
7、VC
Windows 程序設計(第5版)-----Charles Petzold「windows編程泰山北斗」---
Windows核心編程----------Jeffrey Richter「windows編程泰山北斗」---
Windows高級編程指南---------Jeffrey Richter「windows編程泰山北斗」---
深入淺出MFC(第二版)-----「MFC四大天王」-------侯捷
MFC Windows程序設計(第2版)---MFC四大天王」---------Jeff Prosise
Visual C++ 技術內幕(第4版)--MFC四大天王」--------David Kruglinski
深入解析MFC-------------MFC四大天王」-----------George Shepherd
Visual C++.NET 技術內幕(第6版)-MFC四大天王」------------David Kruglinski
8、vf
Visual Foxpro程序設計參考手冊-------------------張洪舉
專家門診——Visual FoxPro開發答疑160問-------------------張洪舉
Visual FoxPro 6.0/9.0解決方案與範例大全-------------------張洪舉
Visual FoxPro軟體開發模式與應用案例-------------------張洪舉
9、黑客
應用密碼學(協議演算法與C源程序-----------Bruce Schneier
網路信息安全的真相-----------Bruce Schneier
黑客大曝光:網路安全機密與解決方案(第5版)--------STUART MCCLURE
軟體加密技術內幕------------看雪學院
加密與解密——軟體保護技術與完全解決方案------------看雪學院
加密與解密(第二版)--------段鋼
10、匯編
Intel微處理器結構、編程與介面(第六版)---------Barry B. Brey
80*86、奔騰機匯編語言程序設計---------Barry B. Brey
Windows環境下32位匯編語言程序設計(第2版)-----------羅雲彬
IBM-PC匯編語言程序設計(第2版) 本書是國內優秀教材--------沈美明 溫冬嬋
IBM PC匯編語言程序設計(第五版) 這本書籍是國外優秀教材-------PETER ABEL著,沈美明 溫冬蟬譯
11、驅動開發
Windows WDM設備驅動程序開發指南------------------------------------ Chris Cant
Windows 2000/XP WDM設備驅動程序開發(第2版)--------------------------武安河
WINDOWS 2000/XP WDM設備驅動程序開發-------------------------------- 武安河
12、網路
計算機網路第四版中文版----網路編程三劍客--------------Andrew S.Tanenbaum
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
13、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
14、圖形編程
Windows 圖形編程----------------FENG YUAN --圖形編程界的Charles Petzold之書
15、數據結構
數據結構 C++語言描述》58.00(Data Structures C++) William Ford,William Topp 劉衛東 沈官林
數據結構演算法與應用-C++語言描述》49.00Sartej Sahni 汪詩林 孫曉東等機械工業出版社
16、軟體工程
設計模式--可復用面向對象軟體的基礎
重構—改善既有代碼的設計
17、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
18、Unix
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX 編程藝術
UNIX環境高級編程(英文影印第2版-----UNIX編程「聖經
UNIX環境高級編程(英文影印版)(第2版)
UNIX環境高級編程(第2版)
UNIX環境高級編程(第2版)---UNIX編程「聖經
UNIX網路編程 第1卷:套介面API(第3版)
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX編程環境
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版
UNIX系統編程
UNIX環境高級編程
UNIX 網路編程 卷I 套接字聯網API(英文版 第三版)
UNIX網路編程 第1卷:套介面API(第3版)
UNIX 網路編程(第二版)第2卷:進程間通信
UNIX網路編程卷2:進程間通信(第2版)(英文影印版)
UNIX 網路編程(第2版)第1卷:套介面API和X/Open 傳輸介面API
UNIX網路編程(卷1):連網的APLS:套接字與XTI(第二版)(英文影印版)
UNIX環境高級編程
Unix技術手冊
19、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程
GNU/Linux 編程指南(第二版)
Linux設備驅動程序(第三版)
嵌入式設計及Linux驅動開發指南——基於ARM 9處理器
Linux設備驅動程序 第三版(英文影印版)
Linux內核設計與實現(第2版)
Linux內核設計與實現(英文影印版)(第2版)
linux技術手冊
20、游戲編程
Windows游戲編程大師技巧(第二版
游戲之旅--我的編程感悟
OpenGL超級寶典:第三版
OpenGL編程指南(第四版)
java 游戲高級編程
J2ME手機游戲編程入門
游戲之旅——我的編程感悟
游戲開發中的人工智慧(英文影印版)
3D游戲:卷2 動畫與高級實時渲染技術
面向對象的游戲開發
java 游戲高級編程
3D游戲編程大師技巧
游戲編程精粹
面向對象的游戲開發
3D游戲 卷1:實時渲染與軟體技術
3D游戲:卷2 動畫與高級實時渲染技…
J2ME手機游戲編程入門
Direct3D游戲編程入門教程(第二版…
21、移動開發
Windows Mobile手機應用開發
SYMBIAN OS C++手機應用開發
Windows Mobile手機應用開發--傅曦 齊宇 徐駿
SYMBIAN OS C++手機應用開發 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣譯
SYMBIAN OS C++手機應用開發---------------RICHARD HARRISON著,周良忠譯
Windows CE.net內核定製及應用程序開發---------周毓林 寧楊 陸貴強 付林林
嵌入式系統Windows CE 開發技巧與實例--傅曦
Palm OS編程實踐---絕版
22、單片機
單片機輕松入門----------------------------------周堅(平凡老師)
單片機典型模塊設計實例導航-----------------------求是科技
例說8051----------------------------------------張義和 陳敵北
KEIL CX51 V7.0單片機高級語言編程與ΜVISION2應用實踐-----徐愛鈞
單片機應用程序設計技術(修訂版)--------------------周航慈
8051單片機實踐與應用-------------------------------吳金戎
MCS-51系列單片機實用介面技術---------------------李華
23、串並口通訊
Visual C++/Turbo C串口通信編程實踐------------------龔建偉
VISUAL BASIC與RS-232串列通信控制(最新版)----------范逸之
24、電子
無線電識圖與電路故障分析輕松入門(第二版) -------------------胡斌
無線電元器件檢測與修理技術輕松入門(第二版) -------------------胡斌
圖表細說電子技術識圖-------------------胡斌
圖表細說電子元器件-------------------胡斌
圖表細說元器件及實用電路-------------------胡斌
Ⅲ Linux內核必讀五本書籍(強烈推薦)
一、《深入理解Linux內核》 推薦等級:5顆星
想要深入了解Linux的運行機制,以及它為何能在各種系統上流暢運行,那麼深入研究內核是關鍵。內核作為CPU與外部世界之間的重要橋梁,負責管理有限的資源,如內存、處理器時間等,確保數千個進程高效共享系統資源。同時,內核通過精心組織數據傳輸,使CPU不受慢速硬碟的限制。
《深入理解Linux內核》第三版以直觀的方式介紹了內核中核心數據結構、演算法和編程技巧。它不僅深入分析了內核的工作原理,還針對Intel平台的特徵,詳細解析了相關代碼片段。本書覆蓋了內存管理、虛擬文件系統、進程管理、信號、中斷和設備驅動程序等內容,幫助讀者全面掌握Linux內核的內在工作機制。通過閱讀此書,你將深入了解Linux性能優化的條件以及在不同環境下滿足系統需求的機制。
二、《Linux內核設計與實現》 推薦等級:4顆星
《Linux內核設計與實現》基於Linux2.6.34內核,全面介紹了內核系統的設計與實現,包括進程管理、時間管理、系統調用介面、內存管理、VFS、內核同步和調試技術等關鍵概念。此外,該書還深入探討了Linux2.6內核中的特色內容,如CFS調度程序、搶占式內核、塊I/O層和I/O調度程序。通過理論與實踐的結合,本書為讀者提供了快速了解Linux內核的途徑,並幫助他們學習內核代碼的編寫。
三、《Linux設備驅動程序》 推薦等級:5顆星
《Linux設備驅動程序 第3版(影印版)》是關於編寫Linux設備驅動程序的經典之作。無論你希望在Linux上支持外部設備,還是運行新硬體,或是學習Linux內核編程,本書都是不可或缺的資源。書中詳細闡述了如何針對各種設備編寫驅動程序,並且提供了豐富的實例和代碼,幫助讀者理解和實踐Linux設備驅動程序的開發。
四、《深入理解Linux網路內幕》 推薦等級:4顆星
Linux的流行得益於其強大的網路協議棧。《深入理解Linux網路內幕》通過理論與實踐的結合,指導讀者學習現代網路知識,以及如何用C語言實現復雜的網路功能。本書清晰地解釋了網路的基本概念,並提供大量的應用示例,使讀者能夠深入理解Linux網路的實現細節。
五、《深入理解Linux虛擬內存管理》 推薦等級:5顆星
Linux的虛擬內存管理是其系統穩定性和高效性的重要支撐。《深入理解Linux虛擬內存管理》詳細闡述了Linux內核如何實現虛擬內存管理,涵蓋了內存分配、交換、緩存等內容,使讀者能夠深入理解Linux內核在虛擬內存管理方面的設計和實現細節。