㈠ linux中普通文件和塊設備文件的區別
1,概述
一直都搞不明白普通文件跟塊文件的區別,總覺得一個普通的文件是存放在磁碟塊上,那它既屬於普通文件又屬於塊設備文件。剛好下午睡了一個大頭覺,比較清醒,集中學習了下普通文件和塊設備文件的區別和聯系。
本文從基本概念,定址空間,內核讀寫幾個方面介紹普通文件和塊設備文件的辯證統一。
2,基本概念
普通文件(Regular File)。指普通意義上的文件,如數據文件、可執行文件等。
設備文件(Device File)。類unix操作系統都是基於文件概念的,文件是由位元組序列而構成的信息載體。根據這一點,可以把IO設備當作設備文件這種所謂的特殊文件來處理;因此,與磁碟上的普通文件進行交互所用的同一系統調用可直接用於IO設備。根據設備驅動程序的基本特徵,設備文件可以分為兩種:塊和字元。這兩種硬體設備之間的差異並不容易劃分,但我們至少可以假定以下的差異:[1]
· 塊設備的數據可以隨機地被訪問,而且從人類用戶的觀點看,傳送任何數據塊所需的時間都是較少而且是大致相同的。塊設備的典型例子是硬碟、軟盤[1]。塊設備一般情況下是帶緩沖區的。
· 字元設備的數據或者不可以隨機訪問,或者可以被隨機訪問,但是訪問隨機數據所需的時間很大程度上依賴於數據在設備內的位置[1]。
3, 定址空間的區別
塊設備文件是塊設備的物理定址空間;普通文件是塊設備的虛擬定址空間。普通文件比塊設備文件多一層文件系統的地址轉換機構。
㈡ linux 設備的含義
inux 中的設備有2種類型:字元設備(無緩沖且只能順序存取)、塊設備(有緩沖且可以隨機存取)。這些設備中,有些設備是對實際存在的物理硬體的抽象,而有些設備則是內核自身提供的功能(不依賴於特定的物理硬體,又稱為"虛擬設備")。每個設備在 /dev 目錄下都有一個對應的文件(節點)。
常見設備及相應/dev/下的文件名:
/dev/usb/hiddev0 | /dev/usb/hiddev1 --- USB 字元設備(滑鼠/鍵盤/游戲桿/手寫版等人操作計算機的設備)
/dev/uba | /dev/ubb --- USB 塊設備(U盤之類)
/dev/sda | /dev/sdb --- 第n個 SCSI 磁碟(整個磁碟)
/dev/hda | /dev/hdb --- 第n個 IDE 磁碟(整個磁碟)
/dev/sdc1 | /dev/sdc2 --- 第3個 SCSI 磁碟的第n個 分區 Linux/i386來說,分區1-4是主分區,5-15是邏輯分區。
/dev/scd0 | /dev/scd1 --- 第n個 SCSI CD-ROM
/dev/tty0 | /dev/tty1 --- 當前虛擬控制台、第n個虛擬控制台 TTY(終端)設備
Linux系統Mount點:mount的時候,mount的目標文件夾/media/cdrom要手動創建
mount /dev/cdrom /media/cdrom
㈢ Linux的設備和設備號是指什麼可否簡單的解釋一下
Linux中I/O設備分為兩類:字元設備和塊設備。兩種設備本身沒有嚴格限制,但是,基於不同的版功能進行了權分類。
(1)字元設備:提供連續的數據流,應用程序可以順序讀取,通常不支持隨機存取。相反,此類設備支持按位元組/字元來讀寫數據。舉例來說,鍵盤、串口、數據機都是典型的字元設備。
(2)塊設備:應用程序可以隨機訪問設備數據,程序可自行確定讀取數據的位置。硬碟、軟盤、CD-ROM驅動器和快閃記憶體都是典型的塊設備,應用程序可以定址磁碟上的任何位置,並由此讀取數據。此外,數據的讀寫只能以塊(通常是512B)的倍數進行。與字元設備不同,塊設備並不支持基於字元的定址。
總結一下,這兩種類型的設備的根本區別在於它們是否可以被隨機訪問。字元設備只能順序讀取,塊設備可以隨機讀取。
㈣ Linux下裸設備(raw device),字元設備,塊設備還有logical device四者之間的關系(比如誰包含誰等)
塊設備:按照數據塊批量讀寫數據,備敏比如硬碟。
字元設備:按照數據串列輸入輸出,比如鍵盤
裸設備:就是一塊硬碟或者一個分區,沒培擾有經過格式化的,沒有文件系統。
邏輯設備:就是講小磁碟整合成一個大磁配滾旦盤,然後再進行分區,實際物理存儲可能不連續。
㈤ Linux┊字元設備和塊設備的區別
字陸肆符設備和塊設備的區掘悉賀別在於前者只能被順序讀寫,後者可以隨機訪問。大多數設備為字元設備判派,以位元組為單位,實現file_operations結構體。而如磁碟為塊設備,以塊為單位接受輸入和返回輸出。實現block_device_operations結構體.