Symbian OS
维库,知识与思想的自由文库
|
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使用權並沒有轉移到明基。
[编辑] 設計
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等。 這也有一個龐大的使用者介面碼。即使使用它人製造的使用者介面,基本的類別和子結構(UIKON)的所有使用者介面除了某些相關服務(例如View Server提供手機間的使用者介面轉換)以外都會出現在Symbian作業系統。而這裡也有很多相關的繪圖碼,就像是視窗服務和字型與點陣圖服務。應用程式架構提供標準的應用程式種類、連結和檔案資料辨識。它也有可選擇的應用程式引擎給予智慧型手機的基本程式,像行事曆、電話簿等。通常典型的Symbian作業系統的應用程式是分散到各個DLL引擎和圖型化程式,程式就像是包裝紙把DLL引擎包裝在一起。Symbian也提供了一些DLL引擎使程式運用。 當然,有很多東西並沒有一起放入裝置內,像是SyncML,Java ME提供另一組應用程式介面給作業系統及多媒體應用。要注意的是這些都只是framework,程式開發者要能夠從第三方提供framework的插件支援(例如RealPlayer使用多媒體解碼器)。這提供了應用程式介面在不同型號的手機可以正常使用的優勢,而軟體開發人員得到更多彈性,但是手機製造商就需要很多的綜合成品來製造使用Symbian作業系統的手機。 Symbian作業系統的裝置製造商也提供名為TechView的使用者介面範例層。這與Psion 5系列的Personal Organiser感覺非常相似,所以它與任何行動電話的使用者介面不太相似,但它還是提供一個基本的方式去個人化使用者介面。這也是需要很多Symbian作業系統測試碼與範例碼的環境中執行。 [编辑] 歷史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病毒。通常它們都靠藍牙傳播。不過,所有安裝程式都會詢問使用者要不要安裝,而未獲信任的程式都會有顯著的提示。然而,一般的使用者其實不需要擔憂這些惡意程式的騷擾,因為已安裝的程式即使沒有獲得數位簽證,理論上程式也不會去執行有危險的程序,像經由付費方式傳輸資料,因為這是可以被追蹤的。程式開發人員可以經由此簽證網站使該程式獲得簽證。 下列是常見的惡意程式,但所有惡意程式都需要使用者去執行它(也就是不會不知不覺的中毒)。
[编辑] 開放性一個普遍的共同問題是Symbian OS是不是"開放"的。它並沒有開放到核心源代码(源代码从沒有公開)。然而,几乎所有源代码都提供給使用Symbian OS的手機製造商和其他合作夥伴。再者,很多應用程序接口(API)都有公開其技術文件,使任何人都可以開發Symbian OS的软件。這與其他傳統的嵌入式操作系統形成對比,因為後者除了Java程序以外並無法提供任何後繼市場的软件。 [编辑] 使用Symbian作業系統的裝置
[编辑] 開發在Symbian的架構上有多種不同的平台,他們提供不同的軟體開發套件(SDK)給程式開發人員,最主要的分別是UIQ和S60平台。個別的手機製造商,或是同家族系列,通常也在網路上提供可下載的SDK和軟體開發延伸套件。SDK內含說明文件、表頭檔案、資料庫和在Windows運作的模擬器(WINS),到了Symbian v8,SDK加入了該版本的GCC編譯器(跨平台編譯器),才能夠正常在裝置內使用。 由於Symbian v9使用新的ABI,所以需要一個新的編譯器。在SDK方面來說,UIQ提供簡化的framework使得單一的UIQ SDK提供所有使用UIQ3的裝置的開發基礎,使用UIQ3的裝置像Sony Ericsson P990和M600。 Symbian C++程式設計在commercial IDE之下完成。之前較常見的是Visual Studio,但是以現在的Symbian版本,比較偏愛於Symbian版的CodeWarrior。不過在2006年Nokia的Carbide.C++將會取代CodeWarrior。預期Carbide.C++會釋出不同版本:其一個免費版允許使用者在模擬器上去設計軟體原型。 還有為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應用程式。 [编辑] 註解[编辑] 來源[编辑] 外部連結
|



