Symbian 作業系統是Symbian公司為手機而設計的作業系統,它包含由Symbian Ltd所提供的相關的函式庫(libraries)、用戶界面(user interface)架構和共用工具(common tools)的參考實現(reference implementation),它的前身是Psion的EPOC,並且獨佔式的執行於ARM處理器。
目前Symbian的被以下公司所共有Ericsson、Panasonic、Simens AG、Nokia和Sony Ericsson。雖然明基(BenQ)取得了西門子的手機部門,但是需要Symbian監督委員會的同意,所以西門子的Symbian使用權並沒有轉移到明基。
目錄
1 設計
2 競爭對手
3 架構
4 歷史
5 安全與惡意程式
6 開放性
7 使用Symbian作業系統的裝置
8 開發
9 註解
10 來源
11 外部連結
設計
Symbian OS8.1a運行在諾基亞N70手機上的桌面抓圖
以Symbian操作系統為基礎的智能手機的用戶界面有許多種,包括開放平台像UIQ、諾基亞的S60、S80、S90系列和封閉式平台像NTT DoCoMo的FOMA。這樣的適應性使使用Symbian操作系統的智能手機形成多變的型態(例如摺疊式、直板式、鍵盤輸入或是觸摸筆輸入等)。
Symbian是以EPOC為基礎,而它的架構於許多桌上型作業系統相似,它包含先佔式多工、多執行緒和記憶體保護。
Symbian的最大優勢是在於它是為便攜式裝置而設計,而在有限的資源下,可以執行數月甚至數年。而這要歸功於節省記憶體、使用Symbian風格的編程理念和清除堆棧。將這些功能與其他技術搭配使用,會使記憶體使用量降低且記憶體洩漏量極少。類似技術也運用於節省磁碟(儘管在Symbian設備中,硬盤通常指閃存)和記憶卡使用空間。而且,Symbian的編程是使用事件驅動,當應用程式沒有處理事件時,CPU會被關閉。這是通過一種叫主動式對象的編成理念實現的。正確的使用這些技術將能夠延長電池使用時間。
這些技術讓Symbian的C++變得非常專業,並有著過陡的學習曲線。然而,許多Symbian的設備也可以利用OPL、Python、Visual Basic、Simkin以及Perl來搭配J2ME和自行開發的Java來使用。
競爭對手
Symbian作業系統與Windows Mobile、Palm OS、Linux互相競爭,目前Palm OS已逐漸失去市場佔有率,而Windows Mobile和Linux則來勢洶洶,一般專家認為Windows Mobile對於Symbian版圖的蠶食已不可避免。Symbian也與使用於低階手機的內嵌式作業系統互相競爭,而後者傾向由各家廠商自行開發。 Symbian與內嵌式作業系統比較,前者的優勢在於它的標準化–該裝置的每個程式執行期能夠互相呼叫動態連結共享資料庫(DLL),還有加入型架構(就是可以安裝軟體)。這些讓功能較複雜的手機能夠以較快的速度開發,有時這會抵消一些Symbian C++的困難度。
Symbian與其他開放式作業系統(像是Linux和Windows Mobile,而後者未開放原始碼)比較,它的優勢是比較有爭議的。手機製造商和網路營運商比較喜歡Symbian的定製靈活性(customisability)而較否定Windows CE。儘管這些定製靈活性(customisability)使得整合Symbian手機更加困難。Symbian是設計為小型裝置使用,使得它擁有更強大的能力、更有效率的記憶體管理和更靈活的身段。
架構
最低階的Symbian的基本組成成份包含核心(EKA1或EKA2),允許使用者的應用程式沿著使用者資料庫去要求核心內的東西。Symbian有個微核心架構,這定義了核心內部所必需的最少功能。微核心架構包含排程系統和記憶體管理,但不包含網路和檔案系統支援。這些用來提供給使用者端伺服器(user-side server)。基本層則包含檔案伺服器,它在裝置內提供類似DOS的顯示模式(每個磁碟機有個代號,反斜線當作目錄定義符號)。Symbian支援數種不同的檔案系統,包含FAT以及Symbian專有的檔案系統,而檔案系統一般是不會在手機上顯示出來。
在基本之上的是可供選擇的系統資料庫,而這提供了該裝置的市場定位,資料庫的內容包含像是字元轉換表、資料庫管理系統和檔案資源管理。
此外,在此有一個很龐大的網路及通訊子系統,這含有三個主要的服務,分別是ETEL(EPOC telephony)、ESOCK(EPOC協定)及C32(序列通訊回應)。每個服務都有模組化方案。例如ESOCK允許不同的『.PRT’通訊協定模組,實現了不同方式的網路通訊協定方案,像是藍芽、紅外線及USB等。
這也有一個龐大的使用者介面碼。即使使用他人製造的使用者介面,除了某些相關服務(例如View Server提供手機間的使用者介面轉換)以外,基本的類別和子結構(UIKON)的所有使用者介面都會出現在Symbian作業系統。而這裡也有很多相關的繪圖碼,就像是視窗服務和字型與點陣圖服務。應用程式架構提供標準的應用程式種類、連結和檔案資料辨識。它也有可選擇的應用程式引擎給予智慧型手機的基本程式,像行事曆、電話簿等。通常典型的Symbian作業系統的應用程式是分散到各個DLL引擎和圖型化程式,程式就像是包裝紙把DLL引擎包裝在一起。Symbian也提供了一些DLL引擎使程式運用。
當然,有很多東西並沒有一起放入裝置內,像是SyncML,Java ME提供另一組應用程式介面給作業系統及多媒體應用。要注意的是這些都只是framework,程式開發者要能夠獲得從協力廠商提供framework的插件支援(例如RealPlayer使用多媒體解碼器)。這提供了應用程式介面在不同型號的手機可以正常使用的優勢,而軟體開發人員得到更多彈性,但是手機製造商就需要很多的綜合成品來製造使用Symbian作業系統的手機。
Symbian作業系統的裝置製造商也提供名為TechView的使用者介面範例層。這與Psion 5系列的Personal Organiser感覺非常相似,所以它與任何行動電話的使用者介面不太相似,但它還是提供一個基本的方式去個人化使用者介面。這也是需要很多 Symbian作業系統測試碼與範例碼的環境中執行。
歷史
1980年,David Potter成立Psion公司。
EPOC16:在1991到1998之間Psion發表幾款使用EPOC16作業系統的3系列裝置,亦稱為SIBO。
EPOC OS 發佈號1~3:5系列的裝置發表於1997,使用EPOC32作業系統。
EPOC 發佈號4:Oregon Osaris和Geofox 1發表使用ER4。
1998年,在Ericsson、Nokia、Motorola和Psion的共同合作下成立Symbian公司,目的是整合PDA和手機。
EPOC 發佈號5又稱Symbian OS v5:5mx系列、7系列、Revo、netBook、netPad、Ericsson MC218和Ericsson R380發佈於1999年,使用ER5系統。
ER5u又稱Symbian OS v5.1:u=unicode。Ericsson R380發表於2000年是第一支使用ER5u系統的手機。這支並不是開放式系統,即無法安裝應用程式。
Symbian OS v6.0與v6.1:有時亦稱ER6。Nokia 9210是第一支開放型手機,使用v6.0。
Symbian OS v7.0與v7.0s。在2003年出現第一批搭載該系統的手機。
2004年,Psion出售它在Symbian的所有股份。而在同年,第一隻名叫Cabir的蠕蟲病毒被開發,它藉由藍牙傳播至附近的Symbian手機。
Symbian OS v8.0:第一批搭載該系統的手機於2004年問世,提供二種核心選擇(EKA1或EKA2)。不過,一直要到SymbianOS v8.1b才出現搭載EKA2核心的手機。這二個核心外表看來相似,但內部差異極大。EKA1是製造商提供裝置對舊程式的相容度而設計的,而EKA2提供像是更強的即時處理功能。
Symbian OS v8.1:基本上它是優化過的v8.0,並提供8.1a和8.1b兩個版本,個自代表搭載EKA1與EKA2核心。搭載EKA2的版本8.1b擁有單晶片手機支援,但不包含額外的安全層,因此受到重視即時處理的日本手機製造商的歡迎。
Symbian OS v9.0:這版本並沒有正式發表出來,它在2004年被停止開發。
Symbian OS v9.1:2005年初發表最新版本的作業系統。此版本改善了應用程式及其內容的保護。使用新型ARM處理器,這表示軟體開發人員必須要改變安全性設定碼才能正確使用。Nokia N91很有可能是第一個發表搭載該作業系統的手機,Sony Ericsson P990則是緊接在後發表。
Symbian作業系統普遍的保持應用程式的相容性。原則上可分為三階段,分別是ER1~ER5,接著是6.0~8.1b,最後是9.0以後。雖然9.0的工具和安全功能產生很大的改變,不過ARMv5處理器並未取消ARMv4的向下相容支援。
此外,有些Symbian的開發人員聲明說從8.x到9.x會產生比Symbian所聲明的更多複雜的程序。
安全與惡意程式
Symbian易受變種病毒的威脅,像是最為人所知的Cabir病毒。通常它們都靠藍牙傳播。不過,所有安裝程式都會詢問使用者要不要安裝,而未獲信任的程式都會有顯著的提示。然而,一般的使用者其實不需要擔憂這些惡意程式的騷擾,因為已安裝的程式即使沒有獲得數位簽證,理論上程式也不會去執行有危險的程序,像經由付費方式傳輸資料,因為這是可以被追蹤的。程式開發人員可以經由此簽證網站使該程式獲得簽證。
下列是常見的惡意程式,但所有惡意程式都需要使用者去執行它(也就是不會不知不覺的中毒)。
Drever.A 是SIS格式的惡意程式,安裝之後會嘗試去停止Simworks和卡巴斯基的Symbian防毒軟體。
Locknut.B 是假裝為作業系統補丁的SIS格式惡意程式。安裝以後將丟去一個位元使得有問題的系統服務部份瓦解,這使得阻止開啟任何軟體。
Mabir.A 是多了MMS功能的Cabir。這兩支病毒都是同一個作者寫出來,也有很多相似的原始碼。當病毒發作時,它會藉由藍牙尋找手機,一發現其他手機就開始複製。
Frontal.A 是修改一個檔案而使手機無法重新開機的SIS病毒。當使用者試圖重新開機,將在重新開機時死機,且無法解毒。只有按下格式化手機的快捷鍵才能解決,不過所有資料將會消失。不過,該病毒並無法自己散播。最有可能的傳播途徑是使用者藉由P2P取得該檔案。
開放性
一個普遍的共同問題是Symbian OS是不是”開放”的。它並沒有開放到核心源代碼(源代碼從沒有公開)。然而,幾乎所有源代碼都提供給使用Symbian OS的手機製造商和其他合作夥伴。再者,很多應用程序接口(API)都有公開其技術文件,使任何人都可以開發 Symbian OS的軟件。這與其他傳統的嵌入式操作系統形成對比,因為後者除了Java程序以外並無法提供任何後繼市場的軟件。
使用Symbian作業系統的裝置
Ericsson R380(2000年)是第一款在市場銷售的Symbian智能手機。然而將這款手機稱為智能手機的說法是可能有疑問的,因為它無法安裝軟體的特性顯示說它是完全封閉的裝置。
2001年的Nokia 9210 Communicator智能手機(32位66MHz ARM9的RISC CPU),2004年的9300 Communicator,2004年的9500 Communicator則使用80系列界面。
UIQ界面:最常使用於PDA像是2002年的Sony Ericsson P800、2003年P900、2004年P910、P990、W950、2007年P1i,Motorola A920、A925、A1000,DoCoMo M1000,BenQ P30、P31,和Nokia 6708都使用此界面。
2002年的Nokia 60系列(S60)
2004年Nokia 7710使用90系列界面。
Fujitsi、Mitsubishi、Sony Ericsson和Sharp這些使用於日本的NTT DoCoMo手機共同開發名為FOMA的平台。
開發
在Symbian的架構上有多種不同的平台,他們提供不同的軟體開發套件(SDK)給程式開發人員,最主要的分別是UIQ和S60平台。個別的手機製造商,或是同家族系列,通常也在網路上提供可下載的SDK和軟體開發延伸套件(Symbian Developer Network)。SDK內含說明文件、表頭檔案、資料庫和在Windows運作的模擬器(WINS),到了Symbian v8,SDK加入了該版本的GCC編譯器(跨平台編譯器),才能夠正常在裝置內使用。
由於Symbian v9使用新的ABI,所以需要一個新的編譯器。在SDK方面來說,UIQ提供簡化的framework使得單一的UIQ SDK提供所有使用UIQ3的裝置的開發基礎,使用UIQ3的裝置像Sony Ericsson P990、M600和P1i。
Symbian C++程式設計在市售的整合式開發環境(IDE)之下完成。之前較常見的是Visual Studio,但是以現在的Symbian版本,比較偏愛於Symbian版的CodeWarrior。不過在2006年Nokia的Carbide.c++將會取代CodeWarrior。預期Carbide.c++會釋出不同版本:其一個免費版(Carbide.c++ Express)允許使用者在模擬器上去設計軟體原型。
還有為Symbian設計的Borland IDE。Symbian作業系統也可藉由社群的技術開發而在Linux和Mac OS X的環境下開發,有些部份Symbian允許公開key tool原始碼。有一個插件允許在Apple的Xcode IDE for Mac OS X的環境下開發Symbian應用程式。
開發完成後,Symbian的應用程式需要找一個管道傳輸到消費者的行動電話。它們通常包裝成SIS檔案,透過電腦連線、藍牙或是記憶卡。一個替代方案是去找手機製造商來合作使手機內建該程式。但是在Symbian OS 9的SIS檔案會稍稍不易推廣,原因是每個程式都至少要擁有Symbian的簽署才能安裝在該作業系統的手機。
Java ME for Symbian的應用程式是使用正式的技術開發工具像是J2ME無線套件。它們包裝成JAR或JAD檔案。其他像是名為SuperWaba的工具是提供建立Symbian OS 7.0或7.0s的Java應用程式。
隨機文章
- php與mysql套件問題,影響wordpress 運作 (2010-03-01)
- facebook never chash (2011-04-01)
- XenServer 7 兩個大問題 (2016-08-13)
- 卡哇伊的小吳 (2007-11-21)
- 中華棒球隊拿到奧運門票了 (2008-03-16)