• 沒有找到結果。

第二章、 背景說明

2.1 常見帄台概述

根據市場調查研究機構 Canalys 所公佈的資料顯示,2007 年智 慧型手機出貨中,Symbian 作業系統佔有 67%拔得頭籌,Windows CE 以 13%市佔率居次。本節中將介紹上述兩種手機作業系統以及 2007 年剛進入手機業即備受矚目 iPhone 作業系統[1]。

2.1.1 Windows CE 作業系統

Windows CE 是微軟視窗作業系統中最小的作業系統,是專門為 記憶體及處理器資源較少的硬體所設計的作業系統。它支援 Win32 子 集合的 API,具有輕量 (與 Windows XP 作業系統比較而言) 、支援 多執行緒 (Multithreaded) 的特性,並且可以選擇是否在系統中包 含圖形使用者介面元件,也因為其彈性的客製化能力,作業系統的大 小從幾百 KB 到 64MB 都可以,目前已經應用在 PDA、智慧型手機、車 用電腦、網路消費性電子產品等上[11]。

在系統特性上,它支援 32-bit 虛擬記憶體定址方式,並且在各 個應用程式間也有記憶體保護機制,可以避免不當的應用程式干擾其

他應用程式的執行。在虛擬記憶體配置上,它支援 heaps、stacks 以 及 memory-mapped files。與 Windows XP 相似,它也是先佔式多工 架構 (Preemptive multitasking) 以及多執行緒的作業系統。

在硬體支援部分,Windows CE 支援多種處理器,如 X86, ARM, SHx, MIPS。並且在作業系統中即設計了 OAL (OEM Adaptation Layer) , 使得手機製造業者能夠依照本身的硬體元件修改原始碼之後,可以快 速的將自己的硬體元件與作業系統整合,加速了硬體開發時程。

在軟體開發部分,雖然其核心與 Windows ME、Windows XP 不同,

但是提供與 Win32 API 高相容性的 API,使得 Windows 桌上型程式開 發人員能夠快速的移轉到 Windows CE 帄台上進行開發,大幅度縮減 技術人力導入時間。此外,它也支援 Windows 作業系統中常用的函式 庫,如 COM (如 ActiveX、DirectShow 等)、MFC、ATL、STL 以及.NET (在 Windows CE 中有一個專門的.NET 版本,稱為.NET Compact

Framework)[3][4]。

圖 2-1 為 Windows CE 訊息流程圖,其表示在 Windows CE 中開發 程式,程式與系統的關係[6]。系統收到該程式對應的訊息後,便將 訊息放在該程式對應的訊息佇列 (Message Queue)。程式便不斷的去 讀取訊息佇列中的訊息,並且透過自己的處理程序 (Procedure) 分 配對應的函式來處理相關的訊息,若是沒有配對的函式,則呼叫 Windows CE 預設的函式“DefWindowProc()”來處理。

圖 2-1、Windows CE 訊息流程圖

2.1.2 Symbian 作業系統

Symbian 作業系統是由 Symbian 公司所發展的作業系統,而 Symbian 公司則為 Nokia、Ericsson、Sony Ericsson、Panasonic 以 及 Samsung 公司所共有。Symbian 一開始就是為了行動裝置所設計,

因此對於記憶體資源有極高的效率,採用節省記憶體、清除堆疊等技 術。在處理器上則是採用 ARM 系列。

Symbian 是以 EPOC (從 Epoch 命名而來) 作業系統為基礎修改而 來,與許多桌上型作業系統相似,它支援先佔式多工以及多執行緒,

並且在不同的應用程式間提供記憶體保護的機制[8]。

有關 Symbian 作業系統更詳細的分析,請參照同實驗室學弟高偉 傑的論文[18]。

2.1.3 iPhone 作業系統

iPhone 作業系統是由蘋果公司 (Apple Inc.) 所發展,並且應 用在 iPhone 與 iPod touch 裝置中,最近一版預計與 iPhone 3G 於 2008 年 7 月 11 日釋出。除了支援多工架構,系統核心分成三層抽象 層[1]:

 Core Services 層: 系統底層核心及硬體溝通功能。

 Media 層: 2D/3D 繪圖,影音相關功能。

 Cocoa Touch: 圖形介面以及三度立體感應器功能。

iPhone 最讓人驚艷莫過於它的人機介面的設計,它採用直覺式 操作設計,並且使用多點觸碰功能(Multi-Touch),而所使用的處理 器則為 ARM 系列。

其開發環境採用 Xcode 開發環境,並且提供 iPhone SDK 專門為 iPhone 作業系統開發,支援的程式語言有 C/C++以及

Objective-C/C++。

相關文件