【深入解析MAX OSX & iOS操作系統(tǒng)】讀書筆記 —— OS X 和 iOS 的架構

OS X 架構概述

層次結構:

  • 用戶體驗層
    • Aqua、Dashboard、Spotlight和accessibility
    • iOS中包括SpringBoard
  • 應用框架層
    • Cocoa、Carbon、Java
    • iOS中 Cocoa Touch
  • 核心框架
    • 核心框架、OpenGL、QuickTime
  • Darwin
    • 內(nèi)核和UNIX shell環(huán)境

Darwin是完全開源的,提供了底層API,上面那些層閉源。

Darwin架構:

Darwin,很大程度上使用FreeBSD的代碼和工具,是Mac OS X的核心, 由FreeBSD 4.5和NeXTSTEP混合派生。

XNU,由蘋果電腦發(fā)展的操作系統(tǒng)內(nèi)核,被使用于Mac OS X中。它是Darwin操作系統(tǒng)的一部分,跟隨著Darwin一同作為自由及開放源代碼軟件被發(fā)布。XNU是X is Not Unix的縮寫。XNU實際上由兩種技術混合在一起:Mach和BSD,此外還添加一些其他的組件,主要是IOKit

柏克萊軟件套件(英語:Berkeley Software Distribution,縮寫為 BSD),也被稱為柏克萊Unix(Berkeley Unix),是一個操作系統(tǒng)的名稱。衍生自Unix(類Unix),1970年代由伯克利加州大學的學生比爾·喬伊(Bill Joy)開創(chuàng),也被用來代表其衍生出的各種套件。

Darwin 架構

用戶體驗層

用戶體驗層

  • Aqua
  • Quick Look
  • Dashboard
  • Spotlight
  • accessibility
  • SpringBoard

Aqua

Aqua是OS X GUI。

系統(tǒng)的第一個用戶態(tài)進程launchd負責啟動GUI,支持GUI工作的主進程是WindowServer。

Darwin —— UNIX 核心

Darwin 是完全成熟的UNIX實現(xiàn)。

Shell

默認使用shell是 /bin/bash

文件系統(tǒng)

OS X使用HFS+文件系統(tǒng)。

四個變種:

  • 大小寫敏感/不敏感
  • 可選的日志功能

UNIX的系統(tǒng)目錄

  • /bin
    • UNIX 的二進制文件,常用UNIX命令
  • /sbin
    • 系統(tǒng)程序,這些二進制程序用于系統(tǒng)管理,例如文件管理和網(wǎng)絡配置
  • /usr
    • User目錄,第三方軟件安裝目錄
    • 目錄中包含bin、sbin、lib
    • /usr/lib 用戶存放共享的目標文件
  • /etc
    • 其他文件
    • 包含大部分配置文件,例如密碼文件/etc/passwd
    • 這個目錄實際上是指向/private/etc的符號鏈接
  • /dev
    • BSD設備文件
  • /tmp
    • 臨時目錄,所有人都可寫的目錄
  • /var
    • 各種雜項文件。保存日志文件、郵件存儲等

OS X 特有目錄

  • /Applications
    • 系統(tǒng)所有應用程序的默認目錄
  • /Developer
    • 安裝開發(fā)者工具
  • /Library
    • 系統(tǒng)應用的數(shù)據(jù)、幫助和文檔
  • /Network
    • 用于鄰居節(jié)點發(fā)現(xiàn)和訪問的虛擬目錄
  • /System
    • 系統(tǒng)文件目錄,包含系統(tǒng)重要組件,錄入框架和內(nèi)核模塊
  • /Users
    • 所有用戶的主目錄
  • /Volumes
    • 可移動媒體和網(wǎng)絡文件系統(tǒng)的掛載點
  • /Cores
    • 保存核心轉儲文件

iOS 文件系統(tǒng)的區(qū)別

  • 文件系統(tǒng)是大小寫敏感的,文件系統(tǒng)是部分加密的
  • 只有一個/User目錄

bundle

一種標準化的層次結構,保存了可執(zhí)行代碼以及代碼所需要的資源。

bundle結構

系統(tǒng)調用

OS X導出了兩套獨特的調用接口:Mach調用和POSIX調用。

系統(tǒng)調用并不是直接調用的,而是通過libSystem.B.dylib中的淺層封裝進行的。

XNU 概述

內(nèi)核XNU是Darwin的核心,由幾個組件構成:

  • Mach微內(nèi)核
    • XNU 的核心
    • 進程和線程的抽象
    • 虛擬內(nèi)存管理
    • 任務調用
    • 進行間通信和消息傳遞機制
  • BSD層
    • Mach之上,XNU中不可分割的一部分,提供了更高層次的抽象
    • UNIX進程模型
    • POSIX線程模型及其相關的同步原語
    • UNIX用戶和組
    • 網(wǎng)絡協(xié)議棧
    • 文件系統(tǒng)訪問
    • 設備訪問
  • libKern
  • I/O Kit
    • 設備驅動框架

內(nèi)核是模塊化的,允許動態(tài)加載插件的形式進行內(nèi)核擴展。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容