官术网_书友最值得收藏!

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()。

主站蜘蛛池模板: 玛纳斯县| 台安县| 图木舒克市| 云和县| 长沙市| 吴桥县| 仁怀市| 确山县| 灵川县| 临猗县| 宜兰县| 建始县| 清河县| 晴隆县| 青阳县| 玉溪市| 金门县| 武陟县| 惠安县| 乳山市| 宣汉县| 定安县| 丹江口市| 孝感市| 右玉县| 焉耆| 桐庐县| 昌江| 肇东市| 本溪| 巴中市| 洛南县| 平泉县| 南阳市| 屏东市| 奉化市| 靖州| 禄劝| 安国市| 金堂县| 图木舒克市|