硬體抽象層是位于作業系統內核與硬體電路之間的介面層,其目的在于將硬體抽象化,它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植,從軟硬體測驗的角度來看,軟硬體的測驗作業都可分別基于硬體抽象層來完成,使得軟硬體測驗作業的并行進行成為可能,
1 簡介
硬體抽象層技術最初是由 Microsoft 公司為確保 Windows NT 的穩定性和兼容性而提出的,針對過去 Windows 系列作業系統經常出現的系統死機或崩潰等現象, Microsoft 總結發現,程式設計直接與硬體通信,是造成系統不穩定的主要原因,在得出這個結論的基礎上,微軟公司在 Windows NT 上取消了對硬體的直接訪問,首先提出了硬體抽象層 (Hardware Abstraction Layer ,簡稱 HAL ) 的概念,硬體抽象層就是: “ 將硬體差別與作業系統其他層相隔離的一薄層軟體,它是通過采用使多種不同硬體在作業系統的其他部分看來是同一種虛擬機的做法來實作的, “
后來,這種 HAL 設計思路被一些嵌入式作業系統參考,其系統內核被分成兩層,上層稱為 “ 內核 (Kernel)” ,底層則稱為 “ 硬體抽象層 ”,
Kernel /?k??rnl/
The most material and central part; the core;
硬體抽象層是位于作業系統內核與硬體電路之間的介面層,其目的在于將硬體抽象化,它隱藏了特定平臺的硬體介面細節,為作業系統提供虛擬硬體平臺,使其具有硬體無關性,可在多種平臺上進行移植,從軟硬體測驗的角度來看,軟硬體的測驗作業都可分別基于硬體抽象層來完成,使得軟硬體測驗作業的并行進行成為可能,
硬體抽象層是一個編程層,允許計算機作業系統在邏輯層而不是硬體層與硬體設備互動, Windows 2000就是支持硬體抽象層的作業系統之一,作業系統核心或者硬體驅動程式都可以呼叫硬體抽象層,無論哪種情況,呼叫程式都不用了解硬體的具體設計細節,只需要給出抽象層所需的引數即可 ,
2 思想
嵌入式作業系統的設計是一個涉及嵌入式軟體 、 硬體的方方面面的非常復雜的問題,解決這個問題可基于這樣一個基本原理:問題分解,各個擊破,設計易于移植的嵌入式平臺,應遵循層次化 、 模塊化和物件化的設計方法,
(1)層次化思想
層次化設計對于嵌入式作業系統而言,體現在嵌入式作業系統的縱向結構上,為了適應多種硬體平臺,將作業系統劃分出來一個可以直接和硬體通訊的層次,然后為其上層提供抽象支持,下層通過 API 的形式向上層提供服務,這樣上層在進行硬體操作時,不需要了解設備的具體細節,從而大大減少系統理解和開發的復雜度,所以,層次化的方法主要有以下優點:節省成本 、 易于理解 、 易于擴展 、 易于排錯,
(2)模塊化思想
模塊化最大特點就是將介面和實作分離開來,將具體的功能塊隱藏在抽象的介面背后,以保證每個模塊可以在不影響其他模塊的情況下進行改變,這樣,可將模塊之間的依賴關系僅僅限定于介面,模塊化方法與層次化方法不同,軟體模塊之間是相互獨立的關系,而不是層次之間相互依賴的關系,
(3)物件化思想
就當前的目的來說,物件是結構化使用模塊的方法,面向物件設計方法將資料與資料上的操作封裝在物件這個模塊物體中,外界不能直接對物件內部進行訪問和操作,只能通過訊息的方式間接訪問,因此,面向物件設計方法能夠使軟體開發人員更加容易理解,并且也提高了軟體的擴展性 、 維護性和重用性,
3 原理
嵌入式系統是一類特殊的計算機系統,它自底向上包括3個主要部分 : 硬體環境 、 嵌入式作業系統和嵌入式應用程式,硬體環境是整個嵌入式作業系統和應用程式運行的硬體平臺,不同的應用通常有不同的硬體環境 ; 因此如何有效地使嵌入式操作應用于各種不同的應用環境,是嵌入式作業系統發展中所必須解決的關鍵問題,
硬體抽象層通過硬體抽象層介面向作業系統以及應用程式提供對硬體進行抽象后的服務,當作業系統或應用程式使用硬體抽象層 API 進行設計時,只要硬體抽象層 API 能夠在下層硬體平臺上實作,那么作業系統和應用程式的代碼就可以移植,這樣,原先嵌入式系統的3層結構逐步演化為一種4層結構,下圖顯示了引入硬體抽象層后的嵌入式系統的結構,

在整個嵌入式系統設計程序中,硬體抽象層同樣發揮著不可替代的作用,傳統的設計流程是采用瀑布式設計開發程序,首先是硬體平臺的制作和除錯,而后是在已經定型的硬體平臺的基礎上再進行軟體設計,由于硬體和軟體的設計程序是串行的,因此需要很長的設計周期 ; 而硬體抽象層能夠使軟體設計在硬體設計結束前開始進行,使整個嵌入式系統的設計程序成為軟硬體設計并行的 V 模式開發程序,如下圖所示,

這樣兩者的設計程序大致是同時進行的或是并發的,縮短了整個設計周期,
4 特點
- 硬體抽象層與硬體密切相關性;
- 硬體抽象層與作業系統無關性;
- 硬體抽象層介面定義的功能應包含硬體或系統所需硬體支持的所有功能;
- 硬體抽象層介面定義應該簡單明了,如果定義太多介面,會增加軟體模擬的復雜性;
- 具有可測性的介面設計有利于系統的軟硬體測驗和集成,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/158150.html
標籤:其他
