999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)的研究與設(shè)計(jì)

2008-12-31 00:00:00曹天杰
電腦知識(shí)與技術(shù) 2008年29期

摘要:Wine虛擬操作系統(tǒng)為Windows應(yīng)用程序在Linux上運(yùn)行提供了一個(gè)很好的虛擬環(huán)境。ElAura是類(lèi)似于Wine的虛擬操作系統(tǒng),它是Elastos操作系統(tǒng)在Linux上的虛擬環(huán)境。文章在分析Wine系統(tǒng)的基礎(chǔ)了,針對(duì)Elastos操作系統(tǒng)的特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)了基于共享內(nèi)存和動(dòng)態(tài)模塊加載方式結(jié)合的內(nèi)核對(duì)象服務(wù)系統(tǒng)。實(shí)驗(yàn)結(jié)果表明該文提出的內(nèi)核對(duì)象服務(wù)系統(tǒng)對(duì)應(yīng)用程序的響應(yīng)時(shí)間明顯少于Wine Server的響應(yīng)時(shí)間。

關(guān)鍵詞:ElAura;Linux;Elastos;內(nèi)核對(duì)象服務(wù)

中圖分類(lèi)號(hào):TP316 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)29-0429-02

The Study of the ElAura Kernel Object Service System

ZHANG Qi, CAO Tian-jie, CHEN Dai

(Department of Computer Science and Technology,China University of Mining Technology,Xuzhou 221008,China)

Abstract: Wine is a virtual operation system of Windows on Linux.ElAura is also a virtual operation system of Elastos on Linux that similar to Wine. In this paper, a sharememory and dinamic module mechanism of ElAura Server is proposed. A test result shows ElAura Server has a better performance than Wine Server, and proves the mechanism is an efficient approach for embeded system.

Key words: ElAura; Linux; Elastos; kernel object service

1 引言

虛擬操作系統(tǒng)是虛擬機(jī)技術(shù)中的一種,它不是硬件上的虛擬而是操作系統(tǒng)級(jí)別的虛擬,它在新的操作系統(tǒng)中虛擬出原來(lái)操作系統(tǒng)的運(yùn)行環(huán)境,使得編譯出的應(yīng)用程序在不用修改代碼的情況下,在新的操作系統(tǒng)上運(yùn)行,Wine是這種虛擬技術(shù)的代表。Wine在Windows和Linux之間起到軟件兼容層的作用,它是基于對(duì)Windows API的仿真。Wine作為一種虛擬技術(shù)為用戶(hù)提供了一種更為方便的方法,并且它在系統(tǒng)資源利用和運(yùn)行效率上都是一種更好的選擇。但是由于目前WINE自身所具有的許多局限性因素,如運(yùn)行效率、系統(tǒng)響應(yīng)時(shí)間等問(wèn)題,限制了它的應(yīng)用,如何保證Wine擁有更高的運(yùn)行效率和更好的響應(yīng)時(shí)間是當(dāng)前該領(lǐng)域研究的熱點(diǎn)問(wèn)題。

和欣操作系統(tǒng)(Elastos)是采用面向構(gòu)件技術(shù)、具有靈活內(nèi)核結(jié)構(gòu)的網(wǎng)絡(luò)操作系統(tǒng),它在操作系統(tǒng)層提供了對(duì)構(gòu)件運(yùn)行環(huán)境的支持[1]。它利用CAR(Component Assembly Runtime)構(gòu)件技術(shù)解決了長(zhǎng)期困擾系統(tǒng)結(jié)構(gòu)設(shè)計(jì)者的大內(nèi)核和微內(nèi)核在性能、效率與穩(wěn)定性、安全性之間不能兩全其美的矛盾[4]。為了使和欣操作系統(tǒng)有更好的應(yīng)用發(fā)展,必須要在其他操作系統(tǒng)上運(yùn)行它的應(yīng)用程序,實(shí)現(xiàn)和欣操作系統(tǒng)的虛擬環(huán)境。ElAura是在Linux上實(shí)現(xiàn)的Elastos虛擬操作系統(tǒng),它讓Elastos應(yīng)用程序無(wú)需重新編譯就可以跨平臺(tái)運(yùn)行在Linux操作系統(tǒng)上。本文在分析Wine技術(shù)的基礎(chǔ)上針對(duì)Wine虛擬操作系統(tǒng)的缺點(diǎn),根據(jù)Elastos操作系統(tǒng)的特點(diǎn)對(duì)Wine中的服務(wù)進(jìn)程模型進(jìn)行重新構(gòu)架,設(shè)計(jì)了一種更加高效的內(nèi)核對(duì)象服務(wù)系統(tǒng),很好的滿足了系統(tǒng)的需求。

