加载和卸载内核扩展 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程序
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程序
相关文章推荐
- 编程之美2014资格赛 大神与三个小伙伴 小数据
- Android photo color change
- Expected unqualified-id
- Talented Chef
- Mule ESB 的一些基本概念
- 【DOM编程艺术】图片库改进版
- Nginx 常见应用技术指南(Nginx Tips)
- 黑马程序员_java_构造_多态_单例_继承_静态
- OpenMP编程->互斥锁函数
- [置顶] OpenMP编程->互斥锁函数
- 他从滴水洞中走来(其三)
- [hdu 2027] 统计元音
- 金山实习笔试题(湖南大学站)略解,有源码有真相
- hdu Largest prime factor
- hdu Largest prime factor
- Phonebloks
- java运行时内存分配详解
- 杭电acm 2032
- ubuntu12.04.4下MySQLdb-python的使用
- Oracle密码忘记了解决办法