共計 1630 個字符,預(yù)計需要花費 5 分鐘才能閱讀完成。
這篇文章主要介紹“l(fā)inux 設(shè)備文件的類型有哪些”,在日常操作中,相信很多人在 linux 設(shè)備文件的類型有哪些問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux 設(shè)備文件的類型有哪些”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!
linux 設(shè)備文件有兩類:1、字符設(shè)備,是能夠像字節(jié)流一樣被訪問的設(shè)備文件,當(dāng)對字符設(shè)備發(fā)出讀寫請求,相應(yīng)的 IO 操作立即發(fā)生,常見有字符終端、鍵盤等等;2、塊設(shè)備,是進(jìn)行 TO 操作時必須以塊為單位進(jìn)行訪問的設(shè)備文件,塊設(shè)備能夠安裝文件系統(tǒng)。
本教程操作環(huán)境:linux5.9.8 系統(tǒng)、Dell G3 電腦。
設(shè)備文件概述
在類 Unix 操作系統(tǒng)中,設(shè)備文件或特殊文件是設(shè)備驅(qū)動程序的接口,出現(xiàn)在文件系統(tǒng)中就好像它是普通文件一樣。在 MS-DOS,OS / 2 和 Microsoft Windows 中也有特殊文件。這些特殊文件允許應(yīng)用程序通過標(biāo)準(zhǔn)輸入 / 輸出系統(tǒng)調(diào)用使用其設(shè)備驅(qū)動程序與設(shè)備進(jìn)行交互。使用標(biāo)準(zhǔn)系統(tǒng)調(diào)用簡化了許多編程任務(wù),并且無論設(shè)備的特性和功能如何,都可以實現(xiàn)一致的用戶空間 I / O 機制。
設(shè)備文件通常提供與標(biāo)準(zhǔn)設(shè)備(如打印機和串行端口)的簡單接口,但也可用于訪問這些設(shè)備(如磁盤分區(qū))上的特定獨特資源。此外,設(shè)備文件對于訪問與任何實際設(shè)備(如數(shù)據(jù)接收器和隨機數(shù)生成器)無關(guān)的系統(tǒng)資源非常有用。
在 Linux 系統(tǒng)下,有七類文件類型:
普通文件(-)
目錄(d)
軟鏈接(字符鏈接 L)
套接字文件(S)
字符設(shè)備(S)
塊設(shè)備(B)
管道文件(命名管道 P)
因此,設(shè)備文件有兩類:字符設(shè)備和塊設(shè)備。
(1)字符設(shè)備
字符設(shè)備是能夠像字節(jié)流一樣被訪問的設(shè)備,當(dāng)對字符設(shè)備發(fā)出讀寫請求,相應(yīng)的 IO 操作立即發(fā)生。Linux 系統(tǒng)中很多設(shè)備都是字符設(shè)備,如字符終端、串口、鍵盤、鼠標(biāo)等。在嵌入式 Linux 開發(fā)中,接觸最多的就是字符設(shè)備以及驅(qū)動。
(2)塊設(shè)備
塊設(shè)備是 Linux 系統(tǒng)中進(jìn)行 TO 操作時必須以塊為單位進(jìn)行訪問的設(shè)備,塊設(shè)備能夠安裝文件系統(tǒng)。塊設(shè)備驅(qū)動會利用一塊系統(tǒng)內(nèi)存作為緩沖區(qū),因此對塊設(shè)備發(fā)出讀寫訪問,并不一定立即產(chǎn)生硬件 I / O 操作。Linux 系統(tǒng)中常見的塊設(shè)備有如硬盤、軟驅(qū)等等。
區(qū)分塊設(shè)備和字符設(shè)備
塊設(shè)備是硬件設(shè)備,通過隨機 (不一定是順序) 訪問固定大小的數(shù)據(jù)塊 (chunk) 來區(qū)分。固定大小的 chunk 稱為塊(block)。最常見的塊設(shè)備是硬盤,但也存在許多其他塊設(shè)備,如軟盤驅(qū)動器、藍(lán)光閱讀器和閃存。注意,這些都是掛載文件系統(tǒng)的設(shè)備,文件系統(tǒng)就像是塊設(shè)備的通用語言。
字符設(shè)備通過連續(xù)的流數(shù)據(jù)訪問,一個字節(jié)接著一個字節(jié)。典型的字符設(shè)備是終端 (終端分多種,由物理的也有虛擬的) 和鍵盤。
區(qū)分塊設(shè)備和字符設(shè)備最簡單的方法是看數(shù)據(jù)訪問的方式。能隨機訪問獲取數(shù)據(jù)的是塊設(shè)備,必須按字節(jié)順序訪問的是字符設(shè)備。
如果可以這里讀一點數(shù)據(jù),那里讀一點數(shù)據(jù),最后串成一整段連續(xù)的數(shù)據(jù),那么這個就是塊設(shè)備,就像硬盤上的數(shù)據(jù)是不連續(xù)的,有可能需要通過隨機訪問的方式獲取一段數(shù)據(jù)。比如磁盤上一個稍大一點的文件,可能前 10k 數(shù)據(jù)是連續(xù)的數(shù)據(jù)塊或在連續(xù)的扇區(qū)內(nèi),之后的 10k 數(shù)據(jù)在離它很遠(yuǎn)甚至在不同的柱面上。
如果一段數(shù)據(jù)中的每個字節(jié)都跟訪問時的字節(jié)順序是一樣的,即字節(jié)先后順序從訪問獲取時到最后處理數(shù)據(jù)的過程中都是完全一致的,那么這個就是字符設(shè)備。換句話說,字符設(shè)備可以看作是流設(shè)備。就像鍵盤輸入數(shù)據(jù)一樣,連續(xù)敲兩個字鍵,這兩個鍵對應(yīng)的字節(jié)數(shù)據(jù)在被接收的時候一定是先敲的在前面,后敲的在后面。同理終端設(shè)備也是以一樣的,程序?qū)?shù)據(jù)輸出到終端時,程序先輸出字母 a 再輸出數(shù)字 3,那么顯示在終端上時一定是 a 在前,3 在后。
到此,關(guān)于“l(fā)inux 設(shè)備文件的類型有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>