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