IP2000網(wǎng)絡(luò)終端系統(tǒng)方案概要設(shè)計(jì)(doc)
綜合能力考核表詳細(xì)內(nèi)容
IP2000網(wǎng)絡(luò)終端系統(tǒng)方案概要設(shè)計(jì)(doc)
IP2000是我們公司根據(jù)市場需求將開發(fā)的第二代網(wǎng)絡(luò)終端,要求具有友好的類WINDOWS風(fēng) 格的人機(jī)交互界面,在滿足傳統(tǒng)終端全部功能基礎(chǔ)上,實(shí)現(xiàn)以太網(wǎng)聯(lián)機(jī)功能(實(shí)現(xiàn)TELN ET遠(yuǎn)程登錄協(xié)議)和支持多任務(wù)的一種更新?lián)Q代產(chǎn)品。功能需求簡述如下: o 提供類WINDOWS風(fēng)格的用戶界面,采用桌面圖標(biāo)的方式啟動任務(wù) o 實(shí)現(xiàn)TELNET遠(yuǎn)程登錄協(xié)議 o 支持最多達(dá)8個任務(wù)同時運(yùn)行 o 支持PS/2鼠標(biāo) o 支持網(wǎng)絡(luò)版本更新 o 支持網(wǎng)關(guān)功能 o 支持本地和網(wǎng)絡(luò)打印機(jī) 在此需求前提下,我們決定采用多任務(wù)嵌入式操作系統(tǒng)(EOS)+嵌入式GUI+終端仿真 的結(jié)構(gòu)來實(shí)現(xiàn)需求,系統(tǒng)結(jié)構(gòu)框圖描述如下: [pic] 一、結(jié)構(gòu)設(shè)計(jì) 在此系統(tǒng)框圖的基礎(chǔ)上,我們分別對各層次進(jìn)行結(jié)構(gòu)設(shè)計(jì)分析: 1、EOS設(shè)計(jì) 目前存在的嵌入式系統(tǒng)多不勝數(shù),流行的有WinCE、PalmOS、Vxwork、pSOS、Neculeu s等多種系統(tǒng)。從目前嵌入式系統(tǒng)使用最廣泛的信息家電行業(yè)和通訊行業(yè)分析,PalmOS和 WinCE、Vxwork是當(dāng)前應(yīng)用最廣泛的三種: o Windows CE: Microsoft Windows CE是一個簡潔的,高效率的多平臺操作系統(tǒng)。它不是削減的Windows95版本,而是從 整體上為有限資源的平臺設(shè)計(jì)的多線程,完整優(yōu)先權(quán),多任務(wù)的操作系統(tǒng)。它的模塊 化設(shè)計(jì)允許它對于從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制,但Win CE是非開放性操作系統(tǒng),使第三方很難實(shí)現(xiàn)產(chǎn)品的定制,嵌入式操作系統(tǒng)追求高效、 節(jié)能,而WinCE在這方面是笨拙的,它占用過多的內(nèi)存,應(yīng)用程序龐大,而且入門費(fèi) 和許可費(fèi)較高,使得整個產(chǎn)品的成本急劇上升。所以WinCE多用于從高檔的產(chǎn)品。 o VxWorks: VxWorks所在的公司W(wǎng)indRiver兼并了pSOS的ISI公司,使得該公司現(xiàn)在有兩大RTO S系統(tǒng)。VxWorks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛,市場占有率最高的系統(tǒng)。它支 持多種處理器,如x86,i960,Sun Sparc,Motorola MC68xxx,MIPS RX000,POWER PC等等。使用的是和UNIX不兼容的環(huán)境,大多數(shù)的VxWorks API是專有的。采用GNU的編譯和調(diào)試器。 o pSOS: ISI公司已經(jīng)被WinRiver公司兼并,現(xiàn)在是屬于WindRiver公司的產(chǎn)品。這個系統(tǒng) 是一個模塊化,高性能的實(shí)時操作系統(tǒng),專為嵌入式微處理器設(shè)計(jì),提供一個完全多 任務(wù)環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和搞可靠性??梢宰岄_發(fā)者將操 作系統(tǒng)的功能和內(nèi)存需求定制成每一個應(yīng)用所需的系統(tǒng)。開發(fā)者可以利用它來實(shí)現(xiàn)從 簡單的單個獨(dú)立設(shè)備到復(fù)雜的、網(wǎng)絡(luò)化的多處理器系統(tǒng)。 o QNX: QNX是一個實(shí)時的,可擴(kuò)充的操作系統(tǒng),它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(實(shí)時擴(kuò)展)。它提供了一個很小的微內(nèi)核以及一 些可選的配合進(jìn)程。其內(nèi)核僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信 和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它OS服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶 進(jìn)程,因此QNX內(nèi)核非常小巧(QNX4.x大約為12Kb)而且運(yùn)行速度極快。這個靈活的結(jié) 構(gòu)可以使用戶根據(jù)實(shí)際的需求將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個處 理器的超級虛擬機(jī)操作系統(tǒng)。 o Palm OS: 3Com公司的Palm OS在PDA市場上占有很大的市場份額,它有開放的操作系統(tǒng)應(yīng)用程序接口(API),開 發(fā)商可以根據(jù)需要自行開發(fā)所需要的應(yīng)用程序。目前已經(jīng)有總共3500多個應(yīng)用程序可 以運(yùn)行在Palm Pilot上,其中大部分應(yīng)用程序均為其他廠商和個人所開發(fā),使得Palm Pilot的功能得以不斷增多。這些軟件包括計(jì)算器、各種游戲、電子寵物、地理信息 等等。在開發(fā)環(huán)境方面,可以在Windows 95/98,Windows NT以及Macintosh下安裝Palm Pilot Desktop;PlamPilot可以與流行的PC平臺上的應(yīng)用程序如Word,Excel等進(jìn)行數(shù)據(jù)交 換。 o OS-9: Microwave的OS- 9是為微處理器的關(guān)鍵實(shí)時任務(wù)而設(shè)計(jì)的操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括 消費(fèi)電子產(chǎn)品,工業(yè)自動化,無線通訊產(chǎn)品,醫(yī)療儀器,數(shù)字電視/多媒體設(shè)備中。 它提供了很好的安全性和容錯性。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級性 非常突出。 o LynxOS: Lynx Real-time Systems的LynxOS是一個分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時操作系統(tǒng),它遵循POSI X.1a、POSIX.1b和POSIX.1c標(biāo)準(zhǔn)。LynxOS支持線程概念,提供256個全局用戶線程優(yōu) 先級;提供一些傳統(tǒng)的,非實(shí)時系統(tǒng)的服務(wù)特征;包括基于調(diào)用需求的虛擬內(nèi)存,一 個基于Motif的用戶圖形界面,與工業(yè)標(biāo)準(zhǔn)兼容的網(wǎng)絡(luò)系統(tǒng)以及應(yīng)用開發(fā)工具。 o Linux: Linux在嵌入式領(lǐng)域獲得了飛速發(fā)展,目前正在開發(fā)的嵌入式系統(tǒng)中,49%的項(xiàng)目 選擇Linux作為嵌入式操作系統(tǒng)。Linux之所以能在嵌入式系統(tǒng)市場上取得如此迅速的 發(fā)展,與它自身的優(yōu)良特性有著不可分割的關(guān)系: 免費(fèi)、開放源碼,豐富的軟件資源; 功能強(qiáng)大的內(nèi)核,性能高效、穩(wěn)定,多任務(wù); 支持多種體系結(jié)構(gòu),如X86、ARM、MIPS、ALPHA、SPARC等; 完善的網(wǎng)絡(luò)通信、圖形、文件管理機(jī)制; 支持大量的周邊硬件設(shè)備,驅(qū)動豐富; 大小、功能都可定制; 良好的開發(fā)環(huán)境,不斷發(fā)展的開發(fā)工具集; 廣泛的軟件開發(fā)者的支持; 價格低廉。 從我們IP2000網(wǎng)絡(luò)終端的需求和目前網(wǎng)絡(luò)終端的市場來分析,目前我們公司已有的產(chǎn)品 IP1000采用Linux+Microwin這種方式已基本實(shí)現(xiàn)網(wǎng)絡(luò)終端的需求,只是在界面的美觀程 度和系統(tǒng)速度上比同類型的較為突出的實(shí)達(dá)netterm 860終端有所不足,但從系統(tǒng)的角度和開發(fā)進(jìn)度以及成本的角度考慮,重新引進(jìn)一種新的 嵌入式操作系統(tǒng),以上介紹的幾種EOS引進(jìn)的門檻成本太高,且需要較長時間消化和熟悉 ,移植到我們的硬件平臺也需要長時間的過程,綜合考慮,我們還是決定在博利思提供 的Linux內(nèi)核的基礎(chǔ)上構(gòu)筑我們的IP2000的OS,并準(zhǔn)備對內(nèi)核作如下改進(jìn): o 優(yōu)化framebuffer代碼,并在原有256色的基礎(chǔ)上增加16色支持 o 修改ttyS0/1的設(shè)備驅(qū)動,解決目前IP1000存在的所有由于串口造成的問題 2、GUI設(shè)計(jì) 通過對目前幾種基于Linux的嵌入式GUI的詳細(xì)分析,較好的嵌入式GUI通常結(jié)合面 向?qū)ο蠓椒ú捎枚鄬营?dú)立設(shè)計(jì),具有以下結(jié)構(gòu): o 設(shè)備相關(guān)層(driver) 在這一層的功能應(yīng)該是將系統(tǒng)中與設(shè)備和操作系統(tǒng)平臺的具體細(xì)節(jié)屏蔽起來。它利 用實(shí)際的設(shè)備驅(qū)動程序接口或者OS系統(tǒng)調(diào)用來與硬件設(shè)備交互,這些硬件設(shè)備主要 包括screen、mouse和keyboard等。我們使用設(shè)備對象(device object)的概念來描述一類設(shè)備,每一個對象描述了一類實(shí)際設(shè)備的屬性和方法。 比如,screen設(shè)備對象就描述了screen設(shè)備的各種屬性(屏幕尺寸、分辨率、像素 深度、像素格式、邏輯顯存首地址等等)和基本方法(打開和關(guān)閉顯示器、設(shè)置調(diào) 色板、返回屏幕屬性、讀寫像素點(diǎn)等等)。對于同一類設(shè)備在不同驅(qū)動或者平臺上 的具體情況則以設(shè)備對象實(shí)例來描述,比如screen類型的設(shè)備,我們可能讓它工作 在Linux上,通過framebuffer 或者SVGALib驅(qū)動來操作它。他們的對象類相同,但是類的屬性和方法的實(shí)現(xiàn)不一 樣。中間層看到的只是該類設(shè)備的可選的對象實(shí)例,不用關(guān)心底層是如何操作的( 也就是對象的方法是怎樣實(shí)現(xiàn)的)。最底層實(shí)際上是以設(shè)備對象的方式為中間層提 供了一個抽象的設(shè)備驅(qū)動界面。為了移植更容易,最底層應(yīng)盡量簡潔,只實(shí)現(xiàn)最基 本的設(shè)備功能函數(shù)??梢钥吹?,當(dāng)系統(tǒng)要移植到另外的平臺上時,我們只要按照各 類設(shè)備對象的定義實(shí)現(xiàn)相對較少的函數(shù)就能建立新的設(shè)備對象實(shí)例并讓中間層選擇 他們就可以了。 o 設(shè)備無關(guān)層(engine) 這一層的功能是提供一個可以為各種應(yīng)用層共享的與設(shè)備無關(guān)的核心圖形引擎 ,其中的主要工作就是實(shí)現(xiàn)各種圖形函數(shù)和輸入設(shè)備的功能函數(shù)。對于中間層,它 向下看到的是各類設(shè)備對象,向上則是要提供一個抽象的核心圖形界面,使得上面 的應(yīng)用層對它所使用的到底是什么設(shè)備對象不用去理會。很顯然,這一層根據(jù)不同 的設(shè)備和平臺選擇相應(yīng)的設(shè)備對象實(shí)例來實(shí)現(xiàn)核心圖形引擎。 由于每類設(shè)備的各個實(shí)例擁有同樣的對象類型定義,所以中間層基于設(shè)備對象所實(shí) 現(xiàn)的功能是不會因?yàn)樵O(shè)備和平臺的更改而受影響的。同時,中間層把消息驅(qū)動機(jī)制 、窗口管理機(jī)制交給應(yīng)用層去完成,因此,對于各類型的應(yīng)用層(Win32或者是X- Windows),中間層完成的功能都是通用的。 o 應(yīng)用層(API) 這一層的功能是按照應(yīng)用的具體要求為應(yīng)用程序提供適當(dāng)?shù)膽?yīng)用層用戶界面。 當(dāng)應(yīng)用程序不需要窗口系統(tǒng)的時候,用戶自定義圖形界面將十分簡單,甚至可以 什么都不做而直接使用中間層提供的抽象核心界面。如果用戶需要完善的多任務(wù) 窗口系統(tǒng),比如是類Win32的,可以使用抽象核心界面來實(shí)現(xiàn)其應(yīng)用程序編程接口 (API)以及窗口和消息機(jī)制等。 嵌入式GUI的體系結(jié)構(gòu)的抽象參考模型如下: [pic] 目前采用此套結(jié)構(gòu)的比較成熟的嵌入式GUI有Microwindow和MiniGUI兩種GUI平臺, Microwindow平臺提出較早,并且經(jīng)過多年的實(shí)踐,已經(jīng)比較成熟,目前國內(nèi)的眾多嵌入 式系統(tǒng)廠商包括聯(lián)想、中軟、紅旗、桑夏科技、華恒等都采用Micorwindow作為基礎(chǔ)開發(fā) 自己嵌入式GUI,但因?yàn)樵擁?xiàng)目缺少強(qiáng)有力的核心代碼維護(hù),代碼質(zhì)量參差不齊,因此在 另外一種GUI Qt/Embedded發(fā)布以來,它就長時間停留在了0.89Pre7版本,近幾年來發(fā)展緩慢; MiniGUI項(xiàng)目起源于清華大學(xué)一個采用嵌入式Linux系統(tǒng)的工業(yè)控制系統(tǒng)項(xiàng)目,開發(fā)之初 借鑒了Microwindow的一些經(jīng)驗(yàn),但后來在發(fā)展速度上超過了Microwindow(MiniGUI已是 1.2.0版本,但Microwindow至今還是0.89pre版本),由于兩者都是自由軟件項(xiàng)目,開放 源代碼和所有文檔,可作為我們IP2000網(wǎng)絡(luò)終端的GUI設(shè)計(jì)的參考選擇,我們可以在其中 一種的基礎(chǔ)上構(gòu)筑我們自己的GUI平臺。由于IP2000網(wǎng)絡(luò)終端有多任務(wù)功能需求,因此我 們的GUI設(shè)計(jì)必須能夠滿足適應(yīng)多任務(wù)的需求,通過對已有的兩種GUI進(jìn)行預(yù)研,我們發(fā) 現(xiàn),GUI的多任務(wù)設(shè)計(jì)通常有兩種方法: o 采用C/S結(jié)構(gòu) C/S結(jié)構(gòu)是天然的多任務(wù),在Sever端專門負(fù)責(zé)監(jiān)控外部事件和隨之的消息傳遞和分 發(fā),Client完成消息的處理,各個Client之間互不干擾和影響。采用這種方法實(shí)現(xiàn) 多任務(wù)支持的有Microwindows的Nano- x方案和MiniGUI,但兩種GUI實(shí)現(xiàn)的機(jī)制有很大差別,MicroWindows為了追求和X Window的兼容,采用了傳統(tǒng)的基于Unix套接字通訊方式的C/S系統(tǒng)結(jié)構(gòu),這樣大量的 數(shù)據(jù)在客戶/內(nèi)核/服務(wù)器之間傳遞,增加了系統(tǒng)負(fù)荷,占用了更多系統(tǒng)資源,降低 了系統(tǒng)的圖形效率,并不適應(yīng)于CPU速度較慢和系統(tǒng)資源有限的一般嵌入式場合。而 MiniGUi吸取了Microwindows的經(jīng)驗(yàn),采用了獨(dú)特的體系結(jié)構(gòu),它的最初版本采用線 程機(jī)制來實(shí)現(xiàn)C/S結(jié)構(gòu),這樣所有的應(yīng)用程序都運(yùn)行在同一個地址空間,大大提高了 程序之間的通信效率,但這種結(jié)構(gòu)也導(dǎo)致了系統(tǒng)整體的脆弱,如果某個線程因?yàn)榉?法的數(shù)據(jù)訪問而終止運(yùn)行,整個進(jìn)程都將受到影響,不過,這種體系結(jié)構(gòu)對關(guān)鍵的 實(shí)時控制系統(tǒng)來說,還是非常適合的,后期發(fā)展的MiniGUI- Lite版本則作了一些改進(jìn),在獨(dú)立多進(jìn)程和系統(tǒng)效率之間作了一些綜合,采用套接 字和共享內(nèi)存結(jié)合的方式支持多進(jìn)程,并且提供前后臺進(jìn)程的切換,通過共享內(nèi)存 機(jī)制提供全局資源的共享,以便減少實(shí)際內(nèi)存的消耗,但好像MiniGUI的圖形引擎不 是直接建立在內(nèi)核framebuffer驅(qū)動上,而要由如Libggi或Svgalib等更高一級的圖 形庫支持,并且由于MiniGUI采用了獨(dú)特的接口設(shè)計(jì),其應(yīng)用程序的可移植性很差, 而 MicroWindows的Nano-x方案則采用 X Window的兼容接口設(shè)計(jì),大大方便了許多基于X Window的應(yīng)用程序的移植和代碼復(fù)用。 o 采用GUI上下文共享的方法 通常在單任務(wù)GUI基礎(chǔ)上開發(fā)圖形界面應(yīng)用有如下圖左邊的系統(tǒng)流程, [pic] 應(yīng)用程序通過調(diào)用GUI的API實(shí)現(xiàn)相應(yīng)功能,而這些函數(shù)有自己的上下文,并且這些上下 文主要是通過數(shù)據(jù)空間的形式(data & BSS)來保持的。由于消息系統(tǒng)的同步功能,如果在同一進(jìn)程中創(chuàng)建并使用多個窗口,也 不會造成GUI的沖突。例如,可以在一個進(jìn)程中構(gòu)造記事本和計(jì)算器,兩個窗口都可以正 常地運(yùn)行,因?yàn)槿我粫r刻只有一個窗口接受消息隊(duì)列的消息分發(fā)并處理(使用或改變GU I上下文)——這種同步是由消息系統(tǒng)來保證的。假如把GUI使用的上下文和應(yīng)用其它部分 的上下文分開,一個應(yīng)用完全是可以正常運(yùn)行的。如果把這種方法應(yīng)用到多任務(wù)的系統(tǒng) ,如果各個任務(wù)獨(dú)有自己的GUI上下文,則不能解決一些系統(tǒng)公共的設(shè)備例如鼠標(biāo)、鍵盤 、輸入法等事件的檢測、轉(zhuǎn)換、分派以及系統(tǒng)龐大等許多問...
IP2000網(wǎng)絡(luò)終端系統(tǒng)方案概要設(shè)計(jì)(doc)
IP2000是我們公司根據(jù)市場需求將開發(fā)的第二代網(wǎng)絡(luò)終端,要求具有友好的類WINDOWS風(fēng) 格的人機(jī)交互界面,在滿足傳統(tǒng)終端全部功能基礎(chǔ)上,實(shí)現(xiàn)以太網(wǎng)聯(lián)機(jī)功能(實(shí)現(xiàn)TELN ET遠(yuǎn)程登錄協(xié)議)和支持多任務(wù)的一種更新?lián)Q代產(chǎn)品。功能需求簡述如下: o 提供類WINDOWS風(fēng)格的用戶界面,采用桌面圖標(biāo)的方式啟動任務(wù) o 實(shí)現(xiàn)TELNET遠(yuǎn)程登錄協(xié)議 o 支持最多達(dá)8個任務(wù)同時運(yùn)行 o 支持PS/2鼠標(biāo) o 支持網(wǎng)絡(luò)版本更新 o 支持網(wǎng)關(guān)功能 o 支持本地和網(wǎng)絡(luò)打印機(jī) 在此需求前提下,我們決定采用多任務(wù)嵌入式操作系統(tǒng)(EOS)+嵌入式GUI+終端仿真 的結(jié)構(gòu)來實(shí)現(xiàn)需求,系統(tǒng)結(jié)構(gòu)框圖描述如下: [pic] 一、結(jié)構(gòu)設(shè)計(jì) 在此系統(tǒng)框圖的基礎(chǔ)上,我們分別對各層次進(jìn)行結(jié)構(gòu)設(shè)計(jì)分析: 1、EOS設(shè)計(jì) 目前存在的嵌入式系統(tǒng)多不勝數(shù),流行的有WinCE、PalmOS、Vxwork、pSOS、Neculeu s等多種系統(tǒng)。從目前嵌入式系統(tǒng)使用最廣泛的信息家電行業(yè)和通訊行業(yè)分析,PalmOS和 WinCE、Vxwork是當(dāng)前應(yīng)用最廣泛的三種: o Windows CE: Microsoft Windows CE是一個簡潔的,高效率的多平臺操作系統(tǒng)。它不是削減的Windows95版本,而是從 整體上為有限資源的平臺設(shè)計(jì)的多線程,完整優(yōu)先權(quán),多任務(wù)的操作系統(tǒng)。它的模塊 化設(shè)計(jì)允許它對于從掌上電腦到專用的工業(yè)控制器的用戶電子設(shè)備進(jìn)行定制,但Win CE是非開放性操作系統(tǒng),使第三方很難實(shí)現(xiàn)產(chǎn)品的定制,嵌入式操作系統(tǒng)追求高效、 節(jié)能,而WinCE在這方面是笨拙的,它占用過多的內(nèi)存,應(yīng)用程序龐大,而且入門費(fèi) 和許可費(fèi)較高,使得整個產(chǎn)品的成本急劇上升。所以WinCE多用于從高檔的產(chǎn)品。 o VxWorks: VxWorks所在的公司W(wǎng)indRiver兼并了pSOS的ISI公司,使得該公司現(xiàn)在有兩大RTO S系統(tǒng)。VxWorks是目前嵌入式系統(tǒng)領(lǐng)域中使用最廣泛,市場占有率最高的系統(tǒng)。它支 持多種處理器,如x86,i960,Sun Sparc,Motorola MC68xxx,MIPS RX000,POWER PC等等。使用的是和UNIX不兼容的環(huán)境,大多數(shù)的VxWorks API是專有的。采用GNU的編譯和調(diào)試器。 o pSOS: ISI公司已經(jīng)被WinRiver公司兼并,現(xiàn)在是屬于WindRiver公司的產(chǎn)品。這個系統(tǒng) 是一個模塊化,高性能的實(shí)時操作系統(tǒng),專為嵌入式微處理器設(shè)計(jì),提供一個完全多 任務(wù)環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和搞可靠性??梢宰岄_發(fā)者將操 作系統(tǒng)的功能和內(nèi)存需求定制成每一個應(yīng)用所需的系統(tǒng)。開發(fā)者可以利用它來實(shí)現(xiàn)從 簡單的單個獨(dú)立設(shè)備到復(fù)雜的、網(wǎng)絡(luò)化的多處理器系統(tǒng)。 o QNX: QNX是一個實(shí)時的,可擴(kuò)充的操作系統(tǒng),它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(實(shí)時擴(kuò)展)。它提供了一個很小的微內(nèi)核以及一 些可選的配合進(jìn)程。其內(nèi)核僅提供4種服務(wù):進(jìn)程調(diào)度、進(jìn)程間通信、底層網(wǎng)絡(luò)通信 和中斷處理,其進(jìn)程在獨(dú)立的地址空間運(yùn)行。所有其它OS服務(wù),都實(shí)現(xiàn)為協(xié)作的用戶 進(jìn)程,因此QNX內(nèi)核非常小巧(QNX4.x大約為12Kb)而且運(yùn)行速度極快。這個靈活的結(jié) 構(gòu)可以使用戶根據(jù)實(shí)際的需求將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個處 理器的超級虛擬機(jī)操作系統(tǒng)。 o Palm OS: 3Com公司的Palm OS在PDA市場上占有很大的市場份額,它有開放的操作系統(tǒng)應(yīng)用程序接口(API),開 發(fā)商可以根據(jù)需要自行開發(fā)所需要的應(yīng)用程序。目前已經(jīng)有總共3500多個應(yīng)用程序可 以運(yùn)行在Palm Pilot上,其中大部分應(yīng)用程序均為其他廠商和個人所開發(fā),使得Palm Pilot的功能得以不斷增多。這些軟件包括計(jì)算器、各種游戲、電子寵物、地理信息 等等。在開發(fā)環(huán)境方面,可以在Windows 95/98,Windows NT以及Macintosh下安裝Palm Pilot Desktop;PlamPilot可以與流行的PC平臺上的應(yīng)用程序如Word,Excel等進(jìn)行數(shù)據(jù)交 換。 o OS-9: Microwave的OS- 9是為微處理器的關(guān)鍵實(shí)時任務(wù)而設(shè)計(jì)的操作系統(tǒng),廣泛應(yīng)用于高科技產(chǎn)品中,包括 消費(fèi)電子產(chǎn)品,工業(yè)自動化,無線通訊產(chǎn)品,醫(yī)療儀器,數(shù)字電視/多媒體設(shè)備中。 它提供了很好的安全性和容錯性。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級性 非常突出。 o LynxOS: Lynx Real-time Systems的LynxOS是一個分布式、嵌入式、可規(guī)模擴(kuò)展的實(shí)時操作系統(tǒng),它遵循POSI X.1a、POSIX.1b和POSIX.1c標(biāo)準(zhǔn)。LynxOS支持線程概念,提供256個全局用戶線程優(yōu) 先級;提供一些傳統(tǒng)的,非實(shí)時系統(tǒng)的服務(wù)特征;包括基于調(diào)用需求的虛擬內(nèi)存,一 個基于Motif的用戶圖形界面,與工業(yè)標(biāo)準(zhǔn)兼容的網(wǎng)絡(luò)系統(tǒng)以及應(yīng)用開發(fā)工具。 o Linux: Linux在嵌入式領(lǐng)域獲得了飛速發(fā)展,目前正在開發(fā)的嵌入式系統(tǒng)中,49%的項(xiàng)目 選擇Linux作為嵌入式操作系統(tǒng)。Linux之所以能在嵌入式系統(tǒng)市場上取得如此迅速的 發(fā)展,與它自身的優(yōu)良特性有著不可分割的關(guān)系: 免費(fèi)、開放源碼,豐富的軟件資源; 功能強(qiáng)大的內(nèi)核,性能高效、穩(wěn)定,多任務(wù); 支持多種體系結(jié)構(gòu),如X86、ARM、MIPS、ALPHA、SPARC等; 完善的網(wǎng)絡(luò)通信、圖形、文件管理機(jī)制; 支持大量的周邊硬件設(shè)備,驅(qū)動豐富; 大小、功能都可定制; 良好的開發(fā)環(huán)境,不斷發(fā)展的開發(fā)工具集; 廣泛的軟件開發(fā)者的支持; 價格低廉。 從我們IP2000網(wǎng)絡(luò)終端的需求和目前網(wǎng)絡(luò)終端的市場來分析,目前我們公司已有的產(chǎn)品 IP1000采用Linux+Microwin這種方式已基本實(shí)現(xiàn)網(wǎng)絡(luò)終端的需求,只是在界面的美觀程 度和系統(tǒng)速度上比同類型的較為突出的實(shí)達(dá)netterm 860終端有所不足,但從系統(tǒng)的角度和開發(fā)進(jìn)度以及成本的角度考慮,重新引進(jìn)一種新的 嵌入式操作系統(tǒng),以上介紹的幾種EOS引進(jìn)的門檻成本太高,且需要較長時間消化和熟悉 ,移植到我們的硬件平臺也需要長時間的過程,綜合考慮,我們還是決定在博利思提供 的Linux內(nèi)核的基礎(chǔ)上構(gòu)筑我們的IP2000的OS,并準(zhǔn)備對內(nèi)核作如下改進(jìn): o 優(yōu)化framebuffer代碼,并在原有256色的基礎(chǔ)上增加16色支持 o 修改ttyS0/1的設(shè)備驅(qū)動,解決目前IP1000存在的所有由于串口造成的問題 2、GUI設(shè)計(jì) 通過對目前幾種基于Linux的嵌入式GUI的詳細(xì)分析,較好的嵌入式GUI通常結(jié)合面 向?qū)ο蠓椒ú捎枚鄬营?dú)立設(shè)計(jì),具有以下結(jié)構(gòu): o 設(shè)備相關(guān)層(driver) 在這一層的功能應(yīng)該是將系統(tǒng)中與設(shè)備和操作系統(tǒng)平臺的具體細(xì)節(jié)屏蔽起來。它利 用實(shí)際的設(shè)備驅(qū)動程序接口或者OS系統(tǒng)調(diào)用來與硬件設(shè)備交互,這些硬件設(shè)備主要 包括screen、mouse和keyboard等。我們使用設(shè)備對象(device object)的概念來描述一類設(shè)備,每一個對象描述了一類實(shí)際設(shè)備的屬性和方法。 比如,screen設(shè)備對象就描述了screen設(shè)備的各種屬性(屏幕尺寸、分辨率、像素 深度、像素格式、邏輯顯存首地址等等)和基本方法(打開和關(guān)閉顯示器、設(shè)置調(diào) 色板、返回屏幕屬性、讀寫像素點(diǎn)等等)。對于同一類設(shè)備在不同驅(qū)動或者平臺上 的具體情況則以設(shè)備對象實(shí)例來描述,比如screen類型的設(shè)備,我們可能讓它工作 在Linux上,通過framebuffer 或者SVGALib驅(qū)動來操作它。他們的對象類相同,但是類的屬性和方法的實(shí)現(xiàn)不一 樣。中間層看到的只是該類設(shè)備的可選的對象實(shí)例,不用關(guān)心底層是如何操作的( 也就是對象的方法是怎樣實(shí)現(xiàn)的)。最底層實(shí)際上是以設(shè)備對象的方式為中間層提 供了一個抽象的設(shè)備驅(qū)動界面。為了移植更容易,最底層應(yīng)盡量簡潔,只實(shí)現(xiàn)最基 本的設(shè)備功能函數(shù)??梢钥吹?,當(dāng)系統(tǒng)要移植到另外的平臺上時,我們只要按照各 類設(shè)備對象的定義實(shí)現(xiàn)相對較少的函數(shù)就能建立新的設(shè)備對象實(shí)例并讓中間層選擇 他們就可以了。 o 設(shè)備無關(guān)層(engine) 這一層的功能是提供一個可以為各種應(yīng)用層共享的與設(shè)備無關(guān)的核心圖形引擎 ,其中的主要工作就是實(shí)現(xiàn)各種圖形函數(shù)和輸入設(shè)備的功能函數(shù)。對于中間層,它 向下看到的是各類設(shè)備對象,向上則是要提供一個抽象的核心圖形界面,使得上面 的應(yīng)用層對它所使用的到底是什么設(shè)備對象不用去理會。很顯然,這一層根據(jù)不同 的設(shè)備和平臺選擇相應(yīng)的設(shè)備對象實(shí)例來實(shí)現(xiàn)核心圖形引擎。 由于每類設(shè)備的各個實(shí)例擁有同樣的對象類型定義,所以中間層基于設(shè)備對象所實(shí) 現(xiàn)的功能是不會因?yàn)樵O(shè)備和平臺的更改而受影響的。同時,中間層把消息驅(qū)動機(jī)制 、窗口管理機(jī)制交給應(yīng)用層去完成,因此,對于各類型的應(yīng)用層(Win32或者是X- Windows),中間層完成的功能都是通用的。 o 應(yīng)用層(API) 這一層的功能是按照應(yīng)用的具體要求為應(yīng)用程序提供適當(dāng)?shù)膽?yīng)用層用戶界面。 當(dāng)應(yīng)用程序不需要窗口系統(tǒng)的時候,用戶自定義圖形界面將十分簡單,甚至可以 什么都不做而直接使用中間層提供的抽象核心界面。如果用戶需要完善的多任務(wù) 窗口系統(tǒng),比如是類Win32的,可以使用抽象核心界面來實(shí)現(xiàn)其應(yīng)用程序編程接口 (API)以及窗口和消息機(jī)制等。 嵌入式GUI的體系結(jié)構(gòu)的抽象參考模型如下: [pic] 目前采用此套結(jié)構(gòu)的比較成熟的嵌入式GUI有Microwindow和MiniGUI兩種GUI平臺, Microwindow平臺提出較早,并且經(jīng)過多年的實(shí)踐,已經(jīng)比較成熟,目前國內(nèi)的眾多嵌入 式系統(tǒng)廠商包括聯(lián)想、中軟、紅旗、桑夏科技、華恒等都采用Micorwindow作為基礎(chǔ)開發(fā) 自己嵌入式GUI,但因?yàn)樵擁?xiàng)目缺少強(qiáng)有力的核心代碼維護(hù),代碼質(zhì)量參差不齊,因此在 另外一種GUI Qt/Embedded發(fā)布以來,它就長時間停留在了0.89Pre7版本,近幾年來發(fā)展緩慢; MiniGUI項(xiàng)目起源于清華大學(xué)一個采用嵌入式Linux系統(tǒng)的工業(yè)控制系統(tǒng)項(xiàng)目,開發(fā)之初 借鑒了Microwindow的一些經(jīng)驗(yàn),但后來在發(fā)展速度上超過了Microwindow(MiniGUI已是 1.2.0版本,但Microwindow至今還是0.89pre版本),由于兩者都是自由軟件項(xiàng)目,開放 源代碼和所有文檔,可作為我們IP2000網(wǎng)絡(luò)終端的GUI設(shè)計(jì)的參考選擇,我們可以在其中 一種的基礎(chǔ)上構(gòu)筑我們自己的GUI平臺。由于IP2000網(wǎng)絡(luò)終端有多任務(wù)功能需求,因此我 們的GUI設(shè)計(jì)必須能夠滿足適應(yīng)多任務(wù)的需求,通過對已有的兩種GUI進(jìn)行預(yù)研,我們發(fā) 現(xiàn),GUI的多任務(wù)設(shè)計(jì)通常有兩種方法: o 采用C/S結(jié)構(gòu) C/S結(jié)構(gòu)是天然的多任務(wù),在Sever端專門負(fù)責(zé)監(jiān)控外部事件和隨之的消息傳遞和分 發(fā),Client完成消息的處理,各個Client之間互不干擾和影響。采用這種方法實(shí)現(xiàn) 多任務(wù)支持的有Microwindows的Nano- x方案和MiniGUI,但兩種GUI實(shí)現(xiàn)的機(jī)制有很大差別,MicroWindows為了追求和X Window的兼容,采用了傳統(tǒng)的基于Unix套接字通訊方式的C/S系統(tǒng)結(jié)構(gòu),這樣大量的 數(shù)據(jù)在客戶/內(nèi)核/服務(wù)器之間傳遞,增加了系統(tǒng)負(fù)荷,占用了更多系統(tǒng)資源,降低 了系統(tǒng)的圖形效率,并不適應(yīng)于CPU速度較慢和系統(tǒng)資源有限的一般嵌入式場合。而 MiniGUi吸取了Microwindows的經(jīng)驗(yàn),采用了獨(dú)特的體系結(jié)構(gòu),它的最初版本采用線 程機(jī)制來實(shí)現(xiàn)C/S結(jié)構(gòu),這樣所有的應(yīng)用程序都運(yùn)行在同一個地址空間,大大提高了 程序之間的通信效率,但這種結(jié)構(gòu)也導(dǎo)致了系統(tǒng)整體的脆弱,如果某個線程因?yàn)榉?法的數(shù)據(jù)訪問而終止運(yùn)行,整個進(jìn)程都將受到影響,不過,這種體系結(jié)構(gòu)對關(guān)鍵的 實(shí)時控制系統(tǒng)來說,還是非常適合的,后期發(fā)展的MiniGUI- Lite版本則作了一些改進(jìn),在獨(dú)立多進(jìn)程和系統(tǒng)效率之間作了一些綜合,采用套接 字和共享內(nèi)存結(jié)合的方式支持多進(jìn)程,并且提供前后臺進(jìn)程的切換,通過共享內(nèi)存 機(jī)制提供全局資源的共享,以便減少實(shí)際內(nèi)存的消耗,但好像MiniGUI的圖形引擎不 是直接建立在內(nèi)核framebuffer驅(qū)動上,而要由如Libggi或Svgalib等更高一級的圖 形庫支持,并且由于MiniGUI采用了獨(dú)特的接口設(shè)計(jì),其應(yīng)用程序的可移植性很差, 而 MicroWindows的Nano-x方案則采用 X Window的兼容接口設(shè)計(jì),大大方便了許多基于X Window的應(yīng)用程序的移植和代碼復(fù)用。 o 采用GUI上下文共享的方法 通常在單任務(wù)GUI基礎(chǔ)上開發(fā)圖形界面應(yīng)用有如下圖左邊的系統(tǒng)流程, [pic] 應(yīng)用程序通過調(diào)用GUI的API實(shí)現(xiàn)相應(yīng)功能,而這些函數(shù)有自己的上下文,并且這些上下 文主要是通過數(shù)據(jù)空間的形式(data & BSS)來保持的。由于消息系統(tǒng)的同步功能,如果在同一進(jìn)程中創(chuàng)建并使用多個窗口,也 不會造成GUI的沖突。例如,可以在一個進(jìn)程中構(gòu)造記事本和計(jì)算器,兩個窗口都可以正 常地運(yùn)行,因?yàn)槿我粫r刻只有一個窗口接受消息隊(duì)列的消息分發(fā)并處理(使用或改變GU I上下文)——這種同步是由消息系統(tǒng)來保證的。假如把GUI使用的上下文和應(yīng)用其它部分 的上下文分開,一個應(yīng)用完全是可以正常運(yùn)行的。如果把這種方法應(yīng)用到多任務(wù)的系統(tǒng) ,如果各個任務(wù)獨(dú)有自己的GUI上下文,則不能解決一些系統(tǒng)公共的設(shè)備例如鼠標(biāo)、鍵盤 、輸入法等事件的檢測、轉(zhuǎn)換、分派以及系統(tǒng)龐大等許多問...
IP2000網(wǎng)絡(luò)終端系統(tǒng)方案概要設(shè)計(jì)(doc)
[下載聲明]
1.本站的所有資料均為資料作者提供和網(wǎng)友推薦收集整理而來,僅供學(xué)習(xí)和研究交流使用。如有侵犯到您版權(quán)的,請來電指出,本站將立即改正。電話:010-82593357。
2、訪問管理資源網(wǎng)的用戶必須明白,本站對提供下載的學(xué)習(xí)資料等不擁有任何權(quán)利,版權(quán)歸該下載資源的合法擁有者所有。
3、本站保證站內(nèi)提供的所有可下載資源都是按“原樣”提供,本站未做過任何改動;但本網(wǎng)站不保證本站提供的下載資源的準(zhǔn)確性、安全性和完整性;同時本網(wǎng)站也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。
4、未經(jīng)本網(wǎng)站的明確許可,任何人不得大量鏈接本站下載資源;不得復(fù)制或仿造本網(wǎng)站。本網(wǎng)站對其自行開發(fā)的或和他人共同開發(fā)的所有內(nèi)容、技術(shù)手段和服務(wù)擁有全部知識產(chǎn)權(quán),任何人不得侵害或破壞,也不得擅自使用。
我要上傳資料,請點(diǎn)我!
管理工具分類
ISO認(rèn)證課程講義管理表格合同大全法規(guī)條例營銷資料方案報(bào)告說明標(biāo)準(zhǔn)管理戰(zhàn)略商業(yè)計(jì)劃書市場分析戰(zhàn)略經(jīng)營策劃方案培訓(xùn)講義企業(yè)上市采購物流電子商務(wù)質(zhì)量管理企業(yè)名錄生產(chǎn)管理金融知識電子書客戶管理企業(yè)文化報(bào)告論文項(xiàng)目管理財(cái)務(wù)資料固定資產(chǎn)人力資源管理制度工作分析績效考核資料面試招聘人才測評崗位管理職業(yè)規(guī)劃KPI績效指標(biāo)勞資關(guān)系薪酬激勵人力資源案例人事表格考勤管理人事制度薪資表格薪資制度招聘面試表格崗位分析員工管理薪酬管理績效管理入職指引薪酬設(shè)計(jì)績效管理績效管理培訓(xùn)績效管理方案平衡計(jì)分卡績效評估績效考核表格人力資源規(guī)劃安全管理制度經(jīng)營管理制度組織機(jī)構(gòu)管理辦公總務(wù)管理財(cái)務(wù)管理制度質(zhì)量管理制度會計(jì)管理制度代理連鎖制度銷售管理制度倉庫管理制度CI管理制度廣告策劃制度工程管理制度采購管理制度生產(chǎn)管理制度進(jìn)出口制度考勤管理制度人事管理制度員工福利制度咨詢診斷制度信息管理制度員工培訓(xùn)制度辦公室制度人力資源管理企業(yè)培訓(xùn)績效考核其它
精品推薦
下載排行
- 1社會保障基礎(chǔ)知識(ppt) 16695
- 2安全生產(chǎn)事故案例分析(ppt 16695
- 3行政專員崗位職責(zé) 16695
- 4品管部崗位職責(zé)與任職要求 16695
- 5員工守則 16695
- 6軟件驗(yàn)收報(bào)告 16695
- 7問卷調(diào)查表(范例) 16695
- 8工資發(fā)放明細(xì)表 16695
- 9文件簽收單 16695
- 10跟我學(xué)禮儀 16695