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