作者wa007123456 (大笨羊)
看板Tech_Job
標題[請益] 有關硬體抽象層(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 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Tech_Job/M.1762423337.A.6C9.html
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:28:35
1F:→ owen5566: 你的說法很像沒摸過os的學生估狗的答案 42.72.169.82 11/06 18:31
2F:→ owen5566: ,我建議你是先去看os 42.72.169.82 11/06 18:31
3F:→ orz811017: 這工作在台灣一堆 SOC或是OEM ODM都會 223.140.77.156 11/06 18:33
4F:→ orz811017: 用 223.140.77.156 11/06 18:33
5F:→ owen5566: 這系統豬屎軟韌都有機會碰到,你不用管 42.72.169.82 11/06 18:34
6F:→ owen5566: bus什麼架構,driver不用關心,除非你 42.72.169.82 11/06 18:34
7F:→ owen5566: 弄豬屎 42.72.169.82 11/06 18:34
8F:→ haoboo: 這東西不會專門有職位在做吧,都是每個功能223.143.195.101 11/06 18:35
9F:→ haoboo: 底層的owner自己要摸熟223.143.195.101 11/06 18:35
10F:→ owen5566: 那你看的概念會跟系統廠他們用起來差異 42.72.169.82 11/06 18:36
11F:→ owen5566: 很大,不過會有類似的東西 42.72.169.82 11/06 18:36
應該是類似,這東西被歸類在作業系統中。 例如下圖的舊版WindowsNT架構:
https://reurl.cc/DbvKoN
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:40:26
12F:→ owen5566: …我意思是soc在bus處理上不會單純axi 42.72.169.82 11/06 18:44
13F:→ owen5566: apb之類,不是這東西被歸類在哪 42.72.169.82 11/06 18:44
我覺得你們說的會不會是硬體那一側轉換的標準? 也就是寫好的韌體去控制他..
其實我想問這個問題是因為
"為什麼換了相同腳位但不同牌子的CPU作業系統還是可以運作?"
的觀點出發... 另外也感謝你 我會再去看一次作業系統的部分...
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:57:58
14F:→ owen5566: 不是,你在講啥?寫好的韌體是指什麼? 42.72.169.82 11/06 18:56
類似BIOS的程式
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 18:58:45
15F:→ owen5566: HAL跟你原本的問題根本沒什麼關係好嗎 42.72.169.82 11/06 19:01
16F:→ owen5566: 跟bios也無關 42.72.169.82 11/06 19:01
我會去看看 booting 的細節...
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 19:03:25
17F:→ owen5566: 你的問題還比較像是要知道isa或interru 42.72.169.82 11/06 19:06
18F:→ owen5566: pt 那些 42.72.169.82 11/06 19:06
是 中斷 跟 指令集 是OS運作的重點
可是每個CPU的指令不可能都完全一樣 我只是好奇作業系統是怎麼辨別的..
※ 編輯: wa007123456 (118.160.75.248 臺灣), 11/06/2025 19:11:14
19F:→ owen5566: Kernel, hal對不同isa有實作 42.72.169.82 11/06 19:15
20F:推 yugi2567: 大學生? 171.97.102.41 11/06 22:39
21F:→ demintree: 可以參考linux,裡面有不同的arch和dr 174.195.83.238 11/07 01:01
22F:→ demintree: iver目錄 174.195.83.238 11/07 01:02
23F:推 chuegou: 但凡搞過linux kernel 都不會這樣問223.140.200.208 11/07 09:17
24F:→ gino0717: 我覺得HAL是個很好當作聊天的話題 114.36.11.23 11/07 09:30
25F:→ gino0717: 從怎麼設計到誰該負責啥可以聊很久 114.36.11.23 11/07 09:30
26F:推 jason222333: Win 跟 Linux 定義都不同223.140.179.182 11/07 09:50
27F:推 jason222333: 你講的比較像windows 的定義 42.72.209.134 11/07 11:36
28F:推 shanaandlai: 然後聊到最後發現沒人要寫 39.9.104.124 11/07 12:57
29F:→ Narcissussss: 去修os跟ca 你就會找到答案了 101.10.49.160 11/07 16:31
30F:→ wa007123456: 好的 謝謝大家 118.160.75.248 11/08 08:14
31F:推 gsrr: os 靠driver跟硬體溝通。 49.216.195.153 11/08 12:18
32F:→ dildoe: 負責硬體跟軟體的問題 抽象問題你來XD118.168.185.116 11/09 07:17
33F:→ exeex: 啊不就聯發科 android firmware 36.228.122.234 11/14 16:31