當前位置:首頁 » 操作系統 » linux運行windows程序

linux運行windows程序

發布時間: 2022-05-10 20:08:51

linux下運行windows程序

要看你是什麼程序,要是只用了標准c庫的話重新編譯一變(windows下)就可用了,要是用了別的就需要移植了,要使用了GTK+和linux的腳本等等,只能重寫了。還有更悲劇的情況:如果你的linux的文件系統不支持windows的文件系統(老linux常見(redhat3.0))你練文件都看不見。就算支持NFS的linux文件到了windows下也會有很大的可能損壞。(這兩個系統支持的文件名的格式都不一樣,有的文件可能被覆蓋掉。)

⑵ 在Linux上如何運行 Windows應用程序 (1)

盡管 Wine 不是一個新項目,但是,人們對 Linux 桌面的期望以及對 Linux 應用程序的需求日益增加,使得它現在仍具有重要意義。本文對 Wine 進行了介紹,並提出了幾種獲得 Wine 內部操作經驗的途徑。 Wine 項目起始於 1993 年,它的根源可以追溯到 90 年代早期出現的用於 UNIX 的 DOS 和 Windows 模擬器。Wine 項目最初是將 16 位的應用程序移植到 Linux,而幾年之後,已可以在 Linux 上運行 Microsoft Word 和 Excel。現在它有一百多萬行代碼。 人們一直認為,在桌面上採用 Linux 的主要障礙是應用程序不足。商用桌面應用程序供應商還不能確定他們是否應該投入時間和精力將他們的 Windows 應用程序移植到 Linux,他們基本上是在等待 Linux 大規模應用於桌面。另一方面,Linux 需要應用程序才能大規模應用於桌面。這是一個經典的先有雞還是先有蛋的問題,而 Wine 通過在 Linux 上運行現有的 Windows 應用程序而解決了這一問題。 Wine 能做什麼Wine 項目實際是一個二合一的項目。它們提供了一個名字叫做 Winelib 的開發工具包,用於將應用程序從 Windows 移植到 Linux(和 Unix);它們還提供了一個程序載入器,讓 Windows 二進制文件可以在 Unix 和類 Unix 系統中運行。本文討論的主要是後者;在 參考資料中有關於 Winelib 的更多資料的鏈接。 Wine 程序載入器讓運行於 x86 上的 Linux 和其他類 Unix 操作系統可以載入並運行 Windows x86 可執行文件 -- 不過那隻是它要解決的問題的一部分。因為 Windows 可執行文件總是會鏈接到其他庫,而這些庫是 Windows 操作系統的一部分(如本文稍後圖 1 中的 Dependency Walker 截圖中可以看到),Wine 還最大可能限度地實現了那些 Windows 內部構件,即 Linux 上通常所指的 Win32 API5。 雖然Windows 和 Linux 有很大的不同,但是就基本的層次而言,與任何現代操作系統一樣,還是有很多類似之處的 -- 比較明顯的包括,對文件和目錄的支持,對同時運行多個程序的支持,類似的用戶界面以及對多媒體的支持。 不是模擬器據WineHQ的說法,「WINE 代表 Wine Is Not an Emulator(即,Wine 不是一個模擬器)。更確切地說,Wine 是 X 和 UNIX 之上對 Windows API 的一個開放源代碼實現。您可以認為它是一個 Window 兼容層。Wine 不需要 Microsoft Windows,因為它是由 100% 非 Microsoft 代碼構成的另一個實現。但是它可以使用本機系統 DLL,只要這些 DLL 可用。而且它可以讓您在 Linux 或者其他類 UNIX 操作系統之上運行大部分 Windows 軟體。」 顯示了 callDLL.exe 的依賴,這個可執行文件可以由本文提供的源代碼編譯得到。對一般的用戶而言,依賴的復雜度可能是驚人的,但對任何一個系統程序員來說都不是這樣,他們充分了解,哪怕是運行一個最簡單的程序,操作系統也必須要做很多事情。 考慮可執行文件的第一個依賴 -- 對 USER32.DLL 的依賴。在 Windows 中,一個 DLL 就是一個動態鏈接庫(dynamically linked library),類似於 Linux 中的一個共享對象(一個 .so 文件)。USER32.DLL 文件通常會由操作系統提供,位於 C:\WINDOWS\system32 或者 C:\WINNT\system32 目錄下。這個文件中包含了 Windows API 中用於用戶界面的函數實現。 我們的可執行文件調用 USER32.DLL 中的一些函數,USER32.DLL 然後去調用 NTDLL.DLL 中的其他函數,如此繼續。這些函數大部分已經由 Microsoft 文檔化 -- 但是還有很多沒有被文檔化。文檔的缺乏對 Wine 來說是一個極大的障礙,本文稍後將更詳細地討論這一問題。 現在讓我們來看我們的可執行文件的第二個依賴 -- 對 SIMPLEDLL.DLL 的依賴。這個 DLL 是在編譯本文所附的源代碼時創建的。這個 DLL 中實現了一些特別簡單的函數;它作為常見於安裝 CD 上的各種二進制文件的例子被包括進來。 如我們的例子所示,一般的 Windows 可執行文件有兩種類型的依賴:一種是對操作系統提供的二進制文件的依賴,另一種是對作為應用程序一部分的二進制文件的依賴。 還需要特別注意的是,DLL 以難於管理而聞名,即使是在產生它們的 Windows 操作系統中也是如此(參見 參考資料)。值得一提的是,Wine 團隊成功地創建了一個可以在 Linux 上運行很多商用 Windows 應用程序的框架當前,開放源代碼的 Wine 項目有一個健壯的平台來運行 Windows 二進制文件以及對 Win32 API 的部分實現。這個項目仍然處於最初的測試階段(alpha),有很多部分還沒有完成。盡管 Wine 提供了一些工具來幫助進行配置、安裝以及運行應用程序,但是它們大部分都是面向程序員的,要讓非技術用戶也可以使用這些工具,還有很多事情需要去做。過去的 Corel 以及現在的 CodeWeavers 為此提供了很多幫助。 Wine 如何工作既然我們已經理解了 Wine 的基本原理,讓我們更詳細地來研究 Wine 能夠做什麼。本文中,我們討論的是 Wine 在純 Linux 上的安裝,沒有任何 Windows 分區。 Windows 可執行文件: Wine 完全支持 Windows 可執行文件( .exe 和 DLL)的二進制載入。 DLL: Wine 有幾百個 Windows DLL 的內部實現 -- 不過,其中沒有多少是完全的實現。例如,包含有用戶界面相關函數的 userd32.dll 在開放源代碼的 Wine 中實現了 92%。 COM: 這是一種幾乎被所有的大型 Windows 應用程序所使用的 Windows 技術,它支持諸如將一個 Excel 電子數據表嵌入到 Word 文檔中等功能。這一技術得到了 Wine 的很好的支持。 注冊表: 這是另一個幾乎任何一個 Windows 應用程序都會使用的關鍵技術,Wine 實現了大約 90% 的 Windows 注冊表管理 API。 核心功能: 核心系統功能也得到了特別好的支持。如前面提到的,盡管 Linux 和 Windows 之間存在區別,但是基本的層次上還有很多類似之處,因此與進程、線程、文件和消息隊列相關的核心系統 API 得到了近乎完美的支持。 音頻和視頻: Wine 支持 Windows 音頻和視頻文件的運行(還可以使用 Windows 媒體播放器)。 列印: 也得到了支持,可以從一個在 Wine 中運行的 Windows 應用程序進行列印。 ODBC: Wine 支持那些需要通過 ODBC 訪問資料庫的 Windows 應用程序。 調試: Wine 有一個非常健壯和強大的內置調試器,除了支持標準的調試功能外,它還為調試運行於 Linux 上的 Windows 二進製程序進行了定製。它是 Wine 為其開發者提供的最重要工具之一。Wine 還有一個設計完備的追蹤和記錄日誌的模塊,可以幫助調試。

