美文网首页
33 | iOS 系统内核 XNU:App 如何加载?

33 | iOS 系统内核 XNU:App 如何加载?

作者: 阳明先生x | 来源:发表于2020-07-07 21:40 被阅读0次

    iOS 系统架构
    iOS 系统是基于 ARM 架构的,大致可以分为四层:
    最上层是用户体验层,主要是提供用户界面。这一层包含了 SpringBoard、Spotlight、Accessibility。
    第二层是应用框架层,是开发者会用到的。这一层包含了开发框架 Cocoa Touch。
    第三层是核心框架层,是系统核心功能的框架层。这一层包含了各种图形和媒体核心框架、Metal 等。
    第四层是 Darwin层,是操作系统的核心,属于操作系统的内核态。这一层包含了系统内核 XNU、驱动等。


    image.png

    XNU 怎么加载 App?


    image.png

    小结
    今天我跟你介绍了 iOS 系统的内核 XNU,以及 XNU 是如何加载 App 的。总体来说,XNU 加载就是为 Mach-O 创建一个新进程,建立虚拟内存空间,解析Mach-O文件,最后映射到内存空间。流程可以概括为:

    fork 新进程;

    为 Mach-O 分配内存;

    解析 Mach-O;

    读取 Mach-O 头信息;

    遍历 load command 信息,将 Mach-O 映射到内存;

    启动 dyld。

    相关文章

      网友评论

          本文标题:33 | iOS 系统内核 XNU:App 如何加载?

          本文链接:https://www.haomeiwen.com/subject/pkvzqktx.html