iOS面试-系统架构

简单来说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:更为严格的沙盒,采用“白名单”的方式,只允许那些已知是安全的操作,其他所有操作都不允许,替换当前沙盒机制中采用的“黑名单”方式

转载于:https://www.jianshu.com/p/89437cc788e7

猜你喜欢

转载自blog.csdn.net/weixin_34183910/article/details/91053616