Symbian

起源

Symbian由Symbian公司設計，被諾基亞收購之後，將其移轉到Symbian基金會，以開放原始碼的形式釋出。它的前身是Psion的EPOC，並且獨佔式的執行於ARM處理器。包含由Symbian公司所提供的相關的函式庫（libraries）、使用者介面（user interface）架構和共用工具（common tools）的參考實現（reference implementation）。
諾基亞的智慧型手機幾乎全部使用Symbian系統，同時也為其他一些品牌所使用，但隨著2011年諾基亞宣布放棄此系統，開放Symbian系統原始碼，並停止更新，現今Symbian系統的市場占有率已經極低。
於英國倫敦時間2008年6月24日，諾基亞宣布，該公司將收購Symbian公司目前尚不屬於諾基亞的52%股份，並將會把Symbian平台完全依據Eclipse開放原始碼授權條款釋出。諾基亞也宣布將成立「Symbian基金會」，讓各家手機廠商和軟體供應商能夠加入這個聯盟。2008年12月2日，諾基亞宣布完成對Symbian的收購。2009年2月1日，Symbian職員正式成為諾基亞員工，但諾基亞的Symbian作業系統一直被視為過時而無法與勁敵媲美，在智慧型手機市場，諾基亞更飽受蘋果iPhone和Android手機威脅，Symbian市占率持續下滑。2011年2月，諾基亞執行長宣布與微軟合作，並將會推出使用Windows Phone 7作業系統的智慧型手機。2013年1月，諾基亞宣布，於2012年推出的Nokia 808 PureView，是諾基亞公司最後一款使用Symbian系統的手機，Symbian正式走入歷史。
2014年1月1日起，諾基亞不再提供Symbian與MeeGo兩個作業系統的系統及軟體更新。雖然這兩個作業系統的產品仍能持續下載應用程式，開發者仍能透過軟體市集營收，但無法繼續更新或發布新的應用程式。

設計

以Symbian作業系統為基礎的智慧型手機的使用者介面有許多種，包括開放平台像UIQ、諾基亞的S60、S80、S90系列和封閉式平台像NTT DoCoMo的MOAP。這樣的適應性使使用Symbian作業系統的智慧型手機形成多變的型態（例如折疊式、直板式、鍵盤輸入或是輕觸筆輸入等）。
Symbian是以EPOC為基礎，而它的架構於許多桌上型作業系統相似，它包含先佔式多工、多執行緒和記憶體保護。
Symbian的最大優勢是在於它是為可攜式裝置而設計，而在有限的資源下，可以執行數月甚至數年。而這要歸功於節省記憶體、使用Symbian風格的編程理念和清除堆疊。將這些功能與其他技術搭配使用，會使記憶體使用量降低且記憶體泄漏量極少。類似技術也運用於節省磁碟（儘管在Symbian裝置中，硬碟通常指快閃記憶體）和記憶卡使用空間。而且，Symbian的編程是使用事件驅動，當應用程式沒有處理事件時，CPU會被關閉。這是通過一種叫主動式物件的編程理念實現的。正確的使用這些技術將能夠延長電池使用時間。
這些技術讓Symbian的C++變得非常專業，並有著過陡的學習曲線。然而，許多Symbian的裝置也可以利用OPL、Python、Visual Basic、Simkin以及Perl來搭配J2ME和自行開發的Java來使用。

競爭對手

Symbian作業系統曾與Windows Mobile、Palm OS、WebOS、Android、iOS等互相競爭，目前Windows Mobile、Palm OS、webOS已失去市場佔有率，而iOS和Android則占據了絕大多數的市場份額。Symbian也與於低階手機使用的內嵌式作業系統互相競爭，而後者傾向由各家廠商自行開發。Symbian與內嵌式作業系統比較，前者的優勢在於它的標準化——該裝置的每個程式執行期能夠互相呼叫動態共用庫（Shared Libraries），還有加入型架構（就是可以安裝軟體）。這些讓功能較複雜的手機能夠以較快的速度開發，有時這會抵消一些Symbian C++的困難度。
Symbian與開放式作業系統Linux，和不開放的Windows Mobile等比較，它的優勢是比較有爭議的。手機製造商和網路營運商比較喜歡Symbian的客製化靈活性而較否定Windows CE。儘管這些客製化靈活性使得整合Symbian手機更加困難。Symbian系統對硬體架構的局限性和繁瑣的應用簽章授權也使得在與新生代的作業系統（如Android等）的競爭中力不從心。
由於對社群網路和Web 2.0內容支援欠佳，Symbian的市場份額日益萎縮。其市場占有量從2006年三季度的72.8%逐年下降至2010年三季度的37.6%。自2009年底開始，包括摩托羅拉、三星電子、LG、索尼愛立信等各大廠商紛紛宣布終止研發Symbian平台，轉而投入Android領域。2011年初，諾基亞宣布與微軟成立戰略聯盟，發布基於Windows Phone的智慧型手機，從而放棄經營多年的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、諾基亞、Motorola和Psion的共同合作下成立Symbian公司，目的是整合PDA和手機。
EPOC發布號5又稱Symbian v5：5mx系列、7系列、Revo、netBook、netPad、Ericsson MC218和Ericsson R380發布於1999年，使用ER5系統。
ER5u又稱Symbian v5.1：u=unicode。Ericsson R380發表於2000年是第一支使用ER5u系統的手機。這支並不是開放式系統，即無法安裝應用程式。
Symbian v6.0與v6.1：有時亦稱ER6。Nokia 9210是第一支開放型手機，使用v6.0，於2001年6月出售。
Symbian v7.0與v7.0s。在2003年出現第一批搭載該系統的手機。使用的手機有：UIQ（新力愛立信P800,P900,P910，摩托羅拉A925,A1000），S80（諾基亞9300，9500），S90（7710），S60（諾基亞3230，6260，6600，6670，7610）。
2004年，Psion出售它在Symbian的所有股份。而在同年，第一隻名叫Cabir的蠕蟲病毒被開發，它藉由藍牙傳播至附近的Symbian手機。
Symbian v8.0：第一批搭載該系統的手機於2004年問世，提供二種核心選擇（EKA1或EKA2）。不過，一直要到SymbianOS v8.1b才出現搭載EKA2核心的手機。這二個核心外表看來相似，但內部差異極大。EKA1是製造商提供裝置對舊程式的相容度而設計的，而EKA2提供像是更強的即時處理功能。
Symbian v8.1：基本上它是最佳化過的v8.0，並提供8.1a和8.1b兩個版本，分別搭載EKA1與EKA2核心。搭載EKA2的版本8.1b擁有單晶片手機支援，但不包含額外的安全層，因此受到重視即時處理的日本手機製造商的歡迎。
Symbian v9.0：這版本並沒有正式發表出來，它在2004年被停止開發。
Symbian 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發展階段，出現了三個分支：分別是Crystal、Pearl和Quarz。前兩個主要針對通訊裝置市場，也是出現在手機上最多的，是Symbian智慧型手機作業系統的主力軍。第一款基於Symbian 系統的手機是2000年上市的愛立信手機。而真正較為成熟的同時引起人們注意的則是2001年上市的諾基亞9210，它採用了Crystal分支的系統。而2002年推出的諾基亞7650與3650則是Symbian Pearl分系的機型，其中7650是第一款基於2.5G網的智慧型手機產品，他們都屬於Symbian的6.0版本。索尼愛立信推出的一款機型也使用了Symbian的Pearl分支，版本已經發展到7.0，是專為3G網路而開發的，可以說代表了當今最強大的手機作業系統。此外，Symbian從6.0版本就開始支援外接儲存裝置，如MMC,CF卡等，這讓它強大的擴充能力得以充分發揮，使存放更多的軟體以及各種大容量的多媒體檔案成為了可能。

版本發展