⑶ 請教 Linux 系統可以運行 在win 下的 軟體嗎

據說通過Wine的支持,可能運行大部份Windows下的軟體,不過如果你用Linux僅僅是為了運行windows下的軟體的話,還不如直接用Windows好了,幹嘛還選擇Linux?可以這么說,Windows能做的事,Linux都能做(不包括沒意義的事)。

⑷ 如何在Linux下使用Windows的程序

必須在C盤劃出一個分區作為SWAP 格式的交換分區
Step 1 安裝Windows 2000, 不用廢話了吧?!
Step 2 Red Hat Linux 9 安裝光碟鏡像文件下載並刻錄(當然可以買現成的) 紅帽子公司官方下載點:

---Disk 1: http://ftp.redhat.com/pub/redhat/linux/9/en/iso/i386/shrike-i386-disc1.iso

---Disk 2: http://ftp.redhat.com/pub/redhat/linux/9/en/iso/i386/shrike-i386-disc2.iso

---Disk 3: http://ftp.redhat.com/pub/redhat/linux/9/en/iso/i386/shrike-i386-disc3.iso

Step 3 預留安裝Linux的磁碟空間,建議留出未被分配的空間(在Red Hat Linux 安裝過程中再進行分配),當然留出一個可用分區也是可以的(最好記住它的大小,在Linux中可沒有C:, D:, E:的概念)。Red Hat Linux 9的最小安裝只需幾百兆,建議至少給出5G,不要小氣嘛,10G比較理想。
Step 4 更改Bios,從光碟引導,放入第一章安裝光碟(內含引導及引導盤製作文件)。
Step 5 在出現的安裝界面中直接敲回車,進入圖形化安裝界面。
Step 6 測試光碟介質,可測試光碟是否有物理損壞,或者是否是Red Hat官方發布以確保安裝光碟完整可靠。如果不想花太多時間請選Skip跳過,

