linux内核acpi,从内核模块探讨ACPI与BIOS及OS之关系

本文通过一个简单的Linux内核模块介绍ACPI,解释ACPI如何获取处理器信息,并探讨ACPI与BIOS的关系。ACPI是BIOS的一部分,提供硬件配置和电源管理功能。文章提到,操作系统通过特定方式与ACPI BIOS交互,类似PCI BIOS的函数调用。作者建议读者尝试编写内核模块,利用ACPI进行系统关机操作,以加深理解。
摘要由CSDN通过智能技术生成

首先,标题说是探讨,其实就是一个简单的介绍。其中内核模块呢,是本人自己写的一个纯粹做demo使用的程序,这个模块通过ACPI来获得系统中处理器的信息(数量及ID),当然Linux内核源码中有一个ACPI driver的实现,纯专业级的,权威性自然不容置疑。不过我的这个小模块可以更容易让你了解ACPI这玩意到底是什么,都能做些什么,因为它的功能非常简单,我把一些防御性代码及考虑最大平台兼容性的因素都剔除掉了,而且只是涉及到ACPI中一些table的操作,所以非常直白。我建议对ACPI感兴趣的同学可以把该模块源码下去自己编译运行一下,我不保证它在所有平台上都能编译通过并正确执行,因为我手边测试平台有限,在两台intel i7和AMD的机器上都能正确运行。对内核源码的版本要求是3.x,更老的版本也可以,但不保证编译可以通过,因为我同事最近在2.6.18内核版本上做东西,我的模块在他那里编译不通过。不过即便有问题,大家也可以自己试着去解决。

ACPI的全称是Advanced Configuration and Power Interface,其spec可以在网上免费下到,我手边目前的版本是4.0a,ACPI可以认为是BIOS代码的一部分(大家有兴趣可以去查看一下BIOS engineer类职位的JD,ACPI是必定会出现的一个关键词),但我个人觉得怎么区分ACPI与BIOS的关系其实并没多少实质性的意义,因为我们的显卡上还有VBIOS(Video BIOS),我倾向于把这些东西笼统地称为Firmware。

ACPI的规范spec很大很暴力,其实我也没有完全看完它,毕竟我也不是BIOS工程师,不过相关领域的技术大体都是相同的,不用看完也可以猜出其会有哪些功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值