深入解析Mac OS X & iOS 操作系統(tǒng) 學習筆記(二)

Mac OS X 和 iOS 架構

  • 用戶體驗層

  • Aqua

  • Quick Look

  • Spotlight(iOS)

  • Accessibility選項

  • SpringBoard(iOS)

  • 應用框架層

    • Cocoa(iOS)
  • Carbon

  • Java

  • 核心框架

  • OpenGL

  • Quick Time

  • Darwin

  • 內核(kernel)

  • UNIX Shell 環(huán)境

  • UNIX的系統(tǒng)目錄
    OS X 是一個符合UNIX標準的系統(tǒng),因此也有那些標準UNIX具有的目錄結構:

    • /bin:UNIX中的二進制程序。這是常用UNIX命令(例如:ls、rm、mv和df等)所在的地方。
  • /sbin:系統(tǒng)程序。這些二進制程序用于系統(tǒng)管理,例如文件系統(tǒng)觀念里和網(wǎng)絡配置等。

  • /usr:User目錄。這并不是這個目錄是給用戶用的,而更像是Windows中的Program Files目錄,第三方的軟件安裝在這里。

  • /usr:目錄中 包含的bin、sbin和lib。/usr/lib用于存放共享的目標文件(類似于Windows中存放DLL文件的\windows\system32目錄)。這個目錄還包含一個include/子目錄,所有標準的C頭文件都存放在此。

  • /etc:其他文件。這個這個目錄包含了大部分系統(tǒng)配置文件。在OS X中目錄實際上指向/private/etc的符號鏈接。

  • /dev:BSD設備文件。這些特殊文件表示了系統(tǒng)中存在的設備(字符設備和塊設備)

  • /tmp:臨時目錄。在OS X中目錄實際上指向/private/etc的符號鏈接。

  • /var:各種雜項文件。這個目錄實際上是指向/private/etc的符號鏈接。

  • OS X 特有的目錄
    OS X在UNIX目錄樹種添加了自己特有的目錄。在系統(tǒng)根目錄下,這些目錄包括:

  • /Applications:系統(tǒng)中所有應用程序的默認目錄

  • /Library:系統(tǒng)英語的數(shù)據(jù)文件、幫助和文檔等數(shù)據(jù)都放在這個目錄下。

  • /Network:用于鄰居節(jié)點發(fā)現(xiàn)和訪問的虛擬目錄。

  • /System:系統(tǒng)文件目錄。其中只包含一個Library子目錄。這個子目錄幾乎包含了系統(tǒng)中的所有重要組件,例如框架、內核模塊和字體等。

  • /Users:所有用戶的主目錄所在的目錄。每一個用戶在這里都會創(chuàng)建一個自己的目錄。

  • /Volumes:可移動媒體和網(wǎng)絡文件系統(tǒng)的掛載點所在的目錄。

  • /cores:如果啟用了核心轉儲,那么這個目錄保存核心轉儲文件。

  • iOS 文件系統(tǒng)的區(qū)別
    iOS 的文件系統(tǒng)和 OS X 非常類似,但是有以下區(qū)別:

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

  • 內核已經(jīng)以kernelcache的形式將內核擴展打包在內核中(kernelcache在/System/Library/Caches/com.apple.kernelaches中)。 和OS X的內核緩存不同(OS X的內核緩存為壓縮鏡像)iOS 的內核緩存是加密的Img3文件。

  • /Applications 可能是指向/var/stash/Applications 的符號鏈接。這是越獄系統(tǒng)的一個特性。而不是標準iOS的特性。

  • 沒有/Users 目錄,只有一個/User 目錄,而這個目錄實際上是指向/var/mobile 的符號鏈接。

  • 沒有/Volumes目錄(而且沒有必要進行磁盤仲裁,因為在iOS 中午飯在指定系統(tǒng)中添加更多的存儲設備)。

  • Bundle
    蘋果對bundle的定義:一種標準化的層次結構,保存了可執(zhí)行代碼以及代碼所需要的資源。
    bundle是應用程序框架、插件、小物件、內核擴展的根基。

OS X 應用程序的bundle結構:

  • Content/
    _CodeSignature/ 包含CodeResources,用來判斷應用程序是否完好無損
    info.plist 配置文件
    MacOS/ 包含App Store 包中的二進制內容
    PkgInfo 包的8字節(jié)標識符
    Pluglns/
    Resources/ nib文件(用于GUI)和lproj文件(用于國際化)和其他資源文件
    version.plist 包版本信息

iOS App 的默認目錄結構

  • Documents / 應用程序保存的數(shù)據(jù)文件(如游戲的最高分、文檔和記錄等)
  • Library/ 雜項app文件
  • tmp 保存臨時文件的目錄,隨時可能被清空。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容