当前位置:首页 » 操作系统 » 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 <程序名>

热点内容
死歌脚本 发布:2024-10-09 03:11:55 浏览:85
企业内网搭建电影服务器侵权吗 发布:2024-10-09 03:07:14 浏览:105
python读取jpg 发布:2024-10-09 02:50:22 浏览:154
王者荣耀的服务器ip在哪 发布:2024-10-09 02:44:48 浏览:77
安卓怎么下载李宁 发布:2024-10-09 02:31:37 浏览:343
配置不高pr哪个版本最好用 发布:2024-10-09 01:57:15 浏览:789
编译OpenWrtipv6 发布:2024-10-09 01:51:40 浏览:124
python写入字节 发布:2024-10-09 01:24:22 浏览:650
如何设置超高难度密码 发布:2024-10-09 01:19:05 浏览:179
linux只读文件修改 发布:2024-10-09 01:13:08 浏览:87