深入解析Mac OS X & iOS 操作系统 学习笔记(二)

Mac OS X 和 iOS 架构

  • 用户体验层

  • Aqua

  • Quick Look

  • Spotlight(iOS)

  • Accessibility选项

  • SpringBoard(iOS)

  • 应用框架层

    • Cocoa(iOS)
  • Carbon

  • Java

  • 核心框架

  • OpenGL

  • Quick Time

  • Darwin

  • 内核(kernel)

  • UNIX Shell 环境

  • UNIX的系统目录
    OS X 是一个符合UNIX标准的系统,因此也有那些标准UNIX具有的目录结构:

    • /bin:UNIX中的二进制程序。这是常用UNIX命令(例如:ls、rm、mv和df等)所在的地方。
  • /sbin:系统程序。这些二进制程序用于系统管理,例如文件系统观念里和网络配置等。

  • /usr:User目录。这并不是这个目录是给用户用的,而更像是Windows中的Program Files目录,第三方的软件安装在这里。

  • /usr:目录中 包含的bin、sbin和lib。/usr/lib用于存放共享的目标文件(类似于Windows中存放DLL文件的\windows\system32目录)。这个目录还包含一个include/子目录,所有标准的C头文件都存放在此。

  • /etc:其他文件。这个这个目录包含了大部分系统配置文件。在OS X中目录实际上指向/private/etc的符号链接。

  • /dev:BSD设备文件。这些特殊文件表示了系统中存在的设备(字符设备和块设备)

  • /tmp:临时目录。在OS X中目录实际上指向/private/etc的符号链接。

  • /var:各种杂项文件。这个目录实际上是指向/private/etc的符号链接。

  • OS X 特有的目录
    OS X在UNIX目录树种添加了自己特有的目录。在系统根目录下,这些目录包括:

  • /Applications:系统中所有应用程序的默认目录

  • /Library:系统英语的数据文件、帮助和文档等数据都放在这个目录下。

  • /Network:用于邻居节点发现和访问的虚拟目录。

  • /System:系统文件目录。其中只包含一个Library子目录。这个子目录几乎包含了系统中的所有重要组件,例如框架、内核模块和字体等。

  • /Users:所有用户的主目录所在的目录。每一个用户在这里都会创建一个自己的目录。

  • /Volumes:可移动媒体和网络文件系统的挂载点所在的目录。

  • /cores:如果启用了核心转储,那么这个目录保存核心转储文件。

  • iOS 文件系统的区别
    iOS 的文件系统和 OS X 非常类似,但是有以下区别:

  • 文件系统(HFSX)是大小写敏感的(而 OS X 的 HFS+能保留大小写但是不敏感)。此外,文件系统是部分加密的。

  • 内核已经以kernelcache的形式将内核扩展打包在内核中(kernelcache在/System/Library/Caches/com.apple.kernelaches中)。 和OS X的内核缓存不同(OS X的内核缓存为压缩镜像)iOS 的内核缓存是加密的Img3文件。

  • /Applications 可能是指向/var/stash/Applications 的符号链接。这是越狱系统的一个特性。而不是标准iOS的特性。

  • 没有/Users 目录,只有一个/User 目录,而这个目录实际上是指向/var/mobile 的符号链接。

  • 没有/Volumes目录(而且没有必要进行磁盘仲裁,因为在iOS 中午饭在指定系统中添加更多的存储设备)。

  • Bundle
    苹果对bundle的定义:一种标准化的层次结构,保存了可执行代码以及代码所需要的资源。
    bundle是应用程序框架、插件、小物件、内核扩展的根基。

OS X 应用程序的bundle结构:

  • Content/
    _CodeSignature/ 包含CodeResources,用来判断应用程序是否完好无损
    info.plist 配置文件
    MacOS/ 包含App Store 包中的二进制内容
    PkgInfo 包的8字节标识符
    Pluglns/
    Resources/ nib文件(用于GUI)和lproj文件(用于国际化)和其他资源文件
    version.plist 包版本信息

iOS App 的默认目录结构

  • Documents / 应用程序保存的数据文件(如游戏的最高分、文档和记录等)
  • Library/ 杂项app文件
  • tmp 保存临时文件的目录,随时可能被清空。

你可能感兴趣的:(深入解析Mac OS X & iOS 操作系统 学习笔记(二))