作者 wa007123456 (大笨羊)
標題 [請益] 有關硬體抽象層(HAL)的工作
時間 Thu Nov  6 18:02:15 2025


硬體抽象層(Hardware Abstraction Layer)

是介於作業系統和硬體間的一道介面,也就是兩者之間溝通的中間人

上網Google後好像得到的答案也只是概論而已

但這東西"應該"超級重要才對,因為他是系統可移植性的最後一道門。

我猜測他的運作與設計是分為兩側:

硬體:

  不管硬體的指令跟架構如何,在傳輸訊號給作業系統之前
  應該要有一個約定成俗的溝通模式,把硬體傳輸/接收的訊號傳送前進行轉換。

作業系統:

  不管上層的軟體怎麼寫,同樣的在傳送訊號給硬體前也要進行協調好的模式進行溝通。
  並且以適當的方式傳給硬體。




我會這麼想是因為 "兩側應該要互相合作,不然要達成系統相容的部分會是場惡夢"


我不確定這樣對不對,

而我也想問台灣有從事這方面的公司嗎?

只是問問而已...謝謝..


補充:

Hi 又查了一些東西,他的確存在一些工業規範。   ISA, EISA, PCI, PCIe,

都是。 作業系統應該就是寫在核心(Kernel)中的驅動程式(Drivers) 來協調。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.75.248 (臺灣)
※ 作者: wa007123456 2025-11-06 18:02:15
※ 文章代碼(AID): #1f378fR9 (Tech_Job)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1762423337.A.6C9.html
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:28:35
owen5566: 你的說法很像沒摸過os的學生估狗的答案,我建議你是先去看os1F 42.72.169.82 台灣 11/06 18:31
orz811017: 這工作在台灣一堆 SOC或是OEM ODM都會3F 223.140.77.156 台灣 11/06 18:33
owen5566: 這系統豬屎軟韌都有機會碰到,你不用管bus什麼架構,driver不用關心,除非你弄豬屎5F 42.72.169.82 台灣 11/06 18:34
haoboo: 這東西不會專門有職位在做吧,都是每個功能底層的owner自己要摸熟8F 223.143.195.101 台灣 11/06 18:35
owen5566: 那你看的概念會跟系統廠他們用起來差異很大,不過會有類似的東西10F 42.72.169.82 台灣 11/06 18:36

  應該是類似,這東西被歸類在作業系統中。  例如下圖的舊版WindowsNT架構:

  https://reurl.cc/DbvKoN
[圖]

※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:40:26
owen5566: …我意思是soc在bus處理上不會單純axiapb之類,不是這東西被歸類在哪12F 42.72.169.82 台灣 11/06 18:44

  我覺得你們說的會不會是硬體那一側轉換的標準?  也就是寫好的韌體去控制他..

  其實我想問這個問題是因為

  "為什麼換了相同腳位但不同牌子的CPU作業系統還是可以運作?"

  的觀點出發...  另外也感謝你 我會再去看一次作業系統的部分...
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:57:58
owen5566: 不是,你在講啥?寫好的韌體是指什麼?14F 42.72.169.82 台灣 11/06 18:56

   類似BIOS的程式
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:58:45
owen5566: HAL跟你原本的問題根本沒什麼關係好嗎跟bios也無關15F 42.72.169.82 台灣 11/06 19:01

  我會去看看 booting 的細節...
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 19:03:25
owen5566: 你的問題還比較像是要知道isa或interrupt 那些17F 42.72.169.82 台灣 11/06 19:06

   是 中斷 跟 指令集 是OS運作的重點

   可是每個CPU的指令不可能都完全一樣  我只是好奇作業系統是怎麼辨別的..

※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 19:11:14
owen5566: Kernel, hal對不同isa有實作19F 42.72.169.82 台灣 11/06 19:15
yugi2567: 大學生?20F 171.97.102.41 泰國 11/06 22:39
demintree: 可以參考linux,裡面有不同的arch和driver目錄21F 174.195.83.238 美國 11/07 01:01
chuegou: 但凡搞過linux kernel 都不會這樣問23F 223.140.200.208 台灣 11/07 09:17
gino0717: 我覺得HAL是個很好當作聊天的話題
從怎麼設計到誰該負責啥可以聊很久24F 114.36.11.23 台灣 11/07 09:30
jason222333: Win 跟 Linux 定義都不同26F 223.140.179.182 台灣 11/07 09:50
你講的比較像windows 的定義27F 42.72.209.134 台灣 11/07 11:36

--
作者 wa007123456 的最新發文:
點此顯示更多發文記錄