码迷,mamicode.com
首页 > 移动开发 > 详细

iOS系统内核

时间:2020-07-06 01:12:01      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:section   开发者   字母   ref   mac   处理   apple   首字母   通讯   

Documentation Archive

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

技术图片

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系统内核

标签:section   开发者   字母   ref   mac   处理   apple   首字母   通讯   

原文地址:https://www.cnblogs.com/qiyer/p/13252630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!