Step 7 後面就不用多說了吧,和微軟的產品類似了,選擇安裝過程的語言,Next 就可以了。
Step 8 注意選擇設備,通常可以由安裝程序自動檢測出,如果未能檢測出你的系統設備,指定參數相似的Generic設備即可。
Step 9 選擇安裝類型: (建議選擇Custom自定義)
---個人桌面安裝(Personal Desktop):安裝圖形化桌面環境和應用程序,不安裝伺服器組件。

---工作站安裝(Workstation): 帶有軟體開發和系統管理的圖形化桌面環境。

---伺服器安裝(Server): 安裝各類網路服務。

---定製安裝(Custom): 由用戶選擇所安裝的軟體包,通常由高級用戶使用。(大家不要怕、不要怕,只是「通常」而已)

Step 10 選擇需要安裝的軟體包,如果上一步選擇接受默認軟體包則跳過這一步。

Step 11 硬碟分區: 最激動人心的時候到了,其實一點都不用緊張,就我個人裝機的經驗(應該至少有十幾次吧),成功率都是100%,絕對不會丟失數據,傷到其他OS。
---建議選擇手動分區(Disk Durid)。
---如果你沒有預留未分配的空間,則選擇你想要用來安裝Red Hat Linux的分區,然後刪除它。若留有未分配的空間(空閑空間)就跳過這一步。
---我們先要創建一個SWAP分區(交換分區,Windows採用交換文件的形式實現虛擬內存技術,而Linux乾脆用一個硬碟交換分區來進行對內存的虛擬),選中你預留的或剛才釋放的空閑分區,點擊「新建」,在分區類型中選擇「swap」, 空間指定空間大小一般為物理內存的2~3倍即可,如果你預留了10G空間的話,建議將其設為1G或更大。
---然後需要創建一個「/」分區(根分區) ,選中空閑空間,點擊「新建」, 在掛載點欄選擇「/」,在分區類型欄選擇「ext3」(Linux的分區類型),大小指定為使用全部可用空間。
---OK,大功告成,點擊"OK"。
Step 12 選擇默認啟動的超作系統,確定後,Linux對分區進行格式化
Step 13 Just waiting ...... 安裝程序將根據你的選擇或系統默認,安裝所需軟體包。
Step 14 剩下的工作大家可以自行其便,已經沒有什麼大不了的了。
Step 15 OK,你肯定已經成功了,Congratulation and have a drink......

⑸ linux 可以執行windows程序嗎

完全可以啊,程序底層其實都是一樣的,都是二進制代碼,只是文件的擴展名在不同的系統上不同而已。

⑹ 如何安裝和使用Wine,以便在Linux上運行Windows應用程序

