【深入解析MAX OSX & iOS操作系统】读书笔记 —— OS X 和 iOS 使用的技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【深入解析MAX OSX & iOS操作系统】读书笔记 —— OS X 和 iOS 使用的技术相关的知识,希望对你有一定的参考价值。

参考技术A

作为一个BSD衍生的操作系统,OSX继承了很多BSD的特性,包括POSIX系统调用、一些BSD扩展(内核队列)以及BSD的强制访问控制。

苹果新增的内容:“沙盒”机制。替换了原本系统配置的/etc目录。标准的UNIX syslog被AppleSystem Log增强了。还有FSEvents新技术。

尽管XNU的绝对的核心是Mach,但XNU向用户态展现出来的主要接口是BSD层。

sysctl(8)访问内核内部状态的标准方法。直接查询内核变量的值,获得重要的运行时诊断信息。也可以设置可写变量的值。

内核组件也可以在运行会注册额外的sysctl变量值,甚至增加整个名称空间。

sysctl变量的范围很广,包括从一些简单的调试变量到其他可控制整个子系统行为的读写变量。ps和netstat都依赖于sysctl获得PID和socket系列,当然也可以通过其他方式获得。

kqueue是BSD中使用的内核事件通知机制。一个kqueue指的是一个描述符,这个描述符会阻塞等待知道一个特定类型和种类的事件发生。用户态的进程(或内核)可以等待这个描述符,因为kqueue提供了一种用于一个或多个进程同步的简单高效的方法。

kqueue和对应的 kevent(表示事件的数据结构) 构成了内核异步I/O的基础。

审计是OSX中一个自包含的子系统。主要的用户态组件是auditd,由launchd根据需要而启动的后台服务进程。这个后台服务进程不负责实际的审计日志记录,审计日志记录是由内核本身直接完成的。然后这个后台服务进程能控制内核。

如果启用了审计,那么XNU中编号从350到359的系统调用都被分配用于启用和控制审计。

添加了对象级别的安全性,限制特定进程针对具体文件或资源的访问权限。可以控制一个给定的应用程序不允许访问用户的私有数据或某网站。

从内核的角度看,在各种系统调用的实现中插入了对MAC的调用,每一个系统调用都必须先通过MAC的验证,然后才能真正处理来自用户态的请求。

MAC是OSX的隔离机制和ios的entitlement机制的基础。

UNIX从传统上都依赖密码文件 /etc/passwd 和保存密码的散列文件 /etc/shadow 。在OSX单用户(以及iOS)中,使用 /etc/master.passwd 作为shadow文件,其他情况都放弃了这些密码文件,使用自己的 目录服务

目录服务的维护的内容不仅仅是用户和用户组,还保存了系统配置和很多其他方面的信息。

OSX还抛弃了大部分其他配置文件,这些配置文件传统上在UNIX中是当做系统“注册表”使用的。

为了维护系统配置,OSX和IOS使用了一个特殊的守护程序—— configd(8) ,这个守护程序可以加载额外的可加载的bundle(插件),这个bundle位于 /System/Library/SystemConfiguration 下,包含IP和IPv6配置、日志以及其他bundle。

可通过工具 scutil 来流量和查询系统配置。

OSX也继承了传统UNIX的系统日志功能。OSX10.4引入新的日志模型,ASL,提供了更多特性,例如过滤和搜索。

ASL采用模块化设置,同时提供了以下四种日志接口:

ASL日志收集在 /var/log/asl 目录中。 aslmanager(8) 命令负责管理这些日志,launchd自动运行这条命令。

ASL日志采用的是二进制格式,而不是syslog采用的文本文件。日志文件变小了,但不像syslog那么对grep友好。OSX包含了syslog()命令用于显示和查看日志,并提供了搜索和过滤的功能。

OSX有非常强大的支持脚本的能力。通过osascript(1)命令和友好的Automator应用程序可以访问AppleScript

FSEvents是文件系统的通知API,应用程序可以简单快速地响应文件添加、修改和删除事件。

OSX提供了一个系统级的通知机制,这是分布式IPC的一种形式。

通知机制核心部分在于notifyd(8)守护进程,在系统引导时启动,这是Darwin的通知服务器。

Entitlement可以将一些表现行为良好的应用程序单独从监禁中释放出来。

以上是关于【深入解析MAX OSX & iOS操作系统】读书笔记 —— OS X 和 iOS 使用的技术的主要内容,如果未能解决你的问题,请参考以下文章

iOS之深入解析高阶容器的原理和应用

iOS之深入解析操作系统的架构

深入底层,Linux五种IO模型全解析

深入底层,Linux五种IO模型全解析

iOS之深入解析渲染的底层原理

HarmonyOS之深入解析通知的使用