正確理解手機智慧作業系統

Web開發者發表於2012-12-11

 我們都在聊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:所謂Linux核心與Java虛擬機器

  以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)
綠色區塊:資料庫元件
黃色區塊:作業系統的執行時期元件
紅色區塊:系統核心與驅動元件

  其實話說回來,作為普通使用者的我們其實根本沒必要搞清楚所謂的作業系統,到底這個東西是系統還是二次開發的使用者介面,對於我們來說並不重要,好 用不貴才是王道。同時也請眾多的終端廠商高抬貴手,不要為了差異化而做差異,改了半天介面漂亮了、體驗卻下降了,這樣的二次開發,還不如干脆用原生來得聰明。

相關文章