2內(nèi)核對(duì)象服務(wù)系統(tǒng)結(jié)構(gòu)

2.1 Wine系統(tǒng)結(jié)構(gòu)

Wine 的系統(tǒng)結(jié)構(gòu)類(lèi)似于Windows NT ,Windows NT API函數(shù)調(diào)用主要分為 USER/GDI調(diào)用和KERNEL調(diào)用。它們分別位于WindowsNT的USER32.DLL/GDI32.DLL和KERNEL32.DLL中,這三個(gè)DLL是其它所有DLL的基礎(chǔ)。Wine為了運(yùn)行Windows應(yīng)用程序,必須模擬出Windows API,這些API函數(shù)在Windows上是以DLL格式存在的,而在Wine上是以和DLL對(duì)應(yīng)的Linux共享庫(kù)格式存在的,即把Windows下的DLL格式映射為L(zhǎng)inux下的ELF格式的共享鏈接文件。Wine中還實(shí)現(xiàn)了另一個(gè)核心-NTDLL,許多 KERNEL32等的特性都是通過(guò) NTDLL 來(lái)實(shí)現(xiàn)的。

圖1顯示了Wine虛擬操作系統(tǒng)的構(gòu)架。為了禰補(bǔ)Windows和Linux操作系統(tǒng)內(nèi)核之間的差異,Wine必須提供三個(gè)部分的功能:(1) 把Windows的PE格式的應(yīng)用程序加載進(jìn)Linux運(yùn)行空間環(huán)境,并提供各種函數(shù)的鏈接。(2) 在Linux上實(shí)現(xiàn)Windows的動(dòng)態(tài)鏈接庫(kù)(USER32.DLL/GDI32.DLL等),向Windows應(yīng)用程序Windows API調(diào)用。(3)對(duì)兩個(gè)操作系統(tǒng)內(nèi)核差異進(jìn)行補(bǔ)充的機(jī)制,它在Linux上提供了對(duì)Windows進(jìn)程、線程的調(diào)度管理。

