美國Linux服務器系統(tǒng)里有字符設備跟塊設備,兩者是有所區(qū)分的,而對于系統(tǒng)不太熟悉的美國Linux服務器用戶對這兩個概念自然就不太理解,所以下面小編就來介紹下美國Linux服務器系統(tǒng)的字符設備和塊設備的原理,以及它們之間的區(qū)別。
1:塊設備
美國Linux服務器系統(tǒng)中不需要按順序訪問固定大小數據片chunks,能夠隨機的設備被稱作塊設備,這些數據片就稱作塊。美國Linux服務器最常見的塊設備是硬盤,除此以外還有軟盤驅動器、CD-ROM驅動器和閃存等等許多其他塊設備。注意它們都是以安裝文件系統(tǒng)的方式使用的,這也是塊設備的一般訪問方式。
2:字符設備
另一種美國Linux服務器基本的設備類型是字符設備,字符設備需要按照字符流的方式被有序訪問,像串口和鍵盤就都屬于字符設備。如果一個硬件設備是以字符流的方式被訪問的話,那就應該將它歸于字符設備;反過來如果一個設備是隨機無序訪問的,那么它就屬于塊設備。
3:塊設備與字符設備的區(qū)別
這兩種類型的設備最根本區(qū)別在于否可以被隨機訪問,也就是說能否在訪問設備時隨意地從一個位置跳轉到另一個位置。舉個例子,鍵盤這種設備提供的就是一個數據流,當你敲入“mfy” 這個字符串時,鍵盤驅動程序會按照和輸入完全相同的順序返回這個由三個字符組成的數據流。如果讓鍵盤驅動程序打亂順序來讀字符串,或讀取其他字符,都是沒有意義的。所以鍵盤就是一種典型的字符設備,它提供的就是美國Linux服務器用戶從鍵盤輸入的字符流。對鍵盤進行讀操作會得到一個字符流,首先是“m”,然后是“f”,最后是“y”,最終是文件的結束。
而當沒敲鍵盤時字符流就是空的,而盤設備的情況就不大一樣,硬盤設備的驅動可以要求讀取磁盤上任意塊的內容,然后又轉去讀取別的塊的內容,而被讀取的塊在磁盤上位置不一定要連續(xù),所以說美國Linux服務器硬盤可以被隨機訪問,而不是以流的方式被訪問,顯然就是一個塊設備。
美國Linux服務器內核管理塊設備要比管理字符設備細致得多,需要考慮的問題和完成的工作相比字符設備來說也要復雜許多,這是因為字符設備僅僅需要控制一個位置,就是當前位置,而塊設備訪問的位置必須能夠在介質的不同區(qū)間前后移動。所以事實上美國Linux服務器內核不必提供一個專門的子系統(tǒng)來管理字符設備,但是對塊設備的管理卻必須要有一個專門的提供服務的子系統(tǒng)。
不僅僅是因為塊設備的復雜性遠遠高于字符設備,更重要的原因是塊設備對執(zhí)行性能的要求很高,對硬盤每多一分利用都會對整個美國Linux服務器系統(tǒng)的性能帶來提升,其效果要遠遠比鍵盤吞吐速度成倍的提高大得多。另外美國Linux服務器用戶將會看到,塊設備的復雜性會為這種優(yōu)化留下很大的施展空間。
簡單來講美國Linux服務器系統(tǒng)的塊設備可以隨機存取,而字符設備不能隨機存取,塊設備通過系統(tǒng)緩存進行讀取,不是直接和物理磁盤讀取;字符設備可以直接物理磁盤讀取,不經過系統(tǒng)緩存,希望能幫助有需要的美國Linux服務器用戶更好的了解相關知識。