linux系統(tǒng)中設(shè)備分為3類:1、字符設(shè)備,是能夠像字節(jié)流一樣被訪問的設(shè)備,當(dāng)對(duì)字符設(shè)備發(fā)出讀寫請(qǐng)求,相應(yīng)的IO操作立即發(fā)生;2、塊設(shè)備,是Linux系統(tǒng)中進(jìn)行TO操作時(shí)必須以塊為單位進(jìn)行訪問的設(shè)備,塊設(shè)備能夠安裝文件系統(tǒng);3、網(wǎng)絡(luò)設(shè)備,由Linux的網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收,而不是面向流設(shè)備,因此在Linux系統(tǒng)文件系統(tǒng)中網(wǎng)絡(luò)設(shè)備沒有節(jié)點(diǎn)。
程序員必備接口測(cè)試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測(cè)試工具
后端、前端、測(cè)試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux系統(tǒng)中設(shè)備
Linux系統(tǒng)中的設(shè)備可以分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備這3類。
(1)字符設(shè)備
字符設(shè)備是能夠像字節(jié)流一樣被訪問的設(shè)備,當(dāng)對(duì)字符設(shè)備發(fā)出讀寫請(qǐng)求,相應(yīng)的IO操作立即發(fā)生。Linux系統(tǒng)中很多設(shè)備都是字符設(shè)備,如字符終端、串口、鍵盤、鼠標(biāo)等。在嵌入式Linux 開發(fā)中,接觸最多的就是字符設(shè)備以及驅(qū)動(dòng)。
(2)塊設(shè)備
塊設(shè)備是Linux系統(tǒng)中進(jìn)行TO操作時(shí)必須以塊為單位進(jìn)行訪問的設(shè)備,塊設(shè)備能夠安裝文件系統(tǒng)。塊設(shè)備驅(qū)動(dòng)會(huì)利用一塊系統(tǒng)內(nèi)存作為緩沖區(qū),因此對(duì)塊設(shè)備發(fā)出讀寫訪問,并不一定立即產(chǎn)生硬件I/O操作。Linux系統(tǒng)中常見的塊設(shè)備有如硬盤、軟驅(qū)等等。
(3)網(wǎng)絡(luò)設(shè)備
網(wǎng)絡(luò)設(shè)備既可以是網(wǎng)卡這樣的硬件設(shè)備,也可以是一個(gè)純軟件設(shè)備如回環(huán)設(shè)備。網(wǎng)絡(luò)設(shè)備由Linux的網(wǎng)絡(luò)子系統(tǒng)驅(qū)動(dòng),負(fù)責(zé)數(shù)據(jù)包的發(fā)送和接收,而不是面向流設(shè)備,因此在Linux系統(tǒng)文件系統(tǒng)中網(wǎng)絡(luò)設(shè)備沒有節(jié)點(diǎn)。對(duì)網(wǎng)絡(luò)設(shè)備的訪問是通過socket調(diào)用產(chǎn)生,而不是普通的文件操作如 open/closc和 read/write等。
驅(qū)動(dòng)在linux中的地位
驅(qū)動(dòng)是Linux系統(tǒng)中設(shè)備和用戶之間的橋梁,Linux系統(tǒng)中,訪問設(shè)備必須通過設(shè)備驅(qū)動(dòng)進(jìn)行操作,用戶程序是不能直接操作設(shè)備的。Linux系統(tǒng)中硬件、驅(qū)動(dòng)和用戶程序的關(guān)系如圖2.2所示。
驅(qū)動(dòng)程序運(yùn)行與內(nèi)核空間,用戶程序只能通過內(nèi)核提供的系統(tǒng)調(diào)用,由經(jīng)VFS 以及驅(qū)動(dòng)程序才能訪問和操作硬件,硬件設(shè)備傳遞的數(shù)據(jù)也必須經(jīng)過驅(qū)動(dòng)、VFS和系統(tǒng)調(diào)用才能被用戶程序接收。所以說,設(shè)備驅(qū)動(dòng)是應(yīng)用程序訪問系統(tǒng)設(shè)備以及進(jìn)行數(shù)據(jù)傳遞的橋梁和通道。