服務(wù)進(jìn)程Wine server的存在就是為了補(bǔ)充兩個(gè)操作系統(tǒng)的內(nèi)核差異,它在Linux上提供了對(duì)Windows進(jìn)程、線程的調(diào)度管理以及進(jìn)程之間的通信等問(wèn)題。在Wine的實(shí)現(xiàn)中,Wine server是一個(gè)Linux進(jìn)程,它獨(dú)立于具體的Windows應(yīng)用,為了得到它的服務(wù),所有的Windows應(yīng)用在運(yùn)行之前都要建立起與Wine server服務(wù)進(jìn)程的連接,這是通過(guò)socket和pipe實(shí)現(xiàn)的。Wine在啟動(dòng)某個(gè)具體Windows應(yīng)用之前就應(yīng)存在,如果不存在,則作業(yè)裝入程序Loader會(huì)先啟動(dòng)服務(wù)進(jìn)程運(yùn)行,然后Windows應(yīng)用程序再與之建立連接。Wine server服務(wù)進(jìn)程對(duì)于Windows進(jìn)程的管理并不與Linux內(nèi)核所提供的管理沖突,而是對(duì)Linux內(nèi)核的補(bǔ)充。因?yàn)長(zhǎng)inux內(nèi)核所提供的是對(duì)Linux進(jìn)程/線程的管理,而Windows應(yīng)用所期待的是對(duì)于Windows進(jìn)程/線程的管理。Wine server的存在就是要在Linux核外對(duì)Linux和Windows內(nèi)核的差異進(jìn)行補(bǔ)充。所以,服務(wù)進(jìn)程只提供其中有差異的部分。從上面的分析可以知道,由于Wine虛擬操作系統(tǒng)使用了服務(wù)進(jìn)程的方式對(duì)Windows和Linux內(nèi)核之間的差異進(jìn)行補(bǔ)充。運(yùn)行在Wine上的Windows應(yīng)用程序每次進(jìn)行系統(tǒng)調(diào)用時(shí)都要兩次跨進(jìn)程空間,文件間操作要進(jìn)行跨進(jìn)程的Handle復(fù)制,對(duì)于文件的遺傳方式以及對(duì)設(shè)備驅(qū)動(dòng)等實(shí)現(xiàn)方式,這些實(shí)現(xiàn)機(jī)制都導(dǎo)致了Wine系統(tǒng)的效率很慢。

2.2ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)

2.2.1 Elastos操作系統(tǒng)簡(jiǎn)介

和欣操作系統(tǒng)是面向因特網(wǎng)時(shí)代的構(gòu)件化操作系統(tǒng)。它是一個(gè)基于靈活內(nèi)核的系統(tǒng),在實(shí)現(xiàn)和設(shè)計(jì)過(guò)程中,和欣操作系統(tǒng)采用了CAR面向構(gòu)件的技術(shù)方法。在靈活內(nèi)核模型中,可以使用系統(tǒng)擴(kuò)展軟件對(duì)操作系統(tǒng)功能進(jìn)行動(dòng)態(tài)擴(kuò)充。結(jié)構(gòu)如圖2所示。

和欣操作系統(tǒng)結(jié)構(gòu)主要包括以下幾個(gè)部分:硬件抽象層(對(duì)硬件的結(jié)構(gòu)進(jìn)行屏蔽,為該層之上提供統(tǒng)一的接口);內(nèi)核管理層;任務(wù)/進(jìn)程管理(對(duì)進(jìn)程進(jìn)行,負(fù)責(zé)支持多進(jìn)程,多線程以及進(jìn)程之間的通信);系統(tǒng)服務(wù)層(包括文件系統(tǒng)、設(shè)備驅(qū)動(dòng)、網(wǎng)絡(luò)支持系統(tǒng)和圖形系統(tǒng)等,它們都是以動(dòng)態(tài)鏈接庫(kù)的形式存在)。系統(tǒng)服務(wù)層包括了構(gòu)件支持模塊,它提供了對(duì)CAR構(gòu)件的運(yùn)行支持,實(shí)現(xiàn)了構(gòu)件運(yùn)行環(huán)境[4]。

2.2.2 ElAura內(nèi)核服務(wù)系統(tǒng)

由于Elastos操作系統(tǒng)是基于靈活內(nèi)核構(gòu)架,采用CAR構(gòu)件技術(shù)實(shí)現(xiàn)的操作系統(tǒng),所以在設(shè)計(jì)ElAura虛擬操作系統(tǒng)的時(shí)候可以充分利用這個(gè)特點(diǎn),特別是在設(shè)計(jì)內(nèi)核對(duì)象服務(wù)系統(tǒng)的時(shí)候我們可以對(duì)WINE的設(shè)計(jì)進(jìn)行改進(jìn)。因?yàn)镋lastos系統(tǒng)是面向嵌入式系統(tǒng)的,我們又充分考慮了Elastos應(yīng)用程序在嵌入式Linux上的應(yīng)用。所以在ElAura中的內(nèi)核服務(wù)系統(tǒng)采用了動(dòng)態(tài)模塊加載和內(nèi)核共享內(nèi)存結(jié)合的方式。結(jié)構(gòu)如圖3所示。

