漲姿勢:Android手機(jī)的系統(tǒng)為什么叫ROM
安卓手機(jī)系統(tǒng)為什么叫 ROM?可以說不僅僅是安卓系統(tǒng)叫做 ROM,目前所有的手機(jī)系統(tǒng),都可以叫做 ROM(包括但不局限于蘋果、塞班、黑莓)這是由于 ROM 是只讀內(nèi)存(Read-OnlyMemory)的簡稱。特點是只能讀而不能快速改寫。
因此所有刷寫進(jìn)不可改變或擦除的系統(tǒng)我們都可以將之成為 ROM。
相對于 ROM,其實稱之為固件更加合適。ROM 和固件就是一個寫入和被寫入的關(guān)系。
最經(jīng)典的例子就是電腦上的 BIOS,各種電視紅白游戲機(jī)的卡帶,還有早期電腦上的一些驅(qū)動。這些都是真正的 ROM,把程式代碼擦寫進(jìn)固化內(nèi)存之中。這種是真正名義上的 ROM,從硬件上決定了只讀性,同時通常也是一個軟件系統(tǒng)的底層和核心部分。
那為什么手機(jī)(安卓)系統(tǒng)也叫 ROM 呢?
這是因為手機(jī)系統(tǒng)必須保證其自身的完整性和穩(wěn)定性,在被用戶使用的時候不被用戶和惡意程序改寫其核心文件。
體現(xiàn)在安卓系統(tǒng)上就是 root 權(quán)限,默認(rèn)沒有 root 權(quán)限的話,是沒有辦法改寫系統(tǒng)文件的,而操作系統(tǒng)的這個特性和上面說起來的只讀內(nèi)存十分相似,只不過是從軟件層面上保持自身的不可改寫罷了,一旦獲取了 root 權(quán)限,也就是獲得了 ROM 的改寫權(quán)限。
那為什么安卓手機(jī)系統(tǒng)叫 ROM,而蘋果塞班卻沒有這個習(xí)慣呢?
有一點是可以確定的,就是 ROM 這個名詞不為安卓所獨(dú)斷。可參考各種游戲模擬器。
其實安卓系統(tǒng)的系統(tǒng)包和一般手機(jī)的系統(tǒng)包性質(zhì)差異不大,都符合 ROM 這一個名詞特性。叫法只是個歷史遺留和習(xí)慣問題。
個人推測是由于安卓系統(tǒng)的開源使得各式各樣修改后的第三方系統(tǒng)百花齊放,大大增加了手工 recovery 刷入系統(tǒng) zip 的機(jī)會,所以我們常常需要下載后綴為 zip 的刷機(jī)包,以實現(xiàn)嘗鮮和個性化定制。
而蘋果 iphone 的刷機(jī)有個特點就是大多數(shù)為官方原生系統(tǒng),在線更新,也無所謂 ROM 了。即使是手動刷機(jī),一般也被稱作為固件——其實固件(Firmware)一詞和 ROM 也是有著莫大的關(guān)聯(lián),因為固件本身就是寫進(jìn) ROM 的程式。
安卓上的 ROM 分為哪幾種呢?
在安卓上,刷機(jī)包被分為兩種,一種是原生官方的系統(tǒng)固件,也被稱為底包、原生 ROM,不包含個性化定制。一般是從官網(wǎng)下載或者從官方更新程序下載提取。
而通過各種大神在底包上進(jìn)行各式各樣的二次定制,則產(chǎn)生了各種第三方的系統(tǒng)固件,俗稱 ROM,包含各種個性化定制后的差異性功能。例子就多啦:國際著名安卓 ROM 團(tuán)隊 CM,小米引以為豪的 MIUI,極簡設(shè)計的魅族 Flyme,錘子手機(jī)的錘子 ROM 和國內(nèi)外各種大神半神定制的系統(tǒng)…就不列舉太多了。這些 ROM 都可以在 ROM 基地中下載到。
相關(guān)文章:
1. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法2. JSP數(shù)據(jù)交互實現(xiàn)過程解析3. 淺談python出錯時traceback的解讀4. 利用promise及參數(shù)解構(gòu)封裝ajax請求的方法5. Python importlib動態(tài)導(dǎo)入模塊實現(xiàn)代碼6. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解7. windows服務(wù)器使用IIS時thinkphp搜索中文無效問題8. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向9. 在Android中使用WebSocket實現(xiàn)消息通信的方法詳解10. Nginx+php配置文件及原理解析
