- Linux設備驅動開發詳解:基于最新的Linux4.0內核
- 宋寶華
- 452字
- 2018-12-31 20:25:13
1.4.2 Linux設備驅動與整個軟硬件系統的關系
如圖1.5所示,除網絡設備外,字符設備與塊設備都被映射到Linux文件系統的文件和目錄,通過文件系統的系統調用接口open()、write()、read()、close()等即可訪問字符設備和塊設備。所有字符設備和塊設備都統一呈現給用戶。Linux的塊設備有兩種訪問方法:一種是類似dd命令對應的原始塊設備,如“/dev/sdb1”等;另外一種方法是在塊設備上建立FAT、EXT4、BTRFS等文件系統,然后以文件路徑如“/home/barry/hello.txt”的形式進行訪問。在Linux中,針對NOR、NAND等提供了獨立的內存技術設備(Memory Technology Device,MTD)子系統,其上運行YAFFS2、JFFS2、UBIFS等具備擦除和負載均衡能力的文件系統。針對磁盤或者Flash設備的FAT、EXT4、YAFFS2、JFFS2、UBIFS等文件系統定義了文件和目錄在存儲介質上的組織。而Linux的虛擬文件系統則統一對它們進行了抽象。

圖1.5 Linux設備驅動與整個軟硬件系統的關系
應用程序可以使用Linux的系統調用接口編程,但也可使用C庫函數,出于代碼可移植性的目的,后者更值得推薦。C庫函數本身也通過系統調用接口而實現,如C庫函數fopen()、fwrite()、fread()、fclose()分別會調用操作系統的API open()、write()、read()、close()。
推薦閱讀
- Linux內核完全注釋(20周年版·第2版)
- 計算機系統開發與優化實戰
- Windows Phone 8 Application Development Essentials
- 零基礎學鴻蒙PC:新一代國產操作系統
- Linux系統安全基礎:二進制代碼安全性分析基礎與實踐
- Mastering Reactive JavaScript
- Mastering Windows 8 C++ App Development
- Linux內核API完全參考手冊(第2版)
- Web Penetration Testing with Kali Linux(Third Edition)
- Linux內核修煉之道
- Python機器學習系統構建(原書第3版)
- C#實用教程(第2版)
- Android Telephony原理解析與開發指南
- 物聯網操作系統AliOS Things探索與實踐
- 數字系統設計與VHDL