iOS系统内核

Documentation Archive

https://developer.apple.com/library/archive/navigation/#section=Technologies&topic=Web Services

iOS系统内核

XNU内核是Darwin操作系统的一部分,可在macOS和iOS操作系统中使用。 XNU是X is Not Unix的首字母缩写。 XNU是一个混合内核,它结合了卡内基梅隆大学开发的Mach内核,FreeBSD的组件以及用于编写称为IOKit的驱动程序的C ++ API。 XNU在x86_64上针对单处理器和多处理器配置运行。

Darwin的内核是XNU,XNU is Not Unix。XNU是两种技术的混合体,Mach和BSD。BSD层确保了Darwin系统的UNIX特性,真正的内核是Mach,但是对外部隐藏。BSD以上属于用户态,所有的内容都可以被应用程序访问,而应用程序不能访问内核态。当需要从用户态切换到内核态的时候,需要通过mach trap实现切换。

1. XNU 包含:
  • Mach微内核
  • BSD层
  • libkern
  • I/O Kit
2. Mach

Mach 是 XNU的原子核,是一个微内核轻量级操作系统,仅处理最核心的任务

  • 进程和线程抽象
  • 任务调度
  • 进程间通讯和消息传递
  • 虚拟内存管理
3. BSD层

BSD层简历在Mach之上,确保了Darwin符合 POSIX 。提供了更高层次的功能,包括:

  • UNIX 进程模型
  • POSIX线程模型(Pthread)及相关的同步原语
  • UNIX 用户和组
  • 网络协议栈(BSD Socket API)
  • 文件系统访问
  • 设备访问(通过/dev目录访问)
4. libKern

I/OKit是C++ 编写的;为了支持C++运行时并提供所需要的基类,是一个內建的自包含的C++库。

I/O Kit
这是一个在内核中的完整的自包含的执行环境,让开发者可以使用C++快速创建设备驱动程序。

apple开源

https://github.com/apple/darwin-xnu

参考

http://www.uml.org.cn/mobiledev/201501293.asp
https://www.jianshu.com/p/06ee5c6fb3bd
https://www.jianshu.com/p/029cc1b039d6
https://www.jianshu.com/p/fdeea4dc86a8

iOS系统内核

上一篇:whatsapp 印度使用 无法登陆 显示时钟 无法连接 无网络 解决办法 时间不对 调整 上不了


下一篇:Android ListView 的使用 Kotlin