基于CAR 構(gòu)件技術(shù)的智能掌上設(shè)備操作系統(tǒng)
緒論
本文引用地址:http://m.butianyuan.cn/article/90127.htm隨著通訊技術(shù)和計(jì)算機(jī)技術(shù)的飛速進(jìn)步,以PDA、智能手機(jī)為代表的智能掌上設(shè)備近年來得到了迅猛的發(fā)展。不同于一般的嵌入式設(shè)備,如今智能掌上設(shè)備的運(yùn)算能力也愈來愈強(qiáng)大,功能也越來越完善,因此,出現(xiàn)了許多面向智能掌上設(shè)備的操作系統(tǒng),以便能夠更好地支持應(yīng)用程序的運(yùn)行。智能掌上設(shè)備操作系統(tǒng)的基本原理與傳統(tǒng)的操作系統(tǒng)基本一致,但是由于掌上設(shè)備具有特殊應(yīng)用需求,所以它的設(shè)計(jì)又有許多獨(dú)特之處。智能掌上設(shè)備操作系統(tǒng)往往根據(jù)其功能,對(duì)系統(tǒng)進(jìn)行了最大程度的優(yōu)化,同時(shí)也采用了許多適合于移動(dòng)計(jì)算的新技術(shù),以便增強(qiáng)功能,提高性能。
隨著因特網(wǎng)時(shí)代的到來,應(yīng)用程序模型發(fā)生了很大的變化,于是提出來了基于軟件工廠的構(gòu)件化編程模型,帶來了應(yīng)用的多樣性以及生產(chǎn)力的提高。把構(gòu)件技術(shù)應(yīng)用在智能掌上設(shè)備操作系統(tǒng)中,給移動(dòng)計(jì)算的發(fā)展帶來了新的契機(jī),迎合了軟件發(fā)展的方向。本文以構(gòu)件技術(shù)為核心,分析了構(gòu)件化的優(yōu)勢(shì),闡述了由科泰世紀(jì)公司研究的一種典型的二進(jìn)制構(gòu)件技術(shù)———CAR (Caref ree Application Run - Time) 構(gòu)件技術(shù),結(jié)合基于該技術(shù)的國產(chǎn)嵌入式操作系統(tǒng)“和欣”,來對(duì)構(gòu)件化的智能掌上設(shè)備操作系統(tǒng)進(jìn)行了詳細(xì)分析。
智能掌上設(shè)備操作系統(tǒng)
智能掌上設(shè)備是對(duì)具有較強(qiáng)運(yùn)算能力的手持設(shè)備的統(tǒng)稱,主要包括了個(gè)人數(shù)字助理( PDA) , Smartphone (智能手機(jī)) ,以及具有復(fù)雜功能的電子書、掌上游戲機(jī)等。早期的掌上設(shè)備功能比較單一,且少有聯(lián)網(wǎng)功能。但是微處理器的運(yùn)算能力日益增強(qiáng),無線通訊技術(shù)也發(fā)展神速,使得如今的掌上設(shè)備在提供強(qiáng)大運(yùn)算能力的同時(shí),又提供了豐富的網(wǎng)絡(luò)功能。其中,智能手機(jī)是最為典型的智能掌上設(shè)備,它具有普通移動(dòng)電話的全部功能,同時(shí)又提供了PDA 的功能,而且可以通過電信運(yùn)營商的無線網(wǎng)絡(luò),實(shí)現(xiàn)電子郵件、上網(wǎng)瀏覽、網(wǎng)絡(luò)游戲等增值服務(wù),代表了智能掌上設(shè)備的發(fā)展方向。
本文所講述的智能掌上設(shè)備以智能手機(jī)為主,默認(rèn)已經(jīng)在硬件上支持了無線通訊功能。
如今市面上也有不少面對(duì)智能掌上設(shè)備的操作系統(tǒng)產(chǎn)品。其中比較有名的有Palm Source 的Palm OS ,微軟的Windows Mobile 系列, Symbian公司的Symbian OS ,以及多種嵌入式Linux。PalmOS 廣泛應(yīng)用在PDA 產(chǎn)品上面,如今也開始向智能手機(jī)領(lǐng)域發(fā)展。Windows Mobile 的界面和操作非常接近PC 機(jī)使用的Windows 系統(tǒng),使用方便,對(duì)用戶有很大的吸引力。Symbian OS 則是一個(gè)專門用在智能手機(jī)上的操作系統(tǒng),功能強(qiáng)大,如今已運(yùn)用在多款手機(jī)上面,變得非常成熟了。Linux 是一個(gè)開放源代碼的操作系統(tǒng),得到了許多廠商的支持。
在這里以智能手機(jī)為例,對(duì)智能掌上設(shè)備的結(jié)構(gòu)進(jìn)行初步分析。從主要的硬件上來講,智能手機(jī)分為兩個(gè)部分:通訊模塊和應(yīng)用處理模塊。一般來說,這兩個(gè)模塊是相對(duì)獨(dú)立的,通訊模塊用來實(shí)現(xiàn)基本的通訊功能,智能手機(jī)作為一個(gè)手機(jī)主要就靠它來體現(xiàn),它一般有一個(gè)獨(dú)立的CPU ,且具有獨(dú)立的通訊軟件,用來處理通信協(xié)議棧。應(yīng)用處理模塊用來完成除基本通訊功能之外的各種功能,比如存儲(chǔ)管理、多媒體播放等等,也有一個(gè)自己的CPU ,相對(duì)于通訊模塊來說,它的CPU 更加強(qiáng)勁一些。
本文所提及的智能手機(jī)操作系統(tǒng)以及各種應(yīng)用程序也就運(yùn)行在這個(gè)CPU 上面。應(yīng)用處理模塊和通訊模塊之間靠通訊控制模塊相連。結(jié)構(gòu)示意圖如圖1 所示。
CAR 構(gòu)件技術(shù)
構(gòu)件技術(shù)
隨著軟件復(fù)雜度的與日俱增,傳統(tǒng)的把整個(gè)軟件的源程序拿來靜態(tài)編譯的方法顯然不適合了。在這個(gè)前提下, 產(chǎn)生了軟件拼裝模式,把軟件分成一個(gè)個(gè)相對(duì)獨(dú)立的目標(biāo)代碼模塊, 稱之為構(gòu)件 。
軟件開發(fā)人員只需要做和自己相關(guān)的構(gòu)件,編譯通過,就能夠拿來和其他模塊組裝在一起使用了。通過裝卸實(shí)現(xiàn)某個(gè)功能的構(gòu)件,就可以實(shí)現(xiàn)對(duì)系統(tǒng)的靈活升級(jí)。
如今,已經(jīng)成熟且廣為使用的構(gòu)件技術(shù)有微軟的COM(Component Object Model) ,OMG 組織的CORBA (Common Object Request Broker Architecture) 等等,用它們生成的構(gòu)件都是基于二進(jìn)制目標(biāo)代碼的?,F(xiàn)在大行其道的Java 和. NET ,雖然生成的程序都是基于中間代碼的,但也處處體現(xiàn)著構(gòu)件技術(shù)的思想。在本文中,所提及的構(gòu)件都是指的二進(jìn)制構(gòu)件。
面向?qū)ο蠹夹g(shù)實(shí)現(xiàn)了軟件源代碼層次的復(fù)用,提高了軟件開發(fā)人員的生產(chǎn)率。構(gòu)件技術(shù)是對(duì)面向?qū)ο蠹夹g(shù)的深化,實(shí)現(xiàn)了二進(jìn)制層次上軟件的復(fù)用,進(jìn)一步提升了軟件開發(fā)的效率。根據(jù)構(gòu)件技術(shù),軟件系統(tǒng)可以拆分成相對(duì)獨(dú)立的構(gòu)件,構(gòu)件之間通過約定的接口進(jìn)行數(shù)據(jù)交換和信息傳遞。構(gòu)件可以用不同的語言編寫,只要符合一組二進(jìn)制規(guī)范即可,這樣大大提高了開發(fā)的靈活度。
CAR 構(gòu)件技術(shù)
CAR(Caref ree Application Run - Time) 構(gòu)件技術(shù)是面向構(gòu)件編程的編程模型,它規(guī)定了一組構(gòu)件間相互調(diào)用的標(biāo)準(zhǔn),使得二進(jìn)制構(gòu)件能夠自描述,能夠在運(yùn)行時(shí)動(dòng)態(tài)鏈接。微軟的COM 技術(shù)是廣為應(yīng)用的一種構(gòu)件技術(shù), CAR 兼容微軟的COM。但是和微軟COM 相比,CAR 刪除了COM中過時(shí)的約定,禁止用戶定義COM 的非自描述接口;完備了構(gòu)件及其接口的自描述功能,實(shí)現(xiàn)了對(duì)COM 的擴(kuò)展;對(duì)COM 的用戶界面進(jìn)行了簡化包裝,易學(xué)易用。
CAR 技術(shù)能夠動(dòng)態(tài)加載構(gòu)件,最大程度支持軟件的二進(jìn)制復(fù)用,進(jìn)行系統(tǒng)升級(jí)的時(shí)候也只需要升級(jí)相關(guān)的構(gòu)件即可,具有可靠性、容錯(cuò)性、安全性,代表了軟件工廠化生產(chǎn)的方向。
CAR 技術(shù)采用C/ C + + 語言來編寫構(gòu)件,所以生成的構(gòu)件直接是以目標(biāo)平臺(tái)的二進(jìn)制代碼運(yùn)行,相比J ava 、. NET 技術(shù)的中間代碼和虛擬機(jī)機(jī)制,在速度上占有明顯的優(yōu)勢(shì),更適合系統(tǒng)級(jí)構(gòu)件的編寫以及嵌入式系統(tǒng)中的應(yīng)用。
“和欣”操作系統(tǒng)簡介
“和欣”(英文名為Elastos) 是科泰世紀(jì)公司研制的一個(gè)完全面向構(gòu)件技術(shù)的操作系統(tǒng),基于靈活內(nèi)核,具有多進(jìn)程、多線程、搶占式、基于線程的多優(yōu)先級(jí)任務(wù)調(diào)度等特性。“和欣”里面集成了CAR構(gòu)件運(yùn)行環(huán)境,能對(duì)軟件構(gòu)件進(jìn)行充分的支持,且已經(jīng)廣泛地用在各種嵌入式領(lǐng)域中,特別是智能手機(jī)等掌上設(shè)備領(lǐng)域之中。
CAR 構(gòu)件技術(shù)在智能掌上設(shè)備操作系統(tǒng)中的應(yīng)用
智能掌上設(shè)備對(duì)構(gòu)件技術(shù)的需求
智能掌上設(shè)備在擁有較強(qiáng)的運(yùn)算功能的同時(shí),具有便攜性等特點(diǎn),通常為用戶隨身攜帶。隨著技術(shù)的進(jìn)步,集成了許多功能的掌上設(shè)備逐步取代了那些功能單一的設(shè)備。在新的環(huán)境下,用戶往往要求掌上設(shè)備在保持便攜性的同時(shí)能夠帶來更多的功能。所以, 針對(duì)智能掌上設(shè)備提出了下面的要求:
(1) 可以動(dòng)態(tài)加載應(yīng)用程序。動(dòng)態(tài)加載應(yīng)用程序是在因特網(wǎng)時(shí)代的需要,因?yàn)橹悄苷粕显O(shè)備的功能越來越多,不能像以前那樣由廠家把所有的功能都做好固定在里面,所以必須要求用戶能夠自己根據(jù)自己的興趣,有選擇地從網(wǎng)上下載應(yīng)用程序。
(2) 隨時(shí)和動(dòng)態(tài)地實(shí)現(xiàn)軟件升級(jí)。智能掌上設(shè)備的功能也是在不斷增強(qiáng)的,開發(fā)商不必為了添加部分功能而重新發(fā)布整套軟件,只需要升級(jí)部分的功能即可。
(3) 靈活的模塊結(jié)構(gòu),便于移植和裁減。因?yàn)檎粕显O(shè)備的配置可能差異非常之大,所以需要針對(duì)不同的硬件配置緊湊高效的系統(tǒng),且添加和刪除功能模塊也要相當(dāng)容易。
如果在操作系統(tǒng)中采用構(gòu)件技術(shù),能夠很好地解決上述問題。特別地,利用CAR 構(gòu)件技術(shù),把應(yīng)用程序按模塊劃分做成一個(gè)個(gè)構(gòu)件,能夠方便地實(shí)現(xiàn)網(wǎng)上下載,動(dòng)態(tài)加載,自動(dòng)升級(jí),且具有結(jié)構(gòu)靈活等特點(diǎn)。CAR 構(gòu)件的設(shè)計(jì)初衷,就是面向消費(fèi)類電子市場(chǎng),且實(shí)現(xiàn)用戶零維護(hù)的功能,這點(diǎn)從它的名字就可以看出來。下文以“和欣”操作系統(tǒng)為例,講解了CAR 構(gòu)件在智能掌上設(shè)備中的應(yīng)用方案。
智能掌上設(shè)備操作系統(tǒng)的結(jié)構(gòu)
為了能夠很好地支持構(gòu)件技術(shù),需要在操作系統(tǒng)內(nèi)部建立對(duì)構(gòu)件技術(shù)的支持。在“和欣”中,采用了完全構(gòu)件化的技術(shù)來搭建整個(gè)系統(tǒng)應(yīng)用框架,從操作系統(tǒng)底層就開始支持構(gòu)件機(jī)制,對(duì)智能掌上設(shè)備來說,形成了一個(gè)靈活而高效的解決方案。
圖2 描述的是一個(gè)采用GPRS 功能的智能手 機(jī)的軟件構(gòu)成圖。其中智能手機(jī)操作系統(tǒng)直接控制的是圖2 右邊的應(yīng)用模塊。從圖中可以看出,CAR 構(gòu)件平臺(tái)運(yùn)行在操作系統(tǒng)內(nèi)核之上,一方面,它與內(nèi)核聯(lián)系緊密,替內(nèi)核接管了負(fù)責(zé)整個(gè)系統(tǒng)中應(yīng)用程序運(yùn)行的任務(wù);另一方面,它又是一個(gè)相對(duì)獨(dú)立的模塊,這樣能夠方便地進(jìn)行移植,讓更多的系統(tǒng)都能運(yùn)行CAR 構(gòu)件,保持著CAR 構(gòu)件的軟件平臺(tái)無關(guān)性。CAR 構(gòu)件運(yùn)行平臺(tái)支持系統(tǒng)級(jí)和應(yīng)用級(jí)兩個(gè)層次的構(gòu)件的運(yùn)行。同時(shí),該系統(tǒng)也提供了一些函數(shù)庫,比如C 的庫函數(shù),在一定程度上兼容以前編寫的一些應(yīng)用軟件。另外,如今的智能手機(jī)都支持豐富的JAVA 應(yīng)用程序,所以該系統(tǒng)也提供了專門的構(gòu)件來運(yùn)行K- J ava 程序。
圖2 左邊的通訊模塊是相對(duì)獨(dú)立的一部分,雖然不由操作系統(tǒng)直接控制,但是通過它提供的一組通訊協(xié)議,可以對(duì)它進(jìn)行全方位的操作。打電話、發(fā)短信、收發(fā)電子郵件,都是由相應(yīng)的應(yīng)用構(gòu)件通過控制通訊模塊來完成的。從功能上來說,可以把GPRS 通訊模塊看成一個(gè)無線網(wǎng)卡,各個(gè)應(yīng)用構(gòu)件,就是通過這個(gè)無線網(wǎng)卡來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用的。
CAR 構(gòu)件運(yùn)行平臺(tái)
在“和欣”中,就是由CAR 構(gòu)件運(yùn)行平臺(tái)來提供對(duì)構(gòu)件運(yùn)行的支持。它讓系統(tǒng)中的各種構(gòu)件天衣無縫地搭配在一起,實(shí)現(xiàn)自己的功能,同時(shí)又針對(duì)掌上設(shè)備的硬件特點(diǎn)進(jìn)行了優(yōu)化,且提供給構(gòu)件的是完全的二進(jìn)制運(yùn)行環(huán)境,所以能夠保證系統(tǒng)的高效運(yùn)行。
每個(gè)構(gòu)件只關(guān)心自己的功能實(shí)現(xiàn),構(gòu)件之間的相互聯(lián)系由約定的接口來實(shí)現(xiàn) 。對(duì)于同一個(gè)進(jìn)程內(nèi)的構(gòu)件,由于共享同一個(gè)地址空間,其方法可以直接調(diào)用。但是,對(duì)于不同進(jìn)程的構(gòu)件,則必須通過代理構(gòu)件來實(shí)現(xiàn)。代理構(gòu)件由CAR 構(gòu)件運(yùn)行平臺(tái)動(dòng)態(tài)地生成,它可以看成是中間件的一個(gè)特例,既解決了跨進(jìn)程,甚至跨機(jī)器的構(gòu)件通信和方法調(diào)用,而且還提供了許多有用的特性。代理構(gòu)件能對(duì)構(gòu)件的運(yùn)行狀態(tài)進(jìn)行干預(yù)和控制,給系統(tǒng)提供了強(qiáng)大的安全保護(hù)機(jī)制,能對(duì)軟件的訪問權(quán)限進(jìn)行有效地控制,對(duì)于加密、解密、防黑客、防病毒的設(shè)計(jì)提供了必要的條件,為信息系統(tǒng)的安全性提供了堅(jiān)實(shí)的基礎(chǔ)。圖3 描述了CAR 構(gòu)件運(yùn)行平臺(tái)通過自動(dòng)生成代理構(gòu)件來對(duì)實(shí)際的構(gòu)件模塊進(jìn)行調(diào)用的模型。
系統(tǒng)構(gòu)件庫和應(yīng)用構(gòu)件庫
有了CAR 構(gòu)件平臺(tái),還必須具有完善的構(gòu)件庫,操作系統(tǒng)的功能才能真正發(fā)揮出來。根據(jù)實(shí)現(xiàn)的功能,一般把構(gòu)件庫分為系統(tǒng)構(gòu)件庫和應(yīng)用構(gòu)件庫兩大類。系統(tǒng)構(gòu)件庫與操作系統(tǒng)內(nèi)核聯(lián)系緊密,提供一些通用的功能供應(yīng)用程序調(diào)用,是應(yīng)用程序的必要支持。應(yīng)用構(gòu)件庫里的構(gòu)件與用戶直接進(jìn)行交互,用來實(shí)現(xiàn)智能掌上設(shè)備里的豐富的應(yīng)用功能。
“和欣”提供了一套全面的系統(tǒng)構(gòu)件庫,這些構(gòu)件庫在智能掌上設(shè)備中不可缺少,為各種應(yīng)用構(gòu)件的運(yùn)行提供了完整的支持。該構(gòu)件庫分為以下幾類:
圖形系統(tǒng)構(gòu)件庫:提供圖形用戶操作界面,因?yàn)橛糜谡粕显O(shè)備,所以是一套小巧、緊湊的圖形系統(tǒng)。
設(shè)備驅(qū)動(dòng)構(gòu)件庫:用于各種輸入輸出設(shè)備的驅(qū)動(dòng),主要包括LCD 顯示屏驅(qū)動(dòng)、觸摸屏驅(qū)動(dòng)、聲卡驅(qū)動(dòng)、攝像頭驅(qū)動(dòng)等等。
文件系統(tǒng)構(gòu)件庫: 提供對(duì)各種文件系統(tǒng)的支持,尤其是對(duì)采用最為廣泛的FAT 文件系統(tǒng)的支持。還提供了對(duì)FLASH 存儲(chǔ)器等掌上設(shè)備最常用的外存儲(chǔ)器的支持。
網(wǎng)絡(luò)系統(tǒng)構(gòu)件庫:用于對(duì)TCP/ IP 協(xié)議的網(wǎng)絡(luò)支持,針對(duì)無線網(wǎng)絡(luò)的特性,對(duì)協(xié)議進(jìn)行了優(yōu)化。同時(shí)提供了常用的網(wǎng)絡(luò)應(yīng)用工具。
CAR 構(gòu)件對(duì)自動(dòng)下載運(yùn)行機(jī)制的支持
自動(dòng)下載運(yùn)行機(jī)制是構(gòu)件技術(shù)在智能掌上設(shè)備中的典型應(yīng)用。在傳統(tǒng)的計(jì)算機(jī)中,往往要求事先把應(yīng)用程序安裝在操作系統(tǒng)中,然后才能正常使用它。這種安裝機(jī)制比較繁瑣,而且那些對(duì)計(jì)算機(jī)的操作不是很熟練的人們,使用起來有一定的難度。智能掌上設(shè)備作為一種消費(fèi)類電子產(chǎn)品,面向的是更為普通的消費(fèi)者,所以要求對(duì)它的操作更加簡化??紤]到這一點(diǎn),方便地從網(wǎng)上獲取應(yīng)用程序構(gòu)件,無需安裝就自動(dòng)運(yùn)行,就成了CAR 構(gòu)件的一個(gè)重要特性。
CAR 構(gòu)件都提供了一個(gè)屬性u(píng)unm(UniversalUnique Name) ,用來標(biāo)識(shí)構(gòu)件在互聯(lián)網(wǎng)上的地址。uunm 是唯一存在的,所以每個(gè)構(gòu)件都有一個(gè)唯一的互聯(lián)網(wǎng)地址。CAR 構(gòu)件無需在應(yīng)用程序啟動(dòng)的時(shí)候就裝載到內(nèi)存之中,只有當(dāng)用到它的時(shí)候,才會(huì)動(dòng)態(tài)加載。需要加載某個(gè)CAR 構(gòu)件的時(shí)候,CAR 構(gòu)件環(huán)境會(huì)得到這個(gè)構(gòu)件的uunm。根據(jù)uunm ,就能從網(wǎng)上把這個(gè)構(gòu)件下載下來,然后開始自動(dòng)運(yùn)行。
同時(shí),由于通過網(wǎng)絡(luò)進(jìn)行構(gòu)件下載,按目前的網(wǎng)絡(luò)速度需要消耗一定的時(shí)間,所以自動(dòng)下載運(yùn)行機(jī)制針對(duì)效率問題進(jìn)行了優(yōu)化。對(duì)于下載的構(gòu)件,系統(tǒng)會(huì)把它自動(dòng)放到本機(jī)的一個(gè)專用目錄當(dāng)中,該目錄稱作構(gòu)件緩存。下一次裝載這個(gè)構(gòu)件的時(shí)候,首先在構(gòu)件緩存中進(jìn)行尋找,如果有的話,就直接加載本機(jī)的這份拷貝,不用啟動(dòng)網(wǎng)絡(luò),大大加快了運(yùn)行的速度;如果沒有找到該構(gòu)件,則通過uunm從網(wǎng)上下載。當(dāng)緩存裝滿的時(shí)候,系統(tǒng)會(huì)根據(jù)一定的算法來清理其中的構(gòu)件。
CAR 構(gòu)件的自動(dòng)下載運(yùn)行機(jī)制,完全不用用戶干預(yù)而自動(dòng)執(zhí)行,方便了用戶的使用。此外,通過在構(gòu)件中加入相應(yīng)的數(shù)字簽名機(jī)制,解決了自動(dòng)下載運(yùn)行的安全性問題。
總結(jié)
構(gòu)件技術(shù)是今年來最為重要的軟件技術(shù)之一,促進(jìn)了軟件生產(chǎn)方式的飛躍,也帶來了軟件應(yīng)用模型的重大變化。智能掌上設(shè)備作為后PC 時(shí)代的一個(gè)標(biāo)志性嵌入式設(shè)備,完美地結(jié)合了計(jì)算機(jī)技術(shù)和無線通訊技術(shù),且普及程度越來越高。作為當(dāng)今的構(gòu)件技術(shù)的一個(gè)典型代表,CAR構(gòu)件技術(shù)具有自動(dòng)運(yùn)行下載等眾多優(yōu)勢(shì),用在智能掌上設(shè)備操作系統(tǒng)之中,給用戶帶來了種種新特性,也給智能掌上設(shè)備的發(fā)展帶來了新的契機(jī)。
評(píng)論