1. 程式人生 > >深入解析Mac OSX & IOS 作業系統(一)

深入解析Mac OSX & IOS 作業系統(一)

Unix 的系統目錄

OSX 是一個符合UNIX標準的系統,因此也有那些標準的UNIX具有的目錄結構

/bin UNIX中的二進位制程式,這是常用UNIX命令所在的地方

/sbin 系統程式,這些二進位制程式用於系統管理,例如檔案系統管理和網路配置

/usr :User目錄著並不是說這個目錄是給使用者的,而更像是windows 中的Program File目錄,第三方軟體可以安裝在這裡

/usr :目錄中包含的bin,sbin 和lib . /usr/lib 用於存放共享的目標檔案類似windows 中存放ddl檔案的windows\systemm32 這個目錄還包含一個include/子目錄,所有標準的C標頭檔案都存放在這裡

/etc 這個目錄包含額大部分系統配置檔案,例如密碼檔案 在OSX中這個目錄實際上是指向private/etc 的符號連結

/dev  BSD裝置檔案,這些特殊的檔案表示了系統中村子的裝置

/tmp  臨時目錄,在OSX中這個目錄實際上是指 /private/tmp

/var 各種雜項檔案,這個目錄中儲存了日誌檔案,郵件儲存,列印佇列,和七大資料,在OSX中只想的是/private/var

bundle 標準目錄結構

Contents/

CodeResources/

info.plist包的主mainfest檔案

MacOS/包中的二進位制檔案內容

PkgInfo/包的8位元組識別符號

Resources/   .nib 檔案和.lproj檔案

Version.plist   版本資訊

CodeSignature/

CodeResrouces

iOS 會區分蘋果自己提供的預設應用程式(/放在Application目錄下)和AppStore購買的應用程式(放在/var/mobile/Application目錄下),通過AppStore購買的app安裝在一個表示128位的GUID目錄下,這個GUID可以按照位元組數分解為更易於管理的結構:4-2-2-6(例如A8CB4113-414E-4AF6-06DA-210490939163,其中每一個十六禁止的數碼錶示4個位)

Documents 應用程式的資料檔案,

Library/ 雜項app檔案,這個目錄包括Caches Cookies 和 Preferences,有時候還有WebKit(用於內奸了瀏覽器功能的app)

tmp/ 儲存臨時檔案的目錄

FrameWork格式

CodeResources/ 指向Code Signature/CodeResources plist檔案的符號連結

Headers/ 指向這個框架提供的 .h 檔案目錄的符號連結

Resources/指向這個框架所需的 .nib 檔案(用於GUI),   .lproj 檔案和其他檔案所在目錄的符號連結

Versions/ 在這個子目錄下實現版本控制

A/ 字母名稱的目錄表示這個框架版本

Current/ 指向這個框架首選的版本的符號連結

framework-name 指向這個框架首選版本的二進位制檔案符號連結

umbrella framework:使用蘋果的術語,封裝了其他框架的框架常稱為保護傘(umbrella)框架

相關推薦

深入解析Mac OSX & IOS 作業系統

Unix 的系統目錄 OSX 是一個符合UNIX標準的系統,因此也有那些標準的UNIX具有的目錄結構 /bin UNIX中的二進位制程式,這是常用UNIX命令所在的地方 /sbin 系統程式,這些二進

JVM——深入解析原理和執行機制類載入過程

       隔了好久終於把這篇文章補上了,最近在看《深入理解Java虛擬機器》,一本很不錯的書,必須值得一看。        由於本人對Java類的載入過程一直是一知半解,所以優先看了一下

JVM——深入解析原理和執行機制類載入器

      上次我們說了一下jvm中類載入的過程,大概有載入,連線(驗證,準備,解析),初始化這麼幾個步驟,當然要實現這些功能就需要有載入器,今天我們就來說說jvm中的類載入器。 一、分類

OpenCV iOS開發——安裝(轉)

osi ctu ren png object-c 下載 eww load 信息 OpenCV是一個開源跨平臺的的計算機視覺和機器學習庫,可以用來做圖片視頻的處理、圖形識別、機器學習等應用。本文將介紹OpenCV iOS開發中的Hello World起步。

深入理解JVM虛擬機:Java運行時數據區域

字面量 符號 地方 64位 因此 lower 優化 java堆大小 工作 概述 JVM是Java語言的精髓所在,因為它Java語言實現了跨平臺運行,以及自動內存管理機制等,本文將從概念上介紹JVM內存的各個區域,說明個區域的作用。 JVM運行時數據區模型 Java虛擬機在執

深入理解計算機系統配套實驗 data lab 函式詳解