如圖3所示,當(dāng)Windows的應(yīng)用程序需要訪問(wèn)文件操作API時(shí),由于文件操作是一種效率很低的操作,我們利用共享內(nèi)存的方式把它放進(jìn)Linux共享內(nèi)存區(qū)域,這樣當(dāng)多個(gè)應(yīng)用程序需要進(jìn)行文件操作時(shí),就不需要跨進(jìn)程,可以直接訪問(wèn)共享內(nèi)存空間的程序和數(shù)據(jù),對(duì)于文件的Handle更不需要跨進(jìn)程的復(fù)制。這種20%的代碼完成了系統(tǒng)調(diào)用方面80%的工作,所以這對(duì)系統(tǒng)的效率特別是在嵌入式這種系統(tǒng)資源匱乏的情況下特別重要。

內(nèi)核對(duì)象服務(wù)系統(tǒng)中的其它內(nèi)核對(duì)象以動(dòng)態(tài)模塊的方式加載進(jìn)內(nèi)核,包括IModule、IKernel、IProcess、IThread、IMutex等等。如圖所示,內(nèi)核對(duì)象服務(wù)系統(tǒng)調(diào)用Linux內(nèi)核函數(shù)實(shí)現(xiàn)了Elastos中的內(nèi)核對(duì)象。使用動(dòng)態(tài)模塊的方式不需要重新編譯Linux內(nèi)核,便于隨時(shí)更新內(nèi)核對(duì)象服務(wù)系統(tǒng)模塊,提高了內(nèi)核對(duì)象服務(wù)系統(tǒng)靈活性和可移植性。

3 ElAura Server性能測(cè)試

本次測(cè)試主要針對(duì)ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)和Wine Server對(duì)應(yīng)用程序的響應(yīng)時(shí)間進(jìn)行測(cè)試。在測(cè)試前分別在ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)和Wine Server中各定義了一個(gè)新的文件系統(tǒng)調(diào)用ReadFile(),該系統(tǒng)調(diào)用從一個(gè)文件進(jìn)行讀,然后寫(xiě)到另一個(gè)文件。測(cè)試硬件環(huán)境為:CPU是賽揚(yáng)1.5G、內(nèi)存256M,硬盤(pán)80G。軟件環(huán)境為:操作系統(tǒng)是Red Hat Linux 9.0,內(nèi)核版本是2.4.20,編譯器是GNU-gcc。分別測(cè)試ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)和Elanix Server對(duì)用戶(hù)程序一百萬(wàn)次、二百萬(wàn)次、三百萬(wàn)次請(qǐng)求響應(yīng)時(shí)間。得到測(cè)試結(jié)果如表1所示。

結(jié)果顯示ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)的響應(yīng)時(shí)間明顯要小于Wine Server。文件的讀寫(xiě)操作使用內(nèi)存共享的方式,它不需要跨進(jìn)程操作,響應(yīng)用戶(hù)程序并不需要切換進(jìn)程上下文,直接到共享內(nèi)存中取數(shù)據(jù)。而且對(duì)于信號(hào)量、進(jìn)程管理等操作是通過(guò)Linux系統(tǒng)模塊的方式實(shí)現(xiàn)的,它的讀寫(xiě)是在內(nèi)核空間中進(jìn)行的,所以也不需要跨進(jìn)程。這種高效率的響應(yīng)時(shí)間可以滿足嵌入式系統(tǒng)的需求。

4 結(jié)束語(yǔ)

