我們都在聊Android系統(tǒng)手機,大家都在用蘋果iPhone手機,很多人對 Windows Phone 8持觀望態(tài)度....。。我們總是在談?wù)撌謾C系統(tǒng),我們總是把“智能手機”當成口頭禪,然而當我們面對由Android、iOS、Windows Phone,以及BlackBerry OS、MeeGo、Symbian OS、webOS所組成的移動終端市場的時候,誰又能搞得清楚:到底什么叫操作系統(tǒng)?到底什么稱得上移動智能操作系統(tǒng)呢?
為了保證文章文字的可信度,筆者專門查閱了維基百科,結(jié)果如下:操作系統(tǒng)(Operating System,簡稱OS)是管理計算機硬件與軟件資源的計算機程序,它位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶通過操作系統(tǒng)的用戶界面,輸入命 令;操作系統(tǒng)則對命令進行解釋,驅(qū)動硬件設(shè)備,實現(xiàn)用戶要求。一個標準的PC操作系統(tǒng)應(yīng)該提供如下七項功能:
1.進程管理(Processing management)
2.內(nèi)存管理(Memory management)
3.文件系統(tǒng)(File system)
4.網(wǎng)絡(luò)通信(Networking)
5.安全機制(Security)
6.用戶界面(User interface)
7.驅(qū)動程序(Device drivers)
知道了操作系統(tǒng)的定義,知曉了操作系統(tǒng)的功能,但是操作系統(tǒng)是如何構(gòu)成的呢?一般來說,可以將操作系統(tǒng)理解為驅(qū)動程序、內(nèi)核、接口庫、外圍共四個部分。 其中內(nèi)核是操作系統(tǒng)最核心的基礎(chǔ)構(gòu)件,可以分為單內(nèi)核、微內(nèi)核、超微內(nèi)核、以及外核等,除了QNX和基于Mach的UNIX等個別系統(tǒng)外,幾乎全部采用單 內(nèi)核結(jié)構(gòu),例如大部分的Unix、Linux,以及Windows(微軟自稱Windows NT是基于改良的微內(nèi)核架構(gòu))。
操作系統(tǒng)簡略架構(gòu)(圖片來自Wikipedia)
如此看來,一個常規(guī)意義的操作系統(tǒng),是要包含四個構(gòu)件、并且能夠?qū)崿F(xiàn)上述七項功能的計算機程序集合體。如果以這樣的定義去判斷所謂的手機智能操 作系統(tǒng),是不是Android、webOS、MeeGo、Maemo、LiMo等等,都可以統(tǒng)稱為Linux內(nèi)核類操作系統(tǒng)呢?
說了半天,其實還是停留在常規(guī)意義上的PC操作系統(tǒng),如今所謂的智能手機、智能手機操作系統(tǒng),又該如何理解呢?移動操作系統(tǒng)(Mobile Operating System,簡稱Mobile OS),又稱為移動平臺(Mobile Platform),或手持式操作系統(tǒng)(Handheld Operating System),是指在移動設(shè)備上運行的操作系統(tǒng)。
其實對于普通消費者來說,移動操作系統(tǒng)相比PC操作系統(tǒng)來說,首先因為終端的體積差異,勢必會導(dǎo)致系統(tǒng)本身的縮水,表現(xiàn)為較為簡單的功能,以及 更加精簡的結(jié)構(gòu)。但是決定操作系統(tǒng)分類的常用標準——內(nèi)核,是不會變的。既然它是操作系統(tǒng)的一個組成部分,那么基于相同內(nèi)核的開發(fā)的平臺,是不是可以有個 統(tǒng)一叫法呢?
Linux操作系統(tǒng)架構(gòu)(圖片來自Wikipedia)
如果按照這個思路理解的話,那么Windows和Linux就是一個操作系統(tǒng)了,這顯然是片面的。換句話說,雖然內(nèi)核結(jié)構(gòu)往往對操作系統(tǒng)的外部 特性以及應(yīng)用領(lǐng)域有著一定程度的影響,但它并非唯一決定因素,并且隨著操作系統(tǒng)高層特性與內(nèi)核結(jié)構(gòu)之間的耦合有日趨縮小的趨勢來看,內(nèi)核作為操作系統(tǒng)最內(nèi) 核最基礎(chǔ)的構(gòu)件,其分類的作用也在逐漸弱化。
Android:所謂Linux內(nèi)核與Java虛擬機
以Android為例,我們來深入剖析一下這個目前全球移動市場用戶占有率最高的“移動智能系統(tǒng)”。Android是一個以Linux為基礎(chǔ)的 半開源操作系統(tǒng),一切源代碼都是公開免費的。然而實際上,Android操作系統(tǒng)的內(nèi)核只屬于Linux內(nèi)核的一個分支,只是具備典型的Linux周期和 功能而已。
Android操作系統(tǒng)中的應(yīng)用程序大部分都是由Java編寫的,但是Android卻是以轉(zhuǎn)換為Dalvik executables的文件在Dalvik虛擬機(支持已轉(zhuǎn)換為.dex即Dalvik Executable格式的Java應(yīng)用程序的運行)上運行的。由于Android中并不自帶Java虛擬機,因此無法直接運行Java程序。不過 Android平臺上提供了多個Java虛擬機供用戶下載使用,安裝了Java虛擬機的Android系統(tǒng)可以運行J2ME的程序。這里額外提一個比較特 別的阿里云,其完全基于云端的應(yīng)用架構(gòu)為了能夠兼容apk文件包,而自行搭建了虛擬機。
截止至2012年7月2日,不同的Android操作系統(tǒng)版本的用戶比例
(圖片來自Wikipedia)
從這一部分的闡述來看,即便是基于同一個內(nèi)核,也可以開發(fā)出不同的接口庫(如可編程接口API等),不同的外圍,進而開發(fā)出與之匹配的驅(qū)動程序。簡言之,諸多同樣基于Linux內(nèi)核的平臺,在某種意義上來說,可以稱呼它們?yōu)椴煌牟僮飨到y(tǒng)。
總而言之,桌面操作系統(tǒng)與移動操作系統(tǒng)是兩個有交集的概念,兩者有共同的特性,也有各自的標志性差異。但大體上來說,移動操作系統(tǒng)相比桌面級操作系統(tǒng)來說,還是要簡單一些。
如果把使用Linux內(nèi)核的移動操作系統(tǒng)歸為一類的話,包括Android、LiMo、Maemo、MeeGo、Moblin、webOS、以 及新生事物FireFox OS、阿里云等,都應(yīng)該歸為同一陣營。另一陣營就是非Linux內(nèi)核的移動操作系統(tǒng),比如BlackBerry OS、Brew MP、Palm OS、iOS、Symbian、Windows等等。
藍色區(qū)塊:應(yīng)用程序、管理與服務(wù)組件(圖片來自Wikipedia)
《《綠色區(qū)塊:數(shù)據(jù)庫組件
黃色區(qū)塊:操作系統(tǒng)的執(zhí)行時期組件
紅色區(qū)塊:系統(tǒng)核心與驅(qū)動組件
其實話說回來,作為普通用戶的我們其實根本沒必要搞清楚所謂的操作系統(tǒng),到底這個東西是系統(tǒng)還是二次開發(fā)的用戶界面,對于我們來說并不重要,好 用不貴才是王道。同時也請眾多的終端廠商高抬貴手,不要為了差異化而做差異,改了半天界面漂亮了、體驗卻下降了,這樣的二次開發(fā),還不如干脆用原生來得聰 明。