睡眠和唤醒过程对OSx上的内核扩展有什么影响

时间:2013-11-19 14:03:24

标签: macos kernel darwin kernel-extension xnu

我想知道在OSx内核的睡眠和唤醒过程中发生了什么。

内核扩展是否接收到新的地址空间并重新开始其初始化过程,或者内核只是将扩展放回同一地址空间?

内部内核扩展(例如IOKit驱动程序)的行为是否也相同?也许它们被加载到内存中的不同位置?

基本上问题是:我的驱动程序(它获得了IOService的接口)是否能够在睡眠后使用其地址而没有问题。

1 个答案:

答案 0 :(得分:1)

在睡眠时,记忆被“冻结”,并且在恢复时,它会恢复到原始状态。因此,除非您积极参与电源管理,否则您的kext将不会发现任何已更改的内容。如果您直接与硬件打交道,那么您将需要关注电源管理,因为您的设备将进行电源循环并需要重新初始化。