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