本課題在對(duì)Wine虛擬操作系統(tǒng)結(jié)構(gòu)和性能分析的基礎(chǔ)上,并根據(jù)Elastos操作系統(tǒng)基于靈活內(nèi)核、采用CAR構(gòu)件設(shè)計(jì)的特點(diǎn),在Linux上設(shè)計(jì)了Elastos的內(nèi)核對(duì)象服務(wù)系統(tǒng)。內(nèi)核服務(wù)服務(wù)系統(tǒng)采用了和Wine Server不同的構(gòu)架,它利用了共享內(nèi)存和Linux動(dòng)態(tài)模塊的方式。這兩種方式的實(shí)現(xiàn)使ElAura內(nèi)核對(duì)象服務(wù)系統(tǒng)的響應(yīng)時(shí)間遠(yuǎn)遠(yuǎn)小于Windows Server,很好的滿足了嵌入式系統(tǒng)的需求。

參考文獻(xiàn):

[1] 汪永紅,劉小春,張有為.嵌入式Linux下基于MiniGUI的GIS實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008(1-2):88-89.

[2] 李輝,陳榕.一種新型的編程模型CAR事件編程模型[J].計(jì)算機(jī)工程與應(yīng)用,2005(10):86-90.

[3] 胡天華.基于“和欣”靈活內(nèi)核的安全構(gòu)件模型[J].計(jì)算機(jī)應(yīng)用,25(9).

[4] 杜永文,何華燦,陳志成.和欣操作系統(tǒng)的靈活內(nèi)核技術(shù)[J].計(jì)算機(jī)工程與應(yīng)用,2004,40(32):106.

[5] Grimm R, Bershad B. Separating access control policy,enforcement and functionality in extensible systems[C].ACMTransactions on Computer Systems,2001:36-70.

主站蜘蛛池模板: 国产欧美日韩免费| 国产精品无码在线看| 亚洲婷婷在线视频| 欧美区一区| 国产黄视频网站| 亚洲成aⅴ人片在线影院八| 国产真实乱了在线播放| 在线观看无码a∨| 九九九精品成人免费视频7| 免费人成网站在线高清| 国内熟女少妇一线天| 欧美激情,国产精品| 无码免费的亚洲视频| 国国产a国产片免费麻豆| 韩国福利一区| 色婷婷综合在线| 国产区免费| 91精品久久久久久无码人妻| 午夜性刺激在线观看免费| 国产精品播放| 黄色福利在线| 福利视频久久| 久久精品无码一区二区国产区| 国产一区二区色淫影院| 日韩欧美国产精品| 欧美在线精品一区二区三区| 最近最新中文字幕在线第一页| 91色在线观看| 国产成熟女人性满足视频| 亚洲最大在线观看| 一级毛片基地| 免费毛片a| 国产男人的天堂| 亚洲第一极品精品无码| 精品久久久久久久久久久| 国产农村1级毛片| 欧美专区日韩专区| 亚洲第一精品福利| 久青草免费在线视频| 欧美五月婷婷| 亚洲无码日韩一区| 国产亚洲精久久久久久无码AV| 亚洲热线99精品视频| 福利片91| 国产亚洲欧美在线中文bt天堂 | 波多野结衣中文字幕一区| 成人伊人色一区二区三区| 亚洲VA中文字幕| 青青青视频91在线 | 国产精品香蕉在线观看不卡| 性色在线视频精品| 欧美a在线看| 国产97视频在线| 91精品国产91久无码网站| 91区国产福利在线观看午夜 | 久草网视频在线| 美女高潮全身流白浆福利区| 国产一二视频| 91系列在线观看| 国语少妇高潮| 欧美日韩另类在线| 91蜜芽尤物福利在线观看| 蜜臀AV在线播放| 欧美黄色网站在线看| 青青操国产视频| 伊人久久精品无码麻豆精品| 亚洲天堂啪啪| 日本欧美一二三区色视频| 欧美性色综合网| 三级毛片在线播放| 国产浮力第一页永久地址 | 日韩黄色精品| 免费高清a毛片| 色噜噜狠狠色综合网图区| 国产成人av一区二区三区| 国产国语一级毛片| 91精品aⅴ无码中文字字幕蜜桃| 欧美色图第一页| 中文字幕免费在线视频| 国产视频久久久久| 欧美a在线看| 88国产经典欧美一区二区三区|