/* 135. * bitAnd - x&y using only ~ and | 136. * Example: bitAnd(6, 5) = 4 137. * Legal ops: ~ | 138. * Max ops: 8 139. *

深入js:Array原始碼篇

一、push() 和pop() 1.push() push() 向陣列的末尾新增一個或更多元素,並返回新的長度。 push原始碼如下: // Appends the arguments to the end of the array and returns the ne

深入理解Java類載入機制

1 前言: 在上一篇文章一文讓你明白 Java 位元組碼中, 我們瞭解了java位元組碼的解析過程,那麼在接下來的內容中,我們來了解一下類的載入機制。 2 題外話 Java的核心是什麼?當然是JVM了,所以說了解並熟悉JVM對於我們理解Java語言非常重要,不管你是做Java還是Andr

深入理解Java多執行緒

關於java多執行緒的概念以及基本用法:java多執行緒基礎 1,停止執行緒 停止執行緒意味著線上程執行完之前停止正在做的操作,即立刻放棄當前的操作,這並不容易。停止執行緒可以用Thread.stop()方法,但是這個方法不安全,所以不建議使用,還有一個方法就是Thre

讀書筆記《深入理解Java虛擬機器》 JAVA記憶體區域

  .結構圖來自原書 執行緒私有區域 程式計數器 虛擬機器棧 本地方法棧 所有執行緒共享 方法區 堆   程式計數器(執行緒私有) 是一塊較小的記憶體空間,可以看做是當前執行緒所執行的位元組碼的行號

作業系統:簡單輪轉排程

昨天寫作業系統的實驗報告,開始思路很明確,實現起來就碰到麻煩了。花了很多時間去糾正連結串列建立問題,輪轉排程演算法邏輯問題等一系列細節問題。 花了四個多小時去完成程式碼,本來就不擅長程式設計,就只能多花時間了,但真正地做出來覺得再多時間也是值得的。 下面是實驗報告要求及其

深入理解JVM之前端編譯器

前兩天在leetcode做了演算法題,驚訝的發現用java實現的時間複雜度,竟然躋身於C/C++同列,甚至偶爾會超過後兩者,雖然知道JVM功不可沒,但還是很好奇在VM編譯過程中到底發生了什麼,翻出《深入理解java虛擬機器》一探究竟,算是有所收穫,記錄如下。 概述 jav

作業系統---Linux與Windows對比

轉自:https://blog.csdn.net/lou19991221/article/details/80113456 Linux 什麼是linux? Linux是一套免費使用和自由傳播的類Unix作業系統,是一個多使用者、多工、支援多執行緒和多CPU的作

VMware workstation批量建立虛擬機器和自動化安裝作業系統

一. 簡述 作為從事IT行業運維工作的Linuxer,大多情況下需要在測試環境中部署業務系統並進行測試,在沒有足夠的計算儲存網路條件下,使用虛擬機器進行虛擬叢集的建立和使用,是一種不錯的學習和實踐方式。 本篇部落格主要介紹如何使用VMware workstation進行虛擬

深入理解C指標學習筆記

第一章 認識指標 指標在C和C++中隨處可見,它給程式設計師帶來了極大的方便,指標為動態記憶體的分配提供了重要支援。使用指標我們可以方便的操控記憶體,提高程式的執行效率;同時利用指標變數我們可以實現各種資料結構,例如連結串列等;另一方面指標與陣列的表示法

uCOS-II學習筆記:實時作業系統

1.前後臺系統:前後臺系統的架構用一句話來形容的話,就是一個大的迴圈,加上中斷,就形成了一個整的體系。 假設來了中斷需要處理模組3,如果模組3的處理是最緊迫的,但是當前cpu 只執行到模組1, 這樣的話,必須還要承受模組2的執行時間延遲,才能輪到模組3的處理,當模組越多的

Jetty9架構解析-Jetty配置及部署

2.1. Jetty配置概述 對於Web伺服器來說,可配置性是一項非常重要的指標(從軟體設計層面,我們也可以稱之為架構要素),它在很大程度上也會影響一款伺服器的適用範圍。之所以這麼說,是因為真實的部署場景千變萬化,只有做到靈活可配,我們才可以對其進行深度定

深入學習前端MVC和MVVM

MVC是一種開發模式,就是一種模型—檢視—控制器(MVC)模式。 在php專案中,nodejs專案中,很容易實現MVC。比如一個nodeJS的MVC: 先說後臺的MVC 一、model層 模型層:模型中的邏輯嚴重依賴永續性。 這裡用的是mongoose

深入理解計算機系統學習筆記

程式的編譯過程 為了說明程式的編譯過程,我們用經典的hello world程式作為例子 #include <stdio.h> int main(int argc, char const *argv[]) { printf("hell

作業系統-------作業系統概述

      作業系統原理課的第一講 作業系統概述,在這一講裡頭,我們將學習以下這些內容 首先我們通過一個程式的執行過程 來看一下,作業系統做了什麼,然後我們介紹作業系統的定義和它的作用 作業系統是一個軟體,那麼相對於其它的軟體 它有哪些特徵呢?有哪些特點呢 另外我們介紹一些