在Linux上運行Windows程序需要安裝Wine,Wine的安裝方法是用apt-get(Ubuntu、Debian類的系統)或者yum命令(CentOS、老版的Fedora)在線安裝,注意這兩種命令都需要用root用戶身份來運行:
apt-get
install
wine或
yum
install
wine
Wine的使用就比較簡單了,Wine安裝好後Linux系統會有個wine命令(注意命令的W是小寫),運行Windows應用程序的exe文件就靠wine命令了。我所運行過的Windows程序是Source
Insight這個軟體,因為它只有Windows版,而且在Linux系統上用Wine運行的非常好,就用它作為例子來講解wine命令的使用吧,首先要用wine命令來運行exe格式的安裝文件,命令格式是這樣的:
wine
exe文件在Linux上的路徑加文件名
實際命令應該是這樣的:
wine
/home/user/download/SourceInsight3.5setup.exe
接下來一個問題,如何啟動用wine安裝的軟體呢?還是要用wine命令。以Source
Insight來講,安裝的時候採用默認安裝路徑是在C盤,這個C盤是Wine模擬出來的虛擬路徑,用wine命令啟動軟體的格式就是:
wine
英文雙引號括起來的虛擬路徑
比如:wine
"C:\\Program
Files\xxxxxxxxxxx"
(就是安裝程序界面上的那個路徑)

⑺ 在Linux上如何運行 Windows應用程序 (2)

