macOS、iOS、Darwin、類 unix、POSIX


macOS 和 iOS對比

  • 內核

    macOS 的內核是 intel,由PowerPC 改進爲 intel。

    iOS 內核和二進制文件編譯的目標架構,是基於ARM架構,而不是intel i386 和 x86_84。

    儘管iOS的目標處理器可能不同(A4、A5和A5X等),但都是採用ARM的設計。

    相比Intel,ARM的主要優勢在於電源管理,因此ARM的處理器設計對於移動操作系統(iOS 及Android)來說都非常重要。

  • 內核源碼-iOS

    iOS 內核源碼閉源。

    macOS 中的 Darwin 是開源的。

  • 內核編譯

    iOS內核的編譯關注的是嵌入式特性和一些新的API。有一些新的API最終會進入OS X,但是其他的不會。

  • GUI

    iOS的系統GUI是SpringBoard,這是大家熟知的觸屏應用加載器;

    macOS 中的GUI的Aqua,是鼠標驅動的,而且特別爲窗口系統所設計。

    由於SpringBoard如此流行,因此在Lion中以LaunchPad(啓動臺)的形式移植到了OS X中。

  • 內存管理

    iOS的內存管理要緊湊得多,因爲在移動設備上沒有幾乎無窮的交換空間可以使用。因此,開發者需要適應更嚴酷的內存限制以及編程模型的變化。

  • 系統限制

    iOS的系統的限制更嚴(或稱爲jailed),應用程序不允許訪問底層UNIX API(即Darwin),也沒有root訪問權限,只能訪問自己的目錄裏(沙盒)的數據。

    只有蘋果的應用纔能有訪問整個系統的權力。App Store的應用被嚴格受限,而且必須通過蘋果的審查。

    macOS 沒有上面的限制。


macOS & Darwin

OS X 是整個操作系統的一個集體名稱,這個操作系統由很多組件構成,Darwin 就是其中的一個組件。

Darwin 是操作系統的類 UNIX 核心,由內核(kernel)、XNU 和 運行時(runtime) 組成。

XNU:“X is Not UNIX”的縮寫,這個縮寫類似於 GNU 的遞歸式縮寫。

macOS 中的 Darwin 是開源的,而OS X中的其他部分,即蘋果公司提供的各種框架,不是開源的。

但iOS 中的 Darwin 是不開源的, 是在 ARM 上的移植。

macOS 的版本和 Darwin 的版本之間有一個簡單的關係,除了 OS X 10.0 對應 Darwin 1.3.x之外,其他的版本都服從以下簡單的公式:

If (OSX.version == 10.x.y){
    Darwin.version = (4+x).y
}

因此,例如 Mountain Lion 的 10.8.0 版本對應 Darwin 12.0。

Snow Leopard 的 10.6.8 版本對應 Darwin10.8。

儘管看上去有點混亂,但至少是一致的。


Unix & Linux & macOS

通俗的說,Unix 是爸爸,Linux 和 macOS 是兄弟。

unix是最早的出來的多任務,多用戶系統,它是收費的。


linux是一個 Linus Torvalds 爲了讓人們用到免費的類unix系統,高度參考Unix系統原理,做出了一個叫做 linux 的內核。

一般可以認爲,Linux是一套自由使用(一般可以免費使用)和自由傳播的類Unix操作系統。這個系統是由世界各地成千上萬的程序員設計和實現的。其目的是建立不受任何商品化軟件的版權制約、全世界都能自由使用的Unix兼容產品。

嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基於Linux內核,並且使用 GNU 工程各種工具和數據庫的操作系統。

Linux嚴格來說已經不是Unix了,因爲從內核到外層應用都是獨立開發代碼。

linux是兼容unix的,或者說是linus寫的一種開源的類unix系統。


macOS,是基於Unix內核的圖形化操作系統,由Unix的一個分支(BSD)發展過來的,內核叫darwin(達爾文)。


類Unix

類Unix系統(英文:Unix-like)指各種傳統的Unix系統(比如FreeBSD、OpenBSD、SUN公司的Solaris)以及各種與傳統Unix**類似**的系統(例如Minix、Linux、QNX等)。

它們雖然有的是自由軟件,有的是商業軟件,但都相當程度地繼承了原始UNIX的特性,有許多相似處,並且都在一定程度上遵守 POSIX規範


POSIX

POSIX表示 可移植操作系統接口(Portable Operating System Interface of UNIX,縮寫爲 POSIX )。

POSIX標準 定義了 操作系統 應該爲 應用程序 提供的 接口標準,是IEEE爲要在各種UNIX操作系統上運行的軟件 而定義的一系列API標準的總稱,其正式稱呼爲IEEE 1003,而國際標準名稱爲ISO/IEC 9945。

POSIX標準意在期望獲得源代碼級別軟件可移植性

換句話說,爲一個POSIX兼容的操作系統編寫的程序,應該可以在任何其它的POSIX操作系統(即使是來自另一個廠商)上編譯執行。

POSIX 並不侷限於 UNIX。許多其它的操作系統,例如 DEC OpenVMS 支持 POSIX 標準,尤其是 IEEE Std. 1003.1-1990(1995 年修訂)或 POSIX.1,POSIX.1 提供了源代碼級別的 C 語言應用編程接口(API)給操作系統的服務程序,例如讀寫文件。POSIX.1 已經被國際標準化組織(International Standards Organization,ISO)所接受,被命名爲 ISO/IEC 9945-1:1990 標準。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章