美文网首页app相关
iOS面试-系统架构

iOS面试-系统架构

作者: Gaizka | 来源:发表于2019-06-03 21:11 被阅读27次

    简单来说ios系统分为4层:

    1. UI层: 主要springboard / spotlight狗层
    2. 应用框架层: 包括cocoa touch 构成
    3. 核心框架层 : 包括open gl 、open es 、多媒体组件
    4. drawin层: 操作系统核心层 ,有xnu内核和xnu shell 构成

    我们重点是drawin层:核心的是xnu内核,它主要包括以下核心内容:

    1. bsd 用户态,
    2. mach 内核态
    3. libkern c++库
    4. iokit库: 外部设备驱动

    bsd : 位于mach内核台的外层,用户态;

    1. 建立pthread 线程模版,后续的线程都是基于他的;
    2. 网络协议栈(BSD Socket API),上层的CFSocket都是基于bsd 的api标准进行开发;
    3. 文件系统访问,上层的处理文件操作都是根据此机制进行的;
    

    mach: 位于内核核心部分

    1. 进程和线程的抽象层,后续的进程、线程操作都是基于它进行;
    2. 任务调度
    3. 虚拟内存管理
    4. 负责进程和线程之间的通讯
    

    iOS 的安全机制

    1. 代码签名:使用SSL验证身份,通过发布者的私钥对公钥进行签名,来验证应用程序的来源以及在传输过程中是否被篡改
    2. 隔离机制(沙盒化):不受信任的应用程序必须在一个独立的隔间中运行,隔间实际上就是一个隔离的环境,在这个环境所有的操作都会受到限制,采用“黑名单”风格方法来阻止已知的危险操作,只有在列表具有足够的限制性时才有效果
    3. Entitlement:更为严格的沙盒,采用“白名单”的方式,只允许那些已知是安全的操作,其他所有操作都不允许,替换当前沙盒机制中采用的“黑名单”方式

    相关文章

      网友评论

        本文标题:iOS面试-系统架构

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