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