什么是操作系統(tǒng)?
現(xiàn)在世面上的操作系統(tǒng)個可以說是百花齊放,但是它們的基本功能都是類似的, 包括:
進程管理, 內(nèi)存管理,文件系統(tǒng),網(wǎng)絡通訊,安全機制,用戶界面,驅(qū)動程序等。
同時我們會發(fā)現(xiàn)它們的基本架構也都是類似的,包括應用層, API層, 內(nèi)核層。

先說應用層, 系統(tǒng)應用(System Application)是指系統(tǒng)自帶的關鍵進程, 比如Windows和Mac都會有自己的Shell進程, Windows是Explorer.exe, Mac是Find.com. 用戶應用(User Application)是指我們自己開發(fā)的應用程序, 比如QQ,Photoshop。系統(tǒng)應用和用戶應用本質(zhì)上沒什么區(qū)別,都是通過系統(tǒng)API實現(xiàn)的,但是系統(tǒng)應用因為是操作系統(tǒng)開發(fā)公司的自家程序, 很多時候可以調(diào)用未公開的API。
再說API層,API層內(nèi)部很多時候可以分更多的層, 比如Android會把這層分為Library和Application Framework, Mac和ios會把它分為分為Core Service和Media。API層盡管最底層都是C/C++, 但是上層不同平臺會用不同的語言實現(xiàn), 比如Android選擇用Java封裝Framework; Mac/ios選擇用Objective-C封裝Cocoa框架; Windows就更豐富了,有Windows C API,也有COM API,甚至還有WinRT API, 在這些C/C++ API上層,還有為不同語言(.net)封裝的新API。
最后說Kernel層,內(nèi)核既是程序在CPU處理器上運行的調(diào)度器,也是訪問外部設備的橋梁,同時又提供了安全服務。操作系統(tǒng)內(nèi)核類型, 包括微內(nèi)核,宏內(nèi)核,混合內(nèi)核。宏內(nèi)核(Monolithic, 也稱單內(nèi)核,巨內(nèi)核), 將所有系統(tǒng)功能都放在同一地址空間中,甚至將該地址空間映射到所有進程,Linux/Unix都是典型的宏內(nèi)核。 微內(nèi)核(Microkernel), 內(nèi)核只負責最關鍵的任務調(diào)度和內(nèi)存管理,其他功能全都交給外部用戶態(tài)的服務程序完成,該架構下內(nèi)核會很穩(wěn)定,但是效率太低, Mac OS X內(nèi)核XNU的核心Mach是一個微內(nèi)核。混合內(nèi)核(hybrid kernel)結合了2種內(nèi)核的優(yōu)點, Windows和Mac是典型的混合內(nèi)核。
Windows的基本架構可以參考我的這篇<<理解 Windows API 調(diào)用過程>>和<<理解WinRT >>。
我們再看當前市面上流行的操作系統(tǒng)的種類以及它們之間的關系,主要包括桌面端(PC),移動端(Mobile), 還有服務器端(Server),大概分布如下:
PC: Windows, Mac, ChromeBook
Mobile: Android, ios, WinPhone
Server: Linux, Unix
這些操作系統(tǒng)之間有何關系?
這些系統(tǒng)實際上都不是獨立存在的,很多系統(tǒng)是從另外一個系統(tǒng)"進化"而來,下圖展現(xiàn)了這種關系:

其中ChromeOS可能國內(nèi)大家用的不多, 它Google ChromeBook的OS系統(tǒng),北美學校比較流行,主要以Web為界面開發(fā)工具,C/C++為后臺開發(fā)工具。
上面我也可以看到系統(tǒng)的2個大分支, 一個是Unix/Linux, 另外一個視Windows分支,我在<<關于字符集,編碼格式,大小端的簡單總結>>最后也提到了2個分支關于UFT8和Unicode16的區(qū)別。
最后,上面我也可以看到幾家操作系統(tǒng)大公司的布局:
蘋果希望借助Mac OS和ios統(tǒng)一PC和Mobile市場, 這2個系統(tǒng)盡管運行在不同的硬件架構上(x86和ARM), 但是蘋果應該視用同一份代碼代碼開發(fā)的(內(nèi)部用宏做區(qū)分),應用層也用同一套API(Cocoa).
微軟希望借助Win10的UWP統(tǒng)一PC和Mobile市場,Win phone7本來是采用Win CE架構的, Win Phone8之后微軟改成了NT架構,這樣和PC就實現(xiàn)了統(tǒng)一,具體我在<<GDI VS Dxgi>>也有相關闡述。
Google以開放的姿態(tài),它的Android和ChromeOS分別有個應用市場(Google Play Store和Google Chrome Store),好像有合并的打算,同時Google內(nèi)部也在開發(fā)”Fuchsia“新操作系統(tǒng)。
蘋果和微軟的戰(zhàn)略很相似,Google相對有些不一樣,未來會誰勝誰負,我們拭目以待吧。
posted on 2016-11-27 22:25
Richard Wei 閱讀(1752)
評論(0) 編輯 收藏 引用 所屬分類:
行業(yè)動態(tài)