[笔记] OS X and iOS 内核开发
一、KEXT包的安全性说明
- KEXT 程序包及其包含的所有文件及文件夹必须属于 root 用户(用户 id 是 0)
- KEXT 程序包及其包含的所有文件及文件夹必须属于 wheel 组(组 id 是 0)
- KEXT 程序包及其包含的所有文件夹的权限掩码必须是 0755 (rwxr-xr-x)
- KEXT 程序包中的所有文件的权限掩码必须是 0644 (rw-r--r--)
使用 xcode 编译内核扩展时,会设置出了用户与组以外的所有要求,我们只要通过如下命令来设置用户与组即可:
sudo chown -R root:wheel xxx.kext
需要注意的是,不要在 xcode 生成的内核扩展上直接修改,这样会造成 xcode 无法删除内核扩展,最好拷贝出来修改。
二、命令行实用程序
- kextload:加载内核扩展, sudo kextload xxx.kext
- kextunload:卸载内核扩展, sudo kextunload xxx.kext
- kextutil:加载内核扩展,并提供诊断信息,便于分析加载失败的原因
- kextstat:显示所有已加载的内核扩展
- ioreg:show I/O Kit registry,"man ioreg"
- ioclasscount:内核对象的内存管理是基于引用计数,该工具可以用来打印所有已加载的内核对象的引用计数个数,便于调试内存泄露
三、查看调试输出
实用 Console 程序查看内核扩展中输出的 Log

四、IORegistryExplorer
用来查看系统系统上已经加载的驱动程序。是 xcode 的附属工具,需要单独下载:hardware_io_tools_for_xcode

五、The Wheel Group
There is a special group in BSD called the wheel group.
Membership in the wheel group confers on users the ability to become the root user by using the su utility on the command line.
Users who are not in the wheel group can’t become the root user,
even if they have the correct password.
六、
[笔记] OS X and iOS 内核开发的更多相关文章
- iOS学习笔记(一)——ios搭建开发环境
		好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC OS X 另加一部iP ... 
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
		blog.csdn.net/totogo2010/article/details/8205810 目录(?)[-] 第一课名称 MVC and Introduction to Objective-C ... 
- WWDC 2014 Session笔记 - iOS界面开发的大一统
		本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 What's New in Cocoa Touch Building Adaptive Apps with UIKit Wh ... 
- 《Linux内核设计与实现》读书笔记(二十)- 补丁, 开发和社区
		linux最吸引我的地方之一就是它拥有一个高手云集的社区, 还有就是如果能=为linux内核中贡献代码, 一定是一件令人自豪的事情. 下面主要总结一些和贡献代码相关的主要内容. 加入社区 编码风格 提 ... 
- 009_【OS X和iOS系统学习笔记】 OS X架构
		1.OS X是整个操作系统的集体名称,而Darwin是其中的一个组件. 2.Darwin是操作系统的类UNIX核心,本身由内核.XNU和运行时组成. 3.uname指令:可以得到有关架构的详细信息以及 ... 
- 《Linux内核设计与实现》读书笔记(二)- 内核开发的准备
		在尝试内核开发之前,需要对内核有个整体的了解. 主要内容: 获取内核源码 内核源码的结构 编译内核的方法 内核开发的特点 1. 获取内核源码 内核是开源的,所有获取源码特别方便,参照以下的网址,可以通 ... 
- iOS界面开发
		[转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ... 
- ios 多线程开发(一)简介
		简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ... 
- ios搭建开发环境
		ios搭建开发环境 好久就想试水IOS开发了,由于开发环境限制,一直局限于理论和虚拟机,近来入手了MacBook Pro,也来尝尝鲜,笔者也是现学现总结,如果有不足,请指正. IOS开发必备MAC O ... 
随机推荐
- jquery动态刷新局部表单
			想实现一个效果就是选择某个年份:然后再action中按该年份查找数据库中的数据,返回到页面表单中显示. 1.添加登记年度的changge事件,也是异步请求. $(document).ready(fun ... 
- S2SH新手框架建立具体过程
			S2SH集成框架新手学习总结 第一章:S2SH框架新手搭建准备工作仅仅都须要导入那些文件 第二篇:S2SH框架新手搭建具体过程 版本号信息:Struts2.3+Hibernate4.3.6+Sprin ... 
- ReactJs入门思路
			ReactJs入门思路小指南 原文 http://segmentfault.com/blog/fakefish/1190000002449277 React是怎么搞的? React中,把一切东西都看 ... 
- maven添加本地jar包依赖
			1. 在java工程下新建文件夹,如repo/allin/allin-util/0.1 然后jar包扔进去,如下图: 2. 修改pom.xml文件,增加以下 <repositories> ... 
- Tomcat剖析(三):连接器(1)
			Tomcat剖析(三):连接器(1) 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1) 4 ... 
- 跟着大神重写的KNN 文档归类小工具
			·背景 在知道KNN之前,楼主有时候会粗糙地做一些分类模型的计算.在拜读了Orisun大神[http://www.cnblogs.com/zhangchaoyang/articles/2162393. ... 
- Swift语言指南(九)--基本运算符
			原文:Swift语言指南(九)--基本运算符 运算符(operator)是用来检查,改变或合并值的一种特殊符号或短语.例如,加号运算符让两个数字相加(如:let i = 1 + 2),还有些更复杂的运 ... 
- 基于Http替补新闻WebService数据交换
			该系统的工作之间的相互作用.随着信息化建设的发展,而业界SOA了解并带来低TOC(总拥有成本)其他优势.越来越多的高层次的信息使用者关注. 这里暂且不提SOA这种架构规划.在系统间集成协议简单的讨论. ... 
- PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
			原文:PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4 本文介绍如何在Windows下配置php扩展. 本文链接 http://blog.csdn. ... 
- linux网络编程学习笔记之四 -----多-threaded服务器
			对于使用过程中并发.通过实现更轻量级线程. 每个线程都是一个独立的逻辑流. 主题是CPU在执行调度的最小独立单位,这个过程是资源分配单元.当然,这是在微内核操作系统说.总之,这是唯一的一个操作系统内核 ... 
