塊設(shè)備是Linux三大設(shè)備之一,其驅(qū)動(dòng)模型主要針對(duì)磁盤,F(xiàn)lash等存儲(chǔ)類設(shè)備,本文以3.14為藍(lán)本,探討內(nèi)核中的塊設(shè)備驅(qū)動(dòng)模型

框架

下圖是Linux中的塊設(shè)備模型示意圖,應(yīng)用層程序有兩種方式訪問一個(gè)塊設(shè)備:/dev和文件系統(tǒng)掛載點(diǎn),前者和字符設(shè)備一樣,通常用于配置,后者就是我們mount之后通過文件系統(tǒng)直接訪問一個(gè)塊設(shè)備了。

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

塊設(shè)備(blockdevice)是一種具有一定結(jié)構(gòu)的隨機(jī)存取設(shè)備,對(duì)這種設(shè)備的讀寫是按(所以叫塊設(shè)備)進(jìn)行的,他使用緩沖區(qū)來存放暫時(shí)的數(shù)據(jù),待條件成熟后,從緩存一次性寫入設(shè)備或者從設(shè)備一次性讀到緩沖區(qū)。作為存儲(chǔ)設(shè)備,塊設(shè)備驅(qū)動(dòng)的核心問題就是哪些page->segment->block與哪些sector有數(shù)據(jù)交互
作為一種存儲(chǔ)設(shè)備,和字符設(shè)備相比,塊設(shè)備有以下幾種不同:

    字符設(shè)備塊設(shè)備
    1byte塊,硬件塊各有不同,但是內(nèi)核都使用512byte描述
    順序訪問隨機(jī)訪問
    沒有緩存,實(shí)時(shí)操作有緩存,不是實(shí)時(shí)操作
    一般提供接口給應(yīng)用層塊設(shè)備一般提供接口

    網(wǎng)友評(píng)論