linux-中塊裝置檔案和字元裝置檔案的本質區別
在LINUX系統檔案型別分類的文章中我們提到了 塊裝置 和 字元裝置檔案,那麼什麼是塊裝置 字元裝置檔案呢?他們之間有什麼本質上的區別呢?
裝置檔案分為 Block(塊) Device Driver 和 Character(字元)Device Drive 兩類。Character Device Drive又被稱為字元裝置或裸裝置 raw devices。 Block Device Driver稱為塊裝置。
區別:
Block Device Driver 是以固定大小長度來傳送轉移資料,Character Device Driver是以不定長度的字元傳送資料。且所連線的Devices也有所不同。
Block Device 大致是可以隨機存取(Random Access)資料的裝置,如硬碟機(硬碟)或光碟機;而Character Device剛好相反,依循先後順序存取資料的裝置,如 印表機(鐳射印表機)、終端機(列如 電腦顯示器)等皆是。
/dev/dsk 對應的為塊裝置,檔案系統的操作用到它,如mount。
/dev/rdsk 對應的為字元裝置(裸裝置,rdsk的r即為 raw),fsck newfs等會涉及到。一般我們的作業系統和各種軟體都是以塊方式讀寫硬碟,這裡的塊是邏輯塊,建立檔案系統時可以選擇。windows裡叫簇。可看newfs or mkfs的manual。oracle是比較常見的字元方式讀寫硬碟。
字元裝置還是塊裝置的定義屬於作業系統的裝置訪問層,與實際物理裝置的特性無必然聯絡。裝置訪問層下面是驅動程式,所以只要驅動程式能夠提供哪一種方式,都可以。也就是說驅動程式支援 stream 方式,那麼就可以用這種方式訪問,驅動程式如果還支援block方式,那麼你想用哪種方式訪問都可以。
1:典型的比如硬碟式的裸裝置(Block device),他兩種訪問方式都支援:他是一種具有一定結構的隨機存取裝置,對這種裝置的讀寫是按塊進行的,他使用緩衝區來存放暫時的資料,待條件成熟後,從快取一次性寫入裝置或從裝置中一次性讀出放入到緩衝區;
2:磁碟和檔案系統等字元裝置(Character device):這是一個順序的資料流裝置,對這種裝置的讀寫是按字元進行的,而且這些字元是連續地形成一個資料流。他不具備緩衝區,所以對這種裝置的讀寫是實時的,如終端、磁帶機等。
系統中能夠隨機(不需要按順序)訪問固定大小資料片(chunks)的裝置被稱作塊裝置。這些資料片就稱作塊。最常見的塊裝置是硬碟,除此以外,還有軟盤驅動器、CD-ROM驅動器和快閃記憶體等等許多其他塊裝置。
注意,它們都是以安裝檔案系統的方式使用的——這也是塊裝置一般的訪問方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957453/viewspace-2753012/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 字元裝置與塊裝置的區別字元
- 字元裝置、塊裝置、裸裝置、RAW裝置 .字元
- 檔案作為塊裝置訪問
- 字元裝置、塊裝置與裸裝置字元
- 裸裝置與塊裝置的區別
- linux一切皆檔案之塊裝置檔案(四)Linux
- 裸裝置、字元裝置、塊裝置不全面比較字元
- Linux核心程式設計(字元裝置檔案)(轉)Linux程式設計字元
- FreeBSD裝置檔案(轉)
- 裝置驅動程式INF檔案——INF檔案的節
- 裝置檔案系統教程(轉)
- linux掛載裝置檔案Linux
- AIX 共享磁碟中的字元裝置(/dev/rhdiskn)及塊裝置(/dev/hdiskn)AI字元dev
- ORACLE中裸裝置資料檔案RESIZE/AUTOEXTEND ONOracle
- raw 裸裝置資料檔案更改其他raw裸裝置位置
- 用rman更改管理裸裝置檔案
- oracle將控制檔案從裸裝置遷移到檔案系統Oracle
- 蘋果裝置訪問 Windows 檔案共享教程蘋果Windows
- /dev目錄下找不到裝置檔案dev
- 裸裝置表空間對映檔案
- 儲存、檔案管理/目錄、裝置管理
- 作業系統——裝置驅動和檔案系統作業系統
- 關於/dev/null和/dev/zero兩個檔案裝置devNull
- 字元裝置驅動 —— 字元裝置驅動框架字元框架
- HP-UX中dev目錄下的磁碟字元裝置,塊裝置及新舊命名UXdev字元
- 利用rman遷移裸裝置資料檔案到檔案系統
- gdb除錯嵌入式裝置的core檔案除錯
- 製作ASM裝置下的多個控制檔案ASM
- Linux 裝置檔案/dev/*詳解、查詢Linuxdev
- MacDroid for Mac安卓裝置檔案傳輸工具Mac安卓
- MacDroid for mac(安卓裝置檔案傳輸助手)Mac安卓
- .ora檔案、.dbf檔案和.dat檔案的區別
- Linux核心程式設計(和裝置檔案對話)(轉)Linux程式設計
- 裝置CSV檔案匯入,型別轉換加try...catch...型別
- Android從外部儲存裝置中儲存和載入本地檔案Android
- 基於裸裝置檔案格式安裝oracle資料庫Oracle資料庫
- Linux-檔案寫入和檔案同步Linux
- 使用udev高效、動態的管理Linux裝置檔案devLinux