《VxWorks設備驅動開發詳解》筆記——第八章 塊設備驅動

1.基本上所有通用操作系統都需要塊設備的配合才能使得系統本身正常運行,塊設備的存在才讓操作系統功能變得強大。塊設備可以用於保存操作系統啓動參數,提供給進程運行所需的數據以及永久保存進程生成的或從外界讀取的數據,使得進程的工作方式顯得有意義;

2.對於應用層,塊設備以文件系統的形式存在,用戶以操作文件和目錄的方式訪問塊設備;

3.可將塊設備定義爲:每次只能以數據塊的方式進行數據寫入和讀取的設備;

4.塊設備最大的優勢是容量大,不足是操作時間常;

5.flash設備本質上也是一類塊設備,但是其操作方式與硬盤設備有些區別;

6.rawFs文件系統將整個硬盤設備當做一個單一的文件進行讀寫。對於多個任務同時寫硬盤設備的操作,每個任務一般都需要指定其寫入的偏移位置,使得各個任務寫入的數據不至於相互覆蓋;

7.rawFs沒有dosFs文件系統中諸如超級塊、文件節點位圖等結構概念。

8.硬盤不能單個字節地進行數據讀寫,每次必須以一個扇區爲單位進行數據的讀寫。實際底層塊設備驅動直接打交道的是硬盤控制器,硬盤控制器之下是硬盤驅動器,硬盤驅動器纔是真正完成數據在物理存儲戒指上的讀寫;

9.CBIO中間層:是基於塊設備讀寫操作時間相對較長而在內核所作的緩衝中間層。CBIO中間層內部又可以劃分爲3層:

  • CBIO分區管理層;
  • CBIO數據緩衝層;
  • CBIO基本功能層;

10.硬盤驅動實際上驅動的硬盤控制器,與硬盤驅動器之間進行的數據交互。交互的通信手段就是中斷;

11.dosFs文件系統提供一種文件和目錄的層次性視圖,使得應用層對塊設備的操作轉換成存儲在塊設備之上的文件和目錄的操作。塊設備的文件和目錄層次視圖完全由文件系統本身提供,從底層塊設備驅動以及設備本身的角度而言,其只是看到數據流,並不對數據本身的含義進行解釋。

12.概念:文件、目錄、超級塊;

13.格式化的過程就是在塊設備之上創建dosFs文件系統管理用的數據結構數據;

14.超級塊:實際上是一個數據結構,其佔用一個塊(如1KB,兩個扇區)的塊設備存儲容量,存儲文件系統總體信息,文件系統的掛載就是根據超級塊中的信息進行的;

15.dosFs文件系統初始化過程:

(1)dosFs主模塊初始化;

(2)dosFs格式化功能模塊初始化;

(3)FAT文件分配表管理模塊初始化;

(4)dosFs一致性檢查功能模塊初始化;

(5)dosFs長文件名處理模塊初始化;

16.對於小於2GB的塊設備,dosFs默認使用FAT16進行格式化,大於等於2GB的塊設備默認使用FAT32進行格式化;

17.引導塊之後的超級塊、節點位圖、邏輯塊位圖、節點信息等都是文件系統本身的信息。是掛載塊設備、維護塊設備文件和目錄結構視圖的基本文件系統元數據。基本原理都是:建立一種機制對塊設備空間進行有序的管理,爲應用層提供文件和目錄結構視圖;

18.對於塊設備而言,CBIO數據緩衝層一般都是必須使用的,其中CBIO分區管理層在底層塊設備被分爲多個分區時使用。CBIO分區管理層在塊設備只能創建主分區(最多支持4個分區),不支持擴展分區的創建。由CBIO分區管理層創建的分區只能使用在VxWorks下,與其他操作系統不兼容,即使是使用dosFs文件系統;

19.在中斷工作方式下,底層驅動與內核耦合較爲緊密,必須儘量去除操作系統本身以及底層塊設備驅動之間的耦合性,所以VxWorks下塊設備的工作方式必須是方阻塞模式,即輪詢式

20.CBIO中間層對每個塊設備都在內存中分配一塊專門的緩衝區進行數據緩衝;

例如:執行塊設備數據讀取操作時,文件系統層調用CBIO中間層函數發出塊設備數據讀取請求,CBIO中間層將首先從內存緩衝區進行查找:

  • 如果找到對應塊,則直接從內存緩衝區中拷貝數據給文件系統層;
  • 如果沒有找到,則創建一個新的塊,而後調用底層驅動讀設備函數,將數據從塊設備中讀取到新創建的塊中,之後從這個塊中將數據拷貝給文件系統層。

綜上,在初次讀取一個塊時,將存在較大的延遲,之後由於內存緩衝區已經保留了數據,所以此後的讀取操作都不需要經過底層塊設備讀函數,效率將大大提高;

21.ATA(IDE)硬盤三大構成部件:

(1)硬盤控制器(電子控制電路部分),通過IDE接口(40針)完成與主機(板)之間的數據通信,即進行數據和命令的收發,其內部集成有數據緩衝區,在硬盤讀操作中存儲從硬盤讀取的數據,再通過IDE接口傳遞給主機,在硬盤寫操作中用以存儲從主機讀取的數據,在驅動硬盤驅動器將數據寫入硬盤對應扇區;

(2)硬盤驅動器(機械控制部分),完成磁頭等機械部分的驅動,具體完成硬盤的讀寫;

(3)用作物理存儲介質的磁盤片,對於硬盤設備而言,將由多個盤片構成;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章