標籤:

喬布斯曾經在發布第一代 iPhone 時說 iPhone 使用的是 OS X 系統(2007年1月發布會),請問 OS X 和 iOS 之間的聯繫到底是怎樣的?

看到大家說的都覺得偏離了我的目的了,重新解釋一下我的問題,,我的意思是說,在軟體深層次裡面,兩者之間有什麼聯繫,我知道os x 是根據UNIX開發而成,在ios上會不會有類似的情況存在?目前的os x學習了很多ios的優點,那麼在系統內核部分,ios是否也借鑒了 os x?(吐槽一下,大家把我當剛混科技論壇的小學生了咩?)


iOS 是從 OS X 縮減而來,然後把界面改寫成適合 touch screen 的形式。從某種意義上說,稱 iOS 為 OS X 也不為過。

首先,Apple 絕對沒有這個誇張的必要。要寫一套 OS,必然借鑑公司原有的技術資源(祇有 Borland 才會做把 Delphi 重寫這種事情)。對於 Apple 來說,不是擴充 iPod OS 就是精簡 OS X。最後選了後者。兩條路線還有過一番爭鬥,關於這些資料很多。

第二,二者相似度和共用的技術確實很多。內核不必說。Universal Mach-O 的可執行格式,.framework 和 .app 的打包形式。Cocoa 中的 Core Animation。Objective-C 的 runtime。字體的渲染技術(除去預設關閉的 sub-pixel)。等等。稱之為一個系統也不為過。


簡單把我們上課的課件列出來就明了。將OS X各個層分開的話大致可以這樣。

一對比就看到哪裡不一樣了吧,OS X和iOS就是最上層的cocoa和cocoa touch不一樣。cocoa touch是專門為觸摸設備做的UI層——UIKit。例如在OS X里,一個按鈕叫NSButton,iOS里就叫UIButton。還有Foundation。想知道更詳細的看看文檔吧:http://developer.apple.com/library/ios/#documentation/general/Conceptual/DevPedia-CocoaCore/Cocoa.html

除此之外,還有一些因為性能原因在iOS沒有的功能,例如,GC垃圾回收。想詳細了解一下mac os裡面是什麼回事的,可以看看下面的圖。補充一下mac os各層有什麼樣的framework


iOS是在OS X上改出來的。那時候iOS還沒有名字,就跟著爹叫了。


難道你不知道現在負責ios的高級副總裁scott forstall原來是負責mac os X的副總裁嗎,他開發了leopard


內核差不多,略有精簡,而用戶介面那一塊的代碼重寫了


iOS 是 OS X 的子集。未來很有可能融合成一個。


推薦閱讀:

為什麼 iPhone 6 的標籤欄高度是98px?
幕後 | 告別全國空氣質量指數,他們更「在意」空氣:專訪「在意空氣」
iOS 開發需要哪些硬體條件?
iOS 系統怎麼降級?
iOS開發——你真的會用SDWebImage?

TAG:macOS | iPhone | iOS |