您的位置:首页 > 其它

加载和卸载内核扩展 Mac

2014-04-13 18:19 246 查看
Xcode在编写和构建内核扩展方面非常强大,但她却无法测试和调试内核扩展;

Mac
OS X上的内核扩展程序可以通过下列两种方式中的任意一种进行加载:

A:将内核扩展程序包(如HwlloWorld.kext)复制到 /System/Library/Extensions 目录下自动加载(重启?或者硬件插入电脑时候)

B:命令行手动加载

在Xcode中构建的内核扩展时,深沉的KEXT程序包及其内容都会有正确的权限掩码,但用户及组的所有权属于运行编译器的用。如果要根据内核扩展的需要修改文件的所有权,可以在Terminal上使用如下命令:

sudo chown -R root:wheel HelloWorld.kext

请注意,不要在Xcode生成kext的目录下修改,否则下次Build的时候会遇到权限不够的尴尬~~。

kextload: 将KEXT加载到内核

kextunload: 卸载

kextutil: 加载到内核,提供诊断信息

kextstat: 显示所有加载到内核中到KEXT列表

按照Tutorial中的提示加载了HelloWorld.kext,加载成功,但是没有日志输出到/var/log/kernel.log,而且这个文件也不存在;

用如下命令:sudo sysctl -w debug.kextlog=0x0007780E

在system.log中看到了输出(Console程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: