2011年8月9日 星期二

編譯蘋果(APPLE)的開放源碼作業系統(Darwin XNU)

蘋果從它的作業系統OS X版本10開始,就把作業系統開放原碼了,
(或者說,它就取用BSD作業系統的原碼,利用開放原碼的力量,來leverage它的作業系統)
但至於要如何去編譯這份作業系統原始碼,若依照蘋果原廠開發者網站(developer.apple.com/mac)
找到的資訊(Building Your First Kernel http://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/build/build.html )
應該不是很容易試出來,
所以後來找到一個比較自動化(懶人化)的方法:
1.在蘋果作業系統上先安裝macports http://www.macports.org
2.利用macports安裝darwinbuild http://darwinbuild.macosforge.org/
3.利用darwinbuild來下載,編譯指定的Mac OS X Kernel
其中會有一個比較不清楚的地方,就是通用的Mac OS X版本是像Lion, Leopard, Snow Lepard , 10.0.2~10.6.8之類的, 可是開放源碼的作業系統核心(Kernel)叫Darwin, 而要編譯的對象叫做 xnu
它的版本號又是另一個完全不同的編碼系統,幸好我在WIKI上找到了對照表!
例如Snow Leropard 10.6.6的作業系統是Build 10J567,名稱是Darwin 10.7
另外編譯環境需要事先裝XCODE,編譯的成功與否和XCODE的版本也有關係,
我在OSX 10.6.3上安裝原作業系統光碟附的XCODE,可以成功編譯Darwin 10.2, 10.3, 10.6
聽說在OSX 10.6.7上,也可以成功編譯10.6.6
但目前還沒有成功的編譯Darwin 10.8以及10.7過, 可能是某些darwinbuild參數的問題,尚不明.

沒有留言: