無線信息設計在通用操作系統EPOC
摘要:從系統結構、應用程序開發(fā)等方面詳細介紹無線信息設備操作系統EPOC。說明其具有高效的內核處理機制、高可靠性、靈活的程序開發(fā)方法、豐富的通信協議支持。
本文引用地址:http://www.biyoush.com/article/241601.htm關鍵詞:無線信息設備 操作系統 無線通信
隨著數據通信的發(fā)展和無線網絡的完善,無線數據通信的速度也不斷提高。因此,為們對于手機的要求已不只是具有語音能力,要求提供良好數據服務的呼聲越來越高。無線信息設備(wirless information device)就是在這種形式下產生的一種集手機和PDA功能為一體的新型手持設備。它不僅具有移動電話的全部特點,而且支持PDA的功能,如文件處理、電子郵件、與PC機數據同步、記事本以及多媒體等。這類設備型號多樣,更新迅速,既能接入公用無線通信網,又可與其他設備互聯,滿足了各層次用戶的不同需要,是未來幾年無線信息產品的發(fā)展趨勢。
無線信息設備的內存、電池和CPU計算能力都比較有限,因此,對于所采用的操作系統具有特殊的要求:操作系統占用內存要盡量少,并且支持高效的多任務及進程間通信機制;具有有效的電源管理功能,適合利用電池供電;采用面向對象的設計方法,軟件程序代碼具有良好的可重用性;提供友好的圖形用戶界面;確保用戶數據安全可靠地存儲;支持多種標準通信協議,以便接入國際互聯網和與其他設備互連;最好能提供開放的應用程序平臺,便于第三方軟件開發(fā)商提供多樣的應用程序。
為開發(fā)一種適用于無線信息設備的通用操作系統,諾基亞、愛立信、摩托羅拉和Psion公司在1998年成立了一個聯合企業(yè)Symbian,而后又有松下、西門子、三洋等公司加入。EPOC是1999年由Symbian宣布的32位操作系統,并在其后得到不斷完善。現在,許多商用無線信息設備都采用EPOC作為操作系統,如諾基亞的9210以及愛立信的R380、MC218等。
一、EPOC操作系統簡介
EPOC采用基于靜態(tài)優(yōu)先級的搶先式多任務機制并且配合時間片輪轉,構成簡捷、高效的核心,支持強大的通信及多媒體功能。Symbian公司在提供EPOC操作系統的同時, 針對無線信息設備的不同市場需求還推出兩類設備參考模型(device family reference design)[1];Communicator和Smartphone。前者是以數據處理為主,以傳統話務功能為輔;后者則恰好相反。Communicator包括Crystal和Quartz兩種模型,Smartphone只有一種模型Pearl,如圖1所示。由于每種模型都包括了基本的硬件和常用的應用程序軟件,因此,無線信息設備廠商可以在此基礎上集中精力開發(fā)附加的特有軟硬件,從而縮短產品開發(fā)周期,加快成品推向市場的速度。
EPOC操作系統的主要特點:
*高可靠性。具有高效電源管理機,而且即使在電池耗盡的情況下,也能確保不丟失任何用戶數據。由于采用特殊的編程規(guī)范,可以有效地管理系統內存資源的分配和回收,不會壬內存的泄漏。因此,以EPOC為操作系統的設備可連續(xù)運行多年而不需重新啟動,這也是對無線信息設備的基本要求。
*采用面向對象的設計和編程,程序代碼具有很好的可重用性。EPOC提供各種常用的32位應用程序接口函數,而且具有圖形用戶界面編程框架,可以方便地創(chuàng)建用戶應用程序。系統支持Unicode,容易進行本地化。
*提供多種通信協議。支持標準的國際互聯網通信協議(TCP/IP、PPP、Telnel、HTTP),電子郵件協議(POP3、SMTP、IMAP4);提供GPRS、WAP等標準協議棧;具有藍牙協議模塊,增強了與其他設備的互連性;可以通過電纜或紅外與PC機相連,進行數據同步和備份。
*參考模型的硬件配置充分考慮了無線信息設備的未來需求。采用ARM系列RISC處理器,具有較強的處理能力。利用ROM進行永久程序存儲,并可通過外加快閃存儲卡來擴展系統存儲量。支持高分辨率彩色顯示、觸摸屏和筆輸入,具有多媒體功能。
二、EPOC系統結構
EPOC操作系統采用模塊化分層結構,其系統由許多模塊組成。不同模塊完成不同的功能,大的模塊又分為幾個組件。這種模塊在保證整體結構緊湊的基礎上,減弱了不同軟件模塊之間的依賴性,使得系統易于擴充。
EPOC系統有4個最主要的組成部分,如圖2所示。
1.內核
內核是整個操作系統的核心部分,在處理器特權級執(zhí)行,其他模塊運行在用戶級。內核還包括硬件設備驅動,負責最基本的操作系統功能,包括電源管理、內存管理、進程管理和必需的文件管理。內核通過底層函數庫為執(zhí)行在用戶級的應用程序提供服務。由于采用ARM系列RISC處理器,EPOC利用二級頁表機制進行尋址,為每個應用程序提供虛擬地址空間,以加快上下文切換速度。搶先式多任務機制允許多個自己的線程,同一進程中的多個線程能共享內存資源。系統調試時高優(yōu)先級進程比優(yōu)先級進程先得到CPU資源,相同優(yōu)先級的進程按時間片輪轉法分享CPU資源。
2.應用程序
應用程序可以直接和用戶進行交互。每個應用程序是單獨的進程,擁有自己的虛擬地址空間。
3.管理程序
EPOC系統采用客戶/服務器形式來簡化并獲得高效的進程間通信。管理程序是不直接與用戶交互的程序。它管理一個或多個系統資源,執(zhí)行服務器的功能,通過API函數為客戶提供服務。其客戶可以是應用程序或其他的管理器。
文件管理器、窗口管理器和通信管理器是EPOC系統中最主要的管理程序。文件管理器負責文件處理,窗口管理器是EPOC高效率事件處理機制的核心,通信管理器提供了對多種通信協議的支持。在EPOC系統中,每個應用程序和管理程序都是獨立的事件處理線程。窗口管理器負責提供用戶、用戶程序和操作系統內核間的事件傳遞。按鍵、筆等輸入事件先傳給窗口管理器,由它將事件發(fā)送給應用程序。應用程序完成相應的事件處理后,通知窗口管理器,并由窗口管理器負責處理應用程序的屏幕重畫請求。事件處理過程如圖3所示。通信管理器分為串行通信管理器、管道管理器和電話應用管理器三個部分。串行通信器提供串行通信的支持;管道管理器利用通用的管理機制支持TCP/IP、短信息數據包、紅外數據接口;電話應用管理器提供與GSM電話及調制解調器相關的接口功能。
4.引擎
引擎是應用程序的一部分,負責應用程序數據的后臺處理,而不與用戶直接交互。EPOC操作系統中的程序均可分為應用程序和引擎兩部分。引擎可以是單獨的源文件模塊、獨立的動態(tài)鏈接庫(DLL)或多個動態(tài)鏈接庫。操作系統提供了一些常用的引擎,用戶可以針對特殊的需要開發(fā)專用引擎。
三、EPOC應用程序開發(fā)設計
EPOC支持多種編程語言,為開發(fā)者提供了充分的選擇空間,其中C++和Java應用得最為廣泛。EPOC開發(fā)工具套件中提供了集成有EPOC內核的模擬器,可運行在Win9x和WinNT上,并通過調用Windows系統的設備驅動程序,對EPOC的目標機硬件進行仿真,實現EPOC程序的模擬運行。EPOC應用程序開發(fā)的大致過程如圖4所示[2]。先利用Visual C++編譯器將EPOC源程序編譯成x86的可執(zhí)行代碼,采用模擬器在PC機上進行調試;而后經GNUC++把源程序重新編譯成目標機的可執(zhí)行代碼,并拷貝到EPOC設備上,進行實現測試。模擬器的采用使得在目標機硬件不具備時就可進行高層軟件的開發(fā),因此加快了程序開發(fā)的進程,節(jié)省了開發(fā)時間。應用程序在模擬調試后,一般都能在目標機上正常運行;但是模擬器不能模擬真正目標機的硬件時序,因此,不適合用模擬方法開發(fā)需要嚴格時序邏輯的程序,也不支持多個任務的同時調試。
由于EPOC操作系統本身是由C++編寫的,因此,用C++去開發(fā)應用可以獲得操作系統最充分的支持,使應用軟件更加靈活。EPOC C++編程分為兩種;E32編程和Uikon編程。前者采用較為傳統的方法進行編程,通過調用系統API函數來完成各種功能,能靈活地實現各種底層操作。因此,系統中的硬件驅動程序以及后臺應用程序一般采用此類編程。Uikon是一套完整的應用程序框架,主要用于開基于圖形用戶界面的應用程序。該框架一般由應用程序(application)、應用程序界面(AppUI)、文檔(document)、視圖(view)四個類構成。EPOC具有完善的類繼承體體系,提供了豐富的類庫,可以方便快捷地創(chuàng)建應用程序。
鑒于無線信息設備的特殊性,EPOC編程具有一些獨到之處,形成了自己的規(guī)范。
首先,提供了與內存分配相關的出錯處理機制。如果應用程序有一系列內存申請的連續(xù)操作,其中任何一些出現內存分配失敗,都需要在出錯處理程序中釋放所有在這些之前已成功分配的內存,以確保系統內存的正確回收。因此,編程為員在開發(fā)出錯處理程序時,要充分考慮應用程序中的內存使用狀況,防止內存泄漏的發(fā)生。為了更有效地管理內存的分配和回收,簡化編程工作,EPOC提供了Eleave標識和Cleanup棧。從堆中分配指針的,以Eleave作為指針標識,指針分配成功后將其壓入Cleanup棧。如果此指針指向的對象在程序后續(xù)處理中出現申請內存的失敗,系統會自動釋放棧中指針指向的所有內存,并在程序調用PopAndDestroy函數時刪除此指針,保證內存的有效回收。
其次,類的兩步構造。標準的C++構造函數是在類的對象實例創(chuàng)建時自動調用的,因此,不可靠將其中申請的指針入入Cleanup棧中。如果類創(chuàng)建失敗,在構造函數中分配的內存也就無法被操作系統回收。由于無線信息設備是常年連續(xù)運行而不重新啟動的,因此內存的泄漏會不斷積累,最終導致嚴重的后果。為解決這一問題,EPOC提出類的創(chuàng)建分兩步進行:第一步是按照C++本身的特性自動運行構造函數,但是在構造函數中,不進行從堆中申請內存的操作;第二步是調用含有內存請求的類創(chuàng)建函數ConstructL,在ConstructL中采用EPOC的內存分配出錯處理機制。這樣的設計可以增強系統的穩(wěn)定性。
結束語
以上從系統構成及應用程序設計開發(fā)角度介紹了EPOC操作系統,說明它具有高效的內核處理機制、高度的可靠性、靈活的程序開發(fā)方法、豐富的通信協議支持,充分滿足了無線信號設備的特定要求。隨著無線通信從第2代向2.5代的過渡,以及第3代移動通信的最終實現,無線信息設備必將擁有廣闊的市場前景。EPOC作為為其量身定制的操作系統也一定會得到廣泛的應用。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論