2023年6月,蘋果公司將「iphone os」改名為「ios」,標誌著乙個軟體開發的新時代的到來。在學習ios開發之前,我們有必要了解一下ios的層次結構,這樣也可以讓自己對整個系統有清晰的認識,能夠對自己所從事的工作有乙個合理的定位。
ios是iphone和ipad等蘋果裝置執行本地應用程式所需的作業系統和技術基礎。既然是一種作業系統,它就應該具備普通作業系統的一些特性。作業系統(operating system,簡稱os)的定義是這樣的:它是管理和控制計算機硬體與軟體資源的電腦程式,是直接執行在「裸機」上的最基本的系統軟體,任何其他的軟體都必須在作業系統的支援下才能執行。作業系統在計算機體系結構中的位置如圖1所示。
圖1 作業系統在計算機體系結構中的位置
從圖1中,我們可以看到,作業系統是計算機硬體(裸機)和其他軟體的介面,在計算機中起著「承上啟下」的作用。在作業系統之上是一些語言處理程式和軟體包,它們通過作業系統提供特定的功能,並為最上層的應用程式提供api。一般開發人員所做的工作便是開發應用程式,按照使用者的需求實現特定的功能。
大致了解了作業系統的位置之後,我們來看看ios的層次結構。因為ios是為了滿足移動環境而設計的,所以它與普通的計算機作業系統又有一些區別。ios的層次結構如圖2所示。
圖2 ios的層次結構
在圖2中,我們可以看到,ios包含了四個主要的層次,它們是:core os、core services、media和cocoa touch。下面,我們對各個層次做一下簡單的介紹。
core os(又稱核心os)層是用freebsd和mach所改寫的darwin, 是開源、符合posix標準的乙個unix核心。這一層提供了整個ios的一些基礎功能,包括:硬體驅動、記憶體管理、程式管理、執行緒管理(posix)、檔案系統、網路(bsd socket),以及標準輸入輸出等。此外,core os層的驅動也提供了硬體和系統框架之間的介面。
core services層在core os的基礎上提供了更加豐富的功能,它包含了foundation.framework和core foundation.framework(也就是一些基礎的框架)。core services和core os一起,提供了蘋果移動裝置(如iphone和ipad等)的基礎介面,包括:用來訪問檔案的介面、底層資料型別的介面、bonjour服務介面、網路介面等。值得一提的是,這些介面大多都是用c語言編寫的。
cocoa touch層的框架提供了應用程式的基礎架構。這些基礎架構提供了集合、檔案管理、網路操作等的物件導向支援。cocoa touch中最核心的部分是uikit.framework(uikit框架),它為呈現應用程式介面上的各種元件提供了支援。除此之外,該框架還負責處理螢幕上的多點觸控事件、文字的輸出、和網頁的顯示、相機或檔案的訪問、加速感應的部分等。
任何新專案的起點,都是cocoa touch層,也就是uikit框架。最表層的框架可以支援開發所需要的絕對多數效果,只有在更高層的框架無法實現我們所需要的定製行為的時候,才應該使用底層框架。也就是說,當我們要開發ios程式的時候,首先要從上層入手,優先使用系統封裝好的庫,而當面對一些比較複雜的功能時,再往下層去尋找相關的框架來完成開發。
協議層次概述
為了降低網路設計的複雜性,大多數網路採用一堆互相疊加的層 layer level 每一層都建立在他的下層的基礎之上,目的都是為其上層提供服務,而實現的具體細節則對上層隱藏。其基本思想是,一段專門的軟體 或硬體 向使用者提供一種服務,而將內部的狀態和演算法的細節隱藏起來。一台機器中的第n層與另一台機器...
協議層次概述
為了降低網路設計的複雜性,大多數網路採用一堆互相疊加的層 layer level 每一層都建立在他的下層的基礎之上,目的都是為其上層提供服務,而實現的具體細節則對上層隱藏。其基本思想是,一段專門的軟體 或硬體 向使用者提供一種服務,而將內部的狀態和演算法的細節隱藏起來。一台機器中的第n層與另一台機器...
iOS層次架構
ios的系統架構分為四個層次 核心作業系統層 core os layer 核心服務層 core services layer 層 media layer 和可觸控層 cocoa touch layer 1.core os層 包含核心部分 檔案系統 網路基礎 安全特性 能量管理和一些裝置驅動,還有一些...