freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

windows程序運(yùn)行于linux系統(tǒng)的技術(shù)(編輯修改稿)

2025-08-26 04:46 本頁面
 

【文章內(nèi)容簡介】 能夠利用進(jìn)程間的socket和pipe通信機(jī)制為Windows客戶進(jìn)程提供其正確運(yùn)行所必需的WindowsAPI調(diào)用,是由于它為Windows客戶進(jìn)程提供了遠(yuǎn)地過程調(diào)用(Remote ProcedureCall,RPC) ,即跨進(jìn)程的系統(tǒng)調(diào)用,其實質(zhì)就是把Windows客戶進(jìn)程和動態(tài)鏈接庫原本對Windows內(nèi)核所做的系統(tǒng)調(diào)用翻譯成對Linux內(nèi)核的系統(tǒng)調(diào)用。由于跨進(jìn)程的系統(tǒng)調(diào)用至少涉及兩次Linux系統(tǒng)的進(jìn)程調(diào)度與切換,所以難免會帶來一定的時間延遲和性能損失。圖3 Wine的系統(tǒng)結(jié)構(gòu)框圖在本質(zhì)上,Wine服務(wù)進(jìn)程是在用戶空間運(yùn)行的Linux進(jìn)程,但它參與了對Windows進(jìn)程及相關(guān)資源的管理與服務(wù),成為所有Windows進(jìn)程的核心與樞紐。Wine服務(wù)進(jìn)程如同是在Linux用戶空間形成的一個虛擬的“Windows內(nèi)核”,構(gòu)成了對Linux內(nèi)核的補(bǔ)充。這樣做的原因在于Linux內(nèi)核與Windows內(nèi)核之間存在先天的差異,兩者提供不同的系統(tǒng)調(diào)用界面。在不修改Linux內(nèi)核的前提下,只能在Linux內(nèi)核外即用戶空間對兩個內(nèi)核的差異進(jìn)行補(bǔ)償以使Windows進(jìn)程能夠在Linux系統(tǒng)中運(yùn)行,概括地說就是“核內(nèi)差異核外補(bǔ)”。由于Wine是一款免費授權(quán)的開源軟件,可以在不修改Linux內(nèi)核源代碼的前提下運(yùn)行非開源的Windows二進(jìn)制可執(zhí)行程序,不同于一般的虛擬機(jī),也不存在基于CPU機(jī)器指令仿真的性能損失問題,所以受到了廣大用戶的青睞,為Linux拓展桌面應(yīng)用領(lǐng)域做出了重要貢獻(xiàn)。已經(jīng)有幾家公司,如Linspire(前身為Lindows)、CodeWeaver和Xandros等,在推出基于Wine的產(chǎn)品。在實踐中,Wine已能仿真大部分WindowsAPI和運(yùn)行大部分Windows應(yīng)用程序,但仍存在許多問題:Wine本身需要不斷改進(jìn),以仿真更多的WindowsAPI,包括一些未被文檔化的API函數(shù)。Wine仿真的實質(zhì)是在異構(gòu)的操作系統(tǒng)之間利用RPC機(jī)制來完成系統(tǒng)調(diào)用的轉(zhuǎn)化,難免會增加進(jìn)程調(diào)度頻率,帶來性能上的損失。許多系統(tǒng)調(diào)用是粒度很大的“宏”操作,有時難以高效地實現(xiàn)某些微妙的機(jī)制,難以貼切地翻譯另一組系統(tǒng)調(diào)用,以至于Windows應(yīng)用程序在Linux上運(yùn)行時會出現(xiàn)不同于在Windows上運(yùn)行的效果。Wine只是在用戶空間為Windows應(yīng)用程序營造了一個運(yùn)行環(huán)境,卻沒有深入Linux內(nèi)核提供對Windows設(shè)備驅(qū)動程序的支持,而有些Windows應(yīng)用程序是與特定的設(shè)備驅(qū)動模塊配套運(yùn)行的,在Linux未能提供相應(yīng)設(shè)備驅(qū)動的情況下,Wine無法支持該程序在Linux下運(yùn)行。某些特殊的Windows應(yīng)用程序是繞過WindowsAPI實現(xiàn)的,因而無法借助Wine投入Linux環(huán)境中運(yùn)行。為此,需要突破Wine所遵循的“核內(nèi)差異核外補(bǔ)”的原則,對Linux內(nèi)核加以擴(kuò)充,使其也能支持Windows應(yīng)用程序和設(shè)備驅(qū)動程序,成為一個“兼容內(nèi)核”。3. 4 跨平臺編譯運(yùn)行Windows應(yīng)用程序可以借助工具軟件的支持,在Linux系統(tǒng)中編譯運(yùn)行。這種技術(shù)在Wine中也得到了實現(xiàn),Linux程序員可以借助Wine所提供的兼容WindowsAPI的函數(shù)庫Winelib(即Wine SDK) ,對一些Windows應(yīng)用程序的源代碼不做修改或作少量修改后,在Linux系統(tǒng)中編譯生成ELF格式的可執(zhí)行文件或鏈接文件。這種方法的技術(shù)原理和API仿真的技術(shù)原理是相通的,所以這種方法也具有前面所述的關(guān)于API仿真的技術(shù)局限性,這種局限性只能通過修改Linux內(nèi)核加以克服。3. 5 修改Linux內(nèi)核API仿真的技術(shù)局限性源于其所遵循的“核內(nèi)差異核外補(bǔ)”的原則。為此,需要對Linux內(nèi)核加以擴(kuò)充,使其也能支持Windows應(yīng)用程序和設(shè)備驅(qū)動程序,成為一個“兼容內(nèi)核”,即實現(xiàn)“核內(nèi)差異核內(nèi)補(bǔ)”。這是解決問題的根本辦法,但開發(fā)Linux兼容內(nèi)核的難度和工作量較大,目前還沒有完全實現(xiàn)。下面是幾種可供借鑒的技術(shù)成果和技術(shù)方案。3. 5. 1 開源軟件Kernel2Win32這是一個旨在實現(xiàn)32位Windows操作系統(tǒng)內(nèi)核功能的項目。從總體上講, Kernel2Win32計劃把原來由Wine服務(wù)進(jìn)程提供的功能和機(jī)制移入Linux內(nèi)核中,從而提供比Wine更高效的RPC機(jī)制,來實現(xiàn)Windows系統(tǒng)調(diào)用在Linux內(nèi)核上的嫁接。目前已經(jīng)移入內(nèi)核的功能和機(jī)制包括進(jìn)程管理、進(jìn)程同步、文件操作和系統(tǒng)調(diào)用等。這些機(jī)制和功能的實現(xiàn)有一個共同的基礎(chǔ),即各種內(nèi)核對象及其句柄的實現(xiàn)。作為Linux的動態(tài)可加載模塊, Kernel2Win32僅支持Windows應(yīng)用程序,不支持Windows設(shè)備驅(qū)動程序,也不能動態(tài)加載Windows內(nèi)核模塊,所以這種技術(shù)方案仍然存在局限性。目前, Kernel2Win32的實現(xiàn)尚不完整,許多具體的設(shè)計方案還需要改進(jìn),離最終實用還相距甚遠(yuǎn)。3. 5. 2 開源軟件ReactOS這是仿照Windows開發(fā)的操作系統(tǒng)內(nèi)核項目,目的是兼容Windows應(yīng)用程序和設(shè)備驅(qū)動程序,常被稱為“開源的Windows內(nèi)核”。目前的版本支持絕大多數(shù)DOS和Windows命令,但在圖形應(yīng)用程序方面支持較弱,離實用階段還相差很遠(yuǎn)。雖然React OS內(nèi)核不等于Windows內(nèi)核,但其對于Windows設(shè)備驅(qū)動框架的實現(xiàn)、對于Windows系統(tǒng)調(diào)用界面和設(shè)備驅(qū)動支撐界面的實現(xiàn)、對于進(jìn)程管理和資源管理的實現(xiàn)等內(nèi)容,在開發(fā)Linux兼容內(nèi)核時可供借鑒,有些代碼可以直接加以利用。另外,從理論上講,可以借鑒RTLinux的設(shè)計思想,通過修改內(nèi)核代碼讓ReactOS運(yùn)行于Linux之上來運(yùn)行Windows程序。也可以借助虛擬機(jī)軟件讓ReactOS運(yùn)行于Linux之上來運(yùn)行Windows程序。3. 5. 3 開源軟件L
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1