誠然,在 Linux 上使用類似於 MS Office 這樣的應用程序可能是困難的;在這里我們來看一些原因,為什麼確實是這樣。在開始之前,我們應該指出,CodeWeavers 提供的商用 Wine 已經解決了大部分此類問題(參閱 參考資料以獲得鏈接)。假以時日,這些問題將可能在開放源代碼的 Wine 中同樣得到解決。 使用命令行與大部分 Linux 中的應用程序一樣,Wine 必須在命令行中安裝。用戶必須回到命令行中來在 Wine 下運行應用程序。例如,要運行Internet Explorer,用戶通常需要在 shell 中輸入 wine IEXPLORE.EXE 。盡管經驗豐富的用戶喜歡這樣做,但初學者會發現這比較困難,而且不太可能懂得起別名等快捷方式。 配置CDROM 和驅動器映射等工作必須手工完成。這對初學者來說也是個問題。 取消對隱藏文件的隱藏 如果掛載 CDROM 時沒有使用專門的 unhide 選項,那麼安裝 CD 上的一些文件可能會無法找到,從而導致安裝失敗。 調整配置 Wine 安裝很少能直接使用(對它來說也就是從 tarfile 解開)。通常需要進行全面的調整;例如,一個程序的安裝可能與您在配置文件中設置的 Windows 版本不相容;而修改那個版本又可能會影響一些已安裝的應用程序。對很多 DLL 來說也是如此。為此,Wine 提供了一個巧妙的修復,讓您可以設置特定於應用程序的屬性。不過,一般的用戶可能不會像我們一樣滿意。 額外的安裝步驟 大部分應用程序的安裝過程都不是標準的。例如,當我們安裝 Internet Explorer 6 時,必須跳過一些步驟,比如 DCOM98 的定位與安裝。對用戶來說,這類事情可能是最大的障礙。 注意,這些並不是病症,而是舉例說明了是哪些種類的事情導致對一般用戶來說 Wine 看起來復雜而且困難。 更多Wine 所不能做的看完Wine 的可用性問題後,現在讓我們來總結在嘗試使用 Wine 時一些常見的技術問題。 缺少DLL,這可能是最常見的問題:很多安裝由於缺少 DLL 而失敗。人們應該熟練使用調試器來決定下一步如何去做。(稍後將深入討論調試器)。 DLL 版本問題 一些安裝程序在開始之前會檢查現有的系統 DLL。Wine 解決這一問題的方法是,創建假 DLL 以滿足安裝程序的需要。不過,有一些安裝程序會更進一步並深入檢查 DLL 以獲得它們的版本。這對假的 DLL 來說要求太高了,會導致安裝失敗。 DLL 載入次序 Wine 有對很多 Windows DLL 的實現,而且如果可用,它還可以使用原始的 Windows DLL。如果兩種 DLL 都可用,好像顯然應該選擇總是使用 Windows 自己的 DLL,但實際上 Windows DLL 有時會包含不能被滿足的依賴。要確定是更應該使用 Wine 的 DLL 還是應該使用本機 DLL,惟一的方法是,基於各個應用程序反復進行試驗。 DLL 中的函數 當一個 Wine DLL 沒有實現 Windows 中相應的 DLL 的全部功能時,應用程序可能會遭遇函數調用失敗。由於 DLL 是動態載入的,可能沒有辦法事先知道會發生這樣的事情。這是一個復雜的問題,有一些可做的工作,但最終實際來說它只是取決於應用程序的代碼如何編寫。 有一些因素會減輕這些問題。一方面,您將會一個一個地遇到這些問題,而不是一次遇到全部問題,這樣處理起來要容易些。另外,您遇到的那些問題可能其他人曾遇到過並已經解決(而且解決方案已經公布出來)。Wine 用戶組非常活躍,會提供許多幫助,每周一次的 Wine 時事通訊(參閱 參考資料)是極好的信息資源。 Wine 中還沒有實現的 Win32 API在Wine 中,很多 Win32 API5 的函數是殘缺不全的。最常見的原因是,相當多的 Win32 API 並沒有被文檔化。這就意味著一個特別的應用程序可能會調用某個函數,而完全沒有關於此函數的可用資料。例如,我們在運行一個簡單的 RPC 程序時發現了 RtlAnsiCharToUnicodeChar 這個函數。在 MSDN 上的搜索結果顯示沒有關於這個函數的資料,而且沒有關於所有 RtlXXXX 類別函數的資料。因此,如果它們在 Wine 中的實現對一些應用程序來說至關重要,那麼人們可能只有去猜測它們的行為了。 商用的 WineCodeWeavers 為 Wine 做了很多工作。多年來他們為 Wine 項目貢獻了很多代碼,他們出售商用版本的 Wine,其改進的用戶界面解決了我們在本文中提出的很多問題。 例如,CodeWeavers 的二進制安裝文件會在用戶的開始菜單中添加一個 Crossover 條目;安裝後,絕大多數 Crossover 相關的任務可以通過開始菜單條目來完成。在開放源代碼的 Wine 中,所有這些任務 -- 安裝、程序執行以及其他任務 -- 都必須在命令行中執行。此外,CodeWeavers Crossover 將會嘗試去為新安裝的軟體包配置一個合理的默認值,如果需要的話會在安裝完成後自動重新引導,並以其他形式減輕用戶的負擔。 CodeWeavers 使用開放源代碼的 Wine 作為他們的 Crossover 產品的基礎,所以,除非遇到上面我們討論過的可用性問題,否則,在其中一個產品中能運行的應用程序,在另一個產品中同樣也能運行。要深入了解 CodeWeavers 和 Crossover,以及要獲得可以在 Wine 上運行的應用程序列表,請參閱在 參考資料中列出的鏈接。 應用程序安裝分析由於Wine 支持 Windows 可執行文件的運行,您會想當然地認為可以使用程序的安裝程序從頭安裝,這是正常的。不幸的是,幾乎不會那樣。對 Windows 安裝過程的理解將有助於解釋原因。下面非常簡單地描述了 Windows 安裝程序通常要做的事情的(不必是這個次序): 將文件拷貝到一些目錄。 注冊DLL,並將其他應用程序相關的信息添加到注冊表中。 在安裝過程中,有時會檢查 DLL 的版本(如前面所提到的)。 修改INI 和一些其他配置文件。 因而,Wine 會遇到兩種類型的問題,必須按順序解決: 安裝過程中的問題。 執行過程中的問題。 在調試 Wine 安裝的過程中,如果您同時有一個可用的 Windows 系統的話會非常有幫助。那樣,您可以對 Windows 安裝使用追蹤器以確切斷定哪些文件被拷貝,哪些注冊表條目被添加或更新,哪個 INI 文件被修改,等等。記錄安裝步驟的順序並與失敗的 Wine 安裝相比較,是故障診斷的好向導。 在Linux 上安裝 Wine如果您正在使用 Red Hat 或者 SUSE,最簡單的方法是從 CD 安裝 Wine。不過,如果那些 CD 比較老,您可能需要通過源文件安裝,因為 Wine 項目經常更新。如果通過源文件安裝,您會發現 Wine 用戶指南(參閱 參考資料以獲得鏈接)是一份價值無法估量的資料。簡化的安裝過程如下: 解開源文件後,切換到 tools 目錄下以用戶身份運行 ./tools/wineinstall。 在tools 目錄下運行 winecheck 腳本來檢查安裝。您可能不會獲得 100% 的成功,但只要沒有關鍵問題就行。 Wine 的所有配置都保存在 ~/.wine/config 文件中。這個文件很容易理解:它描述了您希望將 Linux 文件系統的哪部分看作是 Windows C 驅動器,以及 DLL 的載入次序等其他的細節。 您應該可以快速進行了。例如,要安裝 WinZip 8.1,您可以下載安裝程序並在命令行中運行 wine winzip81.exe 。 快速瀏覽一下可以了解很多內容:您可以看到 WinZip 在運行,它的文件瀏覽器組件顯示出熟悉的 Windows 驅動器 C、軟盤驅動器 A、一個 CD-ROM M 以及另外的 Z 驅動器。您可以猜到,所有這些都映射在我們上面提到的 ~/.wine/config 文件中。

