E-moss,程序员,爱好阅读和撸狗,主要从事iOS开发工做,公众号:知本集。
主要分享和编写技术方面文章,不按期分享读书笔记,亦可访问“知本集”Git地址:https://github.com/knowtheroot/KnowTheRoot_iOS,欢迎提出问题和讨论。
复制代码
Git地址:github.com/knowtheroot…git
BSD层是创建在Mach之上,是XNU中一个不可分割的一部分。BSD负责提供可靠的、现代的API。其内容包括:程序员
尽管XUN的绝对核心是Mach,可是XUN向用户态提供的主要接口是BSD接口。github
sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。
在openBSD的描述为:安全
The sysctl utility retrieves kernel state and allows processes with appropriate privilege to set kernel state. The state to be retrieved or set is described using a “Management Information Base” (MIB) style name, using a dotted set of components.bash
sysctl(8)命令算得上是一种访问内核内部状态的标准方法。网络
经过使用这条命令,系统管理员能够直接查询内核变量的值,得到重要的运行时诊断信息。
ps:只有很是少许的变量会经过这种方式导出。
内核组件能够在运行时注册额外的sysctl变量值,甚至增长整个名称空间。数据结构
kqueue是BSD中使用的内核事件通知机制。app
一个kqueue指的是一个描述符,这个描述符会阻塞等待直到一个特定的类型和种类的事件发生。异步
用户态或者内核的进程能够等待这个描述符,于是kqueue提供了一种用于一个或多个进程同步的简单且高效的方法。spa
kqueue和kevent(表示事件的数据结构)构成了内核异步I/O的基础。
OS X实现了最基本的安全模块BSM。
审计子系统对OS X的价值是最大的,而对iOS意义不大,由于iOS没有启用审计。
ps:因为审计是一个和安全密切相关的操做,所以必须在内核层面执行。
MAC:既Mandatory Access Control,强制访问控制。
MAC中的关键概念是标签(label),标签指的是一个预约义的分类,系统中的文件集合或其余对象均可以应用这个标签分类。
能够想象谍战片中给文件打上“机密”、“最高机密”等标签
若是请求访问的对象没有提供匹配的标签,那么MAC就会拒绝访问请求。
每个系统调用首先必须经过MAC的验证,而后才能真正处理来自用户态的请求。
MAC是OS X的隔离机制既“沙盒机制”的基础。