日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 服務(wù)器 > 如何Linux系統(tǒng)上運(yùn)行Windows應(yīng)用程序

如何Linux系統(tǒng)上運(yùn)行Windows應(yīng)用程序

來源:程序員人生   發(fā)布時間:2014-03-01 10:10:41 閱讀次數(shù):2976次

Wine 是一個令人神往而且目標(biāo)遠(yuǎn)大的開放源代碼項(xiàng)目,它嘗試去解決在 Linux 上運(yùn)行 Windows 可執(zhí)行文件的復(fù)雜問題。盡管 Wine 不是一個新項(xiàng)目,但是,人們對 Linux 桌面的期望以及對 Linux 應(yīng)用程序的需求日益增加,使得它現(xiàn)在仍具有重要意義。本文對 Wine 進(jìn)行了介紹,并提出了幾種獲得 Wine 內(nèi)部操作經(jīng)驗(yàn)的途徑。

Wine 項(xiàng)目起始于 1993 年,它的根源可以追溯到 90 年代早期出現(xiàn)的用于 Unix 的 Dos 和 Windows 模擬器。Wine 項(xiàng)目最初是將 16 位的應(yīng)用程序移植到 Linux,而幾年之后,已可以在 Linux 上運(yùn)行 Microsoft Word 和 Excel。現(xiàn)在它有一百多萬行代碼。

人們一直認(rèn)為,在桌面上采用 Linux 的主要障礙是應(yīng)用程序不足。商用桌面應(yīng)用程序供應(yīng)商還不能確定他們是否應(yīng)該投入時間和精力將他們的 Windows 應(yīng)用程序移植到 Linux,他們基本上是在等待 Linux 大規(guī)模應(yīng)用于桌面。另一方面,Linux 需要應(yīng)用程序才能大規(guī)模應(yīng)用于桌面。這是一個經(jīng)典的先有雞還是先有蛋的問題,而 Wine 通過在 Linux 上運(yùn)行現(xiàn)有的 Windows 應(yīng)用程序而解決了這一問題。

Wine 能做什么

Wine 項(xiàng)目實(shí)際是一個二合一的項(xiàng)目。它們提供了一個名字叫做 Winelib 的開發(fā)工具包,用于將應(yīng)用程序從 Windows 移植到 Linux(和 Unix);它們還提供了一個程序加載器,讓 Windows 二進(jìn)制文件可以在 Unix 和類 Unix 系統(tǒng)中運(yùn)行。本文討論的主要是后者;在 參考資料中有關(guān)于 Winelib 的更多資料的鏈接。

Wine 程序加載器讓運(yùn)行于 x86 上的 Linux 和其他類 Unix 操作系統(tǒng)可以加載并運(yùn)行 Windows x86 可執(zhí)行文件 -- 不過那只是它要解決的問題的一部分。因?yàn)?Windows 可執(zhí)行文件總是會鏈接到其他庫,而這些庫是 Windows 操作系統(tǒng)的一部分(如本文稍后圖 1 中的 Dependency Walker 截圖中可以看到),Wine 還最大可能限度地實(shí)現(xiàn)了那些 Windows 內(nèi)部構(gòu)件,即 Linux 上通常所指的 Win32 API5。

雖然 Windows 和 Linux 有很大的不同,但是就基本的層次而言,與任何現(xiàn)代操作系統(tǒng)一樣,還是有很多類似之處的 -- 比較明顯的包括,對文件和目錄的支持,對同時運(yùn)行多個程序的支持,類似的用戶界面以及對多媒體的支持。

不是仿真器

據(jù) WineHQ的說法,“WINE 代表 Wine Is Not an Emulator(即,Wine 不是一個仿真器)。更確切地說,Wine 是 X 和 UNIX 之上對 Windows API 的一個開放源代碼實(shí)現(xiàn)。您可以認(rèn)為它是一個 Window 兼容層。Wine 不需要 Microsoft Windows,因?yàn)樗怯?100% 非 Microsoft 代碼構(gòu)成的另一個實(shí)現(xiàn)。但是它可以使用本機(jī)系統(tǒng) DLL,只要這些 DLL 可用。而且它可以讓您在 Linux 或者其他類 UNIX 操作系統(tǒng)之上運(yùn)行大部分 Windows 軟件。”