⑻ Linux系統能運行windows系統的所有程序嗎

不能運行為windows系統編寫的所有程序,完全兩類的系統。

⑼ 怎樣在linux下運行windows 下的.exe程序

linux下需要安裝wine來兼容windows下的程序。
一. 安裝Wine
Wine適應於所有流行的UNIX操作系統,包括Ubuntu、Debian、Red Hat、SUSE、Mandriva、FreeBSD、Solaris和Mac OS X。
在Ubuntu上:
一、通過Unbuntu軟體中心安裝
1、 打開Applications(應用程序)>Ubuntu Software Center(Unbuntu軟體中心),打開Ubuntu軟體中心。
然後點擊Edit(編輯)>Software Sources(軟體源)。選擇Other Software(其他軟體)選項卡,點擊Add(添加)。然後輸入下列apt行:ppa:ubuntu-wine/ppa
2、Allsoftwares右側菜單中選擇「PPA for Ubuntu Wine Team」,然後選擇Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。點擊Install(安裝)。這會安裝最新的Wine軟體包,包括開發庫。
提示:卸載現有的Wine軟體包,以確保最大的兼容性。另外,如果想干凈安裝,可以刪除Wine用戶目錄,為此可以從主目錄中使用命令rm -r -v .wine。
二、通過終端安裝
終端輸入[如何在Ubuntu14.04中安裝和運行Windows應用程序]
sudo add-apt-repository ppa:ubuntu-wine/ppa
sudo apt-get update
apt-get install wine1.7
wine --version
[Wine完全卸載]
二、安裝Wine支持包
現在,需要安裝非開源(但免費)的支持包。這包括微軟Core Fonts、Visual C++運行時環境等軟體包。
安裝Cabextract:
需要該軟體包來解壓縮微軟.cab文件。
$ sudo apt-get install cabextract

⑽ 如何在linux下運行Windows軟體

可以參考如下方法以實現Linux運行windows軟體:
1、安裝linux版的vmware,然後通過vmware建立windows虛擬機,通過vnc實現linux物理機和windows虛擬機的共享,從而運行windows軟體。
2、在Linux上安裝Wine,它是一個能夠在多種
POSIX-compliant
操作系統(諸如
Linux,Mac
OSX

BSD
等)上運行
Windows
應用的兼容層,安裝完成後,只需要使用命令
wine,運行windows程序即可。命令格式如下:
[root@localhost root]#wine <程序名>

熱點內容
c語言可逆素數 發布:2024-10-09 05:13:44 瀏覽:920
班級采訪問題 發布:2024-10-09 04:45:44 瀏覽:497
單人地圖腳本 發布:2024-10-09 04:45:32 瀏覽:754
易語言cf自瞄源碼 發布:2024-10-09 04:36:14 瀏覽:121
安卓和蘋果哪個更難修理 發布:2024-10-09 04:36:12 瀏覽:26
黎明覺醒安卓什麼配置 發布:2024-10-09 04:32:05 瀏覽:127
助手autojs腳本 發布:2024-10-09 04:31:40 瀏覽:186
sql判斷今天 發布:2024-10-09 04:19:35 瀏覽:943
拆分視頻需要哪些配置 發布:2024-10-09 04:06:39 瀏覽:912
安裝電腦網路需要哪些配置 發布:2024-10-09 03:57:28 瀏覽:963