作者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/cn.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