作者 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
--