顯示了 callDLL.exe 的依賴,這個可執(zhí)行文件可以由本文提供的源代碼編譯得到。對一般的用戶而言,依賴的復(fù)雜度可能是驚人的,但對任何一個系統(tǒng)程序員來說都不是這樣,他們充分了解,哪怕是運(yùn)行一個最簡單的程序,操作系統(tǒng)也必須要做很多事情。

考慮可執(zhí)行文件的第一個依賴 -- 對 USER32.DLL 的依賴。在 Windows 中,一個 DLL 就是一個動態(tài)鏈接庫(dynamically linked library),類似于 Linux 中的一個共享對象(一個 .so 文件)。USER32.DLL 文件通常會由操作系統(tǒng)提供,位于 C:WINDOWSsystem32 或者 C:WINNTsystem32 目錄下。這個文件中包含了 Windows API 中用于用戶界面的函數(shù)實(shí)現(xiàn)。

我們的可執(zhí)行文件調(diào)用 USER32.DLL 中的一些函數(shù),USER32.DLL 然后去調(diào)用 NTDLL.DLL 中的其他函數(shù),如此繼續(xù)。這些函數(shù)大部分已經(jīng)由 Microsoft 文檔化 -- 但是還有很多沒有被文檔化。文檔的缺乏對 Wine 來說是一個極大的障礙,本文稍后將更詳細(xì)地討論這一問題。

現(xiàn)在讓我們來看我們的可執(zhí)行文件的第二個依賴 -- 對 SIMPLEDLL.DLL 的依賴。這個 DLL 是在編譯本文所附的源代碼時創(chuàng)建的。這個 DLL 中實(shí)現(xiàn)了一些特別簡單的函數(shù);它作為常見于安裝 CD 上的各種二進(jìn)制文件的例子被包括進(jìn)來。

如我們的例子所示,一般的 Windows 可執(zhí)行文件有兩種類型的依賴:一種是對操作系統(tǒng)提供的二進(jìn)制文件的依賴,另一種是對作為應(yīng)用程序一部分的二進(jìn)制文件的依賴。

還需要特別注意的是,DLL 以難于管理而聞名,即使是在產(chǎn)生它們的 Windows 操作系統(tǒng)中也是如此(參見 參考資料)。值得一提的是,Wine 團(tuán)隊(duì)成功地創(chuàng)建了一個可以在 Linux 上運(yùn)行很多商用 Windows 應(yīng)用程序的框架

當(dāng)前,開放源代碼的 Wine 項(xiàng)目有一個健壯的平臺來運(yùn)行 Windows 二進(jìn)制文件以及對 Win32 API 的部分實(shí)現(xiàn)。這個項(xiàng)目仍然處于最初的測試階段(alpha),有很多部分還沒有完成。盡管 Wine 提供了一些工具來幫助進(jìn)行配置、安裝以及運(yùn)行應(yīng)用程序,但是它們大部分都是面向程序員的,要讓非技術(shù)用戶也可以使用這些工具,還有很多事情需要去做。過去的 Corel 以及現(xiàn)在的 CodeWeavers 為此提供了很多幫助。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久九九精品久久 | 日韩在线视频免费观看 | 欧美亚洲专区 | 91精品国产91综合久久蜜臀 | 成人免费ⅴa | 亚洲国产二区 | 一级视频片| 久久精品在线视频 | 久日av| 韩日精品视频 | 久久草网站 | 人人精品| 日韩 欧美 综合 | 久久网av| 日本一区二区三区免费在线观看 | 国产精品123区 | 国产欧美日韩在线观看 | 久久黄视频 | 成人av片在线观看 | 国产日韩久久 | 国产精品免费网站 | 在线免费小视频 | 欧州一级毛片 | 精品国产一区二区三区四区四 | 天天综合精品 | 久久精品亚洲国产 | 亚洲福利网站 | 麻豆视频传媒入口 | 黄色网页免费看 | 黄色福利 | 精品美女久久久久久免费 | 美女视频国产 | 欧美视频一区二区在线观看 | 亚洲欧美日韩在线 | 精品国产乱码一区二区三区 | 精品国产免费久久久久久尖叫 | 国产又黄又爽又色在线视频播放 | 日日噜噜噜夜夜狠狠久久蜜桃 | 日韩欧美在线视频 | 一级不卡 | 不卡一区二区三区四区 |