Symbian按版本來分，繼2005年2月Symbian推出v9.0以來，到目前為止已先後有了6.0、6.1、7.0、7.0s、8.0、8.1、9.0、9.4等幾種版本。1999年3月Symbian推出了Symbian5.0作業系統，它的主要核心集合了網路，無線文字，電子郵件，名片薄以及個人資訊助理，同時還具有支援標準網路頁面的瀏覽器，配合java語言的支援，使得Symbian可以執行小型的應用程式。不過這個版本採用的機型甚少，基本上與EPOC沒有太多的差別。
Symbian 6.0則在5.0的基礎上增加了，GPRS、WAP1.2瀏覽器以及藍牙技術的支援，用戶可以執行第三方基於C++和J2ME開發的程式。而Symbian 6.1則是和Symbian 6.0相比主要增加了對USB的支援。Symbian 6.0的主要特點是： 支援語音通話和資料通訊 ，支援Bluetooth和WAP，配備安全性功能（SSL，HTTPS，WTLS） ，採用16bit Unicode，支援多語言顯示 ，採用「PersonalJava 3.0」和「JavaPhone 1.0」。
Symbian 7.0則支援多模式和3G手機（專區），可以讓製造商們可以面向全世界推出可以執行於所有網路之上的Symbian手機，而且可以不對程式碼進行重大改動的情況下就可以重新使用許多目前已有的軟體應用。7.0包含一些新的通訊、訊息、聯網和應用開發技術，並對一些與安全和認證相關的功能進行了改進。Symbian 7.0的其他功能包括：支援靈活的使用者介面，例如諾基亞的Series 60；支援幾種音訊/圖像格式和許多面向遊戲開發人員的API；全力的加密和認證管理，基於安全通訊協定（包括HTTPS、WTLS和SSL）及認證的應用安裝；和Over-the-air（OTA）SyncML同步支援。
2004年2月，Symbian在授權LG等公司的時候，發布了Symbian8 .0版本。該版本改善了即時系統效能，提高了原有作業系統的相容能力。此外，Symbian 8.0的軟體工具改進了遠端接入控制系統功能，運用調節裝置消除手機用戶使用增值服務時會受到的干擾。這個系統包含了絕對現代化的多媒體和Java裝置，支援多種標準，其中包括JSR118，CLDC1.1（JSR139），MobileMedia（JSR135），3D圖像資料（JSR184），JTWI 1.0 c（JSR185）。最後，新版OS還支援SDIO。
2005年2月，Symbian推出v9.0，它支援更高像素數位相機與三維遊戲動畫，可以處理200萬像素的數字圖片，能夠向無線耳機傳送立體聲音樂，不需要同步軟體就能夠從PC上匯出MP3檔案。

開放性

一個普遍的共同問題是Symbian並不是"開放"的。它並沒有開放到核心原始碼（原始碼從沒有公開）。然而，幾乎所有原始碼都提供給使用Symbian的手機製造商和其他合作夥伴。再者，很多應用程式介面（API）都有公開其技術檔案，使任何人都可以開發Symbian的軟體。這與其他傳統的嵌入式作業系統形成對比，因為後者除了Java程式以外並無法提供任何後繼市場的軟體。
2011年3月30日諾基亞公司的開源專案主管Petra Sderlingc以「We are Open」為名在諾基亞官方部落格宣稱Symbian從即日（即2011年3月30日）起，新一代的Symbian作業系統的絕大原始碼將上傳到collab.symbian.nokia.com網站，供平台開發合作夥伴下載進行再開發。也就是說任何人、任何公司都能無條件使用Symbian程式碼因為諾基亞在3月份和微軟合作開發Windows Phone 7，並將其作為諾基亞手機的主打系統，雖然會繼續保持對其的技術支援，包括提供開發工具和SDK等形式，但不再提供對Symbian系統進行更新。

開發

在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 9的SIS檔案會稍稍不易推廣，原因是每個程式都至少要擁有Symbian的簽署才能安裝在該作業系統的手機。
Java ME for Symbian的應用程式是使用正式的技術開發工具像是J2ME無線套件。它們包裝成JAR或JAD檔案。其他像是名為SuperWaba的工具是提供建立Symbian 7.0或7.0s的Java應用程式。