字元裝置與塊裝置
在Unix-like作業系統中,裝置檔案(device file),也被稱為專用檔案(special file),它為裝置驅動提供一個介面,使得作業系統(使用者)可以像操作檔案一樣對裝置進行訪問(Windows作業系統也借用了類似的概念)。一般I/O裝置可以分為字元裝置(character device )和 塊裝置(block device),兩者的區別在於:
- 字元裝置沒有資料緩衝(unbuffered),即一次只寫入或讀出一個字元;塊裝置是有資料緩衝的,緩衝可以為輸入輸出儲存一“塊”(block)資料,當緩衝區填滿後,系統(使用者)便可以對資料進行讀或寫操作;
- 字元裝置一次只進行一個字元的輸入輸出,它通常不支援隨機的訪問,相反,塊裝置則可以進行資料的隨機訪問與定位;
參考文獻:
相關推薦
Linux字元裝置與塊裝置的區別與比較
Linux中I/O裝置分為兩類:塊裝置和字元裝置。兩種裝置本身沒有嚴格限制,但是,基於不同的功能進行了分類。 (1) 字元裝置:提供連續的資料流,應用程式可以順序讀取,通常不支援隨機存取。相反,此類裝置支援按位元組/字元來讀寫資料。舉例來說,調變解調器是典型的字元裝置。 (
字元裝置與塊裝置
在Unix-like作業系統中,裝置檔案(device file),也被稱為專用檔案(special file),它為裝置驅動提供一個介面,使得作業系統(使用者)可以像操作檔案一樣對裝置進行訪問(Wi
字元裝置驅動與塊裝置驅動、網路裝置驅動的區別
在Linux作業系統下有3類主要的裝置檔案型別:塊裝置、字元裝置和網路裝置。這種分類方法可以將控制輸入/輸出裝置的驅動程式與其他作業系統軟體分離開來。字元裝置是指存取時沒有快取的裝置。典型的字元裝置包括滑鼠、鍵盤、序列口等。字元裝置與塊裝置的主要區別是:在對字元裝置發出讀/
Linux系統中/dev/mtd與/dev/mtdblock的區別,即MTD字元裝置和塊裝置的區別
1. /dev/mtdN 是Linux 中的MTD架構中,系統自己實現的mtd分割槽所對應的字元裝置,其裡面添加了一些ioctl,支援很多命令,如MEMGETINFO,MEMERASE等。 而mtd-util中的flash_eraseall等工具,就是以這些ioctl為基礎而
裸裝置、字元裝置、塊裝置不全面比較
A.為什麼Oracle要使用裸裝置呢裸裝置,也叫裸分割槽(原始分割槽),是一種沒有經過格式化,不被Unix通過檔案系統來讀取的特殊字元裝置。本文收集裸裝置和Oracle問答20例。 1.什麼叫做裸裝置? 裸設備,也叫裸分割槽(原始分割槽),是一種沒有經過格式化,不被U
[Linux]字元裝置和塊裝置的區別
前言: 最根本區別在於它們是否可以被隨機訪問,字元裝置可以不定長度依循先後順序存取資料;塊裝置可以隨機存取。 裝置檔案分為Block Device Driver和Character Device Drive兩類。Character Device Drive又被稱為字元裝
字元裝置、塊裝置、裸裝置、RAW裝置
第一,字元裝置是指在I/O傳輸過程中以字元為單位進行傳輸的裝置,例如鍵盤,印表機等。請注意,以字元為單位並不一定意味著是以位元組為單位,因為有的編碼規則規定,1個字元佔16位元,合2個位元組。 在UNIX系統中,字元裝置以特別檔案方式在檔案目錄樹中佔據位置並擁有相應的i結點。
轉】字元裝置、塊裝置、裸裝置、RAW裝置
第一,字元裝置是指在I/O傳輸過程中以字元為單位進行傳輸的裝置,例如鍵盤,印表機等。請注意,以字元為單位並不一定意味著是以位元組為單位,因為有的編碼規則規定,1個字元佔16位元,合2個位元組。 在UNIX系統中,字元裝置以特別檔案方式在檔案目錄樹中佔據位置並擁有相應的i結點。i結點中的檔案型別指明該檔案是字元
AndroidWear 手持裝置與穿戴裝置的通知同步
一個Android的手持裝置(平板或手機)與AndroidWear裝置連線後,手持裝置會自動將通知傳送到穿戴裝置上。通知會以卡片的形式顯示在穿戴裝置的ContextStream上。然而,為了給使用者最好的體驗,開發者應該新增穿戴裝置特定的功能到通知上。從以下幾點來看下如何
Linux裝置驅動--塊裝置 之概念和框架
基本概念 塊裝置(blockdevice) --- 是一種具有一定結構的隨機存取裝置,對這種裝置的讀寫是按塊進行的,他使用緩衝區來存放暫時的資料,待條件成熟後,從快取一次性寫入裝置或者從裝置一次性讀到緩衝區。 字元裝置(Character devic
Linux裝置驅動--塊裝置(一)之概念和框架
基本概念 塊裝置(blockdevice) --- 是一種具有一定結構的隨機存取裝置,對這種裝置的讀寫是按塊進行的,他使用緩衝區來存放暫時的資料,待條件成熟後,從快取一次性寫入裝置或者從裝置一次性讀到緩衝區。 字元裝置(Character device) ---是一個順
關於塊裝置與nand flash的初步小結
塊裝置驅動的框架: 呼叫過程自上而下為:應用程式讀寫檔案—>虛擬檔案系統(ext3, yaffs2, jffs2)—>由ll_rw_block函式轉換成扇區的讀寫—>塊裝置驅動程式—>讀寫硬體 塊裝置驅動程式提供一個佇列,將讀操作和寫操作放入佇列內,
gendisk,request與bio結構體,以及塊裝置驅動註冊與登出,以及載入與解除安裝
struct bio *bio; bio是這個請求中包含的bio結構體的連結串列,驅動中不宜直接存取這個成員,而應該使用後文將介紹的rq_for_each_bio()。 char *buffer; 指向緩衝區的指標,資料應當被傳送到或者來自這個緩衝區,這個指標是一個核心虛擬地址,可被驅動直接引用。 uns
[轉]字元裝置驅動和塊裝置驅動的區…
系統中能夠隨機(不需要按順序)訪問固定大小資料片(chunks)的裝置被稱作塊裝置,這些資料片就稱作塊。最常見的塊裝置是硬碟,除此以外,還有軟盤驅動器、CD-ROM驅動器和快閃記憶體等等許多其他塊裝置。注意,它們都是以安裝檔案系統的方式使用的——這也是塊裝置的一般訪問方式。 另一種基本的裝置型
塊裝置和字元裝置的區別
在LINUX裡面,裝置型別分為:字元裝置、塊裝置以及網路裝置, PCI是一種和ISA為一類的匯流排結構,歸屬於網路驅動裝置~~~ 字元裝置、塊裝置主要區別是:在對字元裝置發出讀/寫請求時,實際的硬體I/O一般就緊接著發生了,而塊裝置則不然,它利用一塊系統記憶體作為緩衝區,當
塊裝置驅動註冊和登出、載入與解除安裝、塊裝置驅動的I/O請求
塊裝置驅動的open()函式和字元裝置驅動的open()和類似,都以相關inode和file結構體指標作為引數,當一個結點引用一個塊裝置時,inode->i_bdev->bd_disk包含一個指向關聯gendisk的結構體的指標.因此類似字元裝置,可將gendisk的private_data賦給f
關於字元裝置檔案和塊裝置檔案的區別
這 兩種型別的裝置的根本區別在於它們是否可以被隨機訪問——換句話說就是,能否在訪問裝置時隨意地從一個位置跳轉到另一個位置。舉個例子,鍵盤這種裝置提供 的就是一個數據流,當你敲入“fox”這個字串時,鍵盤驅動程式會按照和輸入完全相同的順序返回這個由三個字元組成的資料流。如果讓鍵盤驅動程式打亂順 序來讀字串,或
NetworkManager管理裝置與連線情況
二、nmcli管理裝置與連線情況 檢視裝置狀態 [root@localhost ~]# nmcli device DEVICE TYPE STATE CONNECTION virbr0 bridge conne
塊裝置之三
一、I/O排程器 1.1 資料結構 在將請求提交給塊裝置時,核心提供了各種排程策略,這些排程器用於重排和排程I/O請求以獲得最優的效能。I/O排程器在核心中被稱為elevator。核心使用瞭如下資料結構來實現和管理I/O排程器: struct elevator_type {
塊裝置驅動之二
一、將塊裝置新增到系統 register_blkdev並沒有真正將裝置新增到系統中,想要將裝置新增到系統中,需要使用如下API: void blk_register_region(dev_t devt, unsigned long range, struct module *module,