Windows上有些软件在 GNU/Linux 中有替代方案 ,但还是有许多无法取代的软件 (例如Adobe Photoshop,大型PC游戏 等),本文将常用的在Linux主机环境运行Windows程序的方式做一归纳总结,供各位参考。
Wine方式
Wine
- Wine是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。Wine 不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其他一些行为的内存占用,让你能够干净地集合 Windows 应用到你的桌面。
- WINE 是一个开源项目,它可以协助很多 Windows 应用程序在 Linux 上运行,就好像它们是原生程序一样;
- Wine 进程模仿 Windows C 驱动器并包含在 Linux 上使用基于 Windows 的应用程序所需的所有文件;
PlayOnLinux
- PlayOnLinux 是使用 Python 写成的图形化前端,主要用来辅助 Wine 在 Linux 中安装面向 Windows 平台的程序和游戏,如 MS Office 2003。另外,此程序也支持使用 Dosbox 来安装基于 Dos 的程序和游戏。
Bottles
- Bottles 是一个免费的开源图形应用程序,以一种新的方式管理 Wine 前缀,使用 Bottles,我们可以轻松地在 Linux操作系统上运行 Windows 软件和游戏。
- 它可以运行所有 Windows 可执行文件,例如.bat、.exe和.msi在 Bottles 中,它将自动检测所有已安装的应用程序,无需手动添加到程序列表!
- 每次您为应用程序添加任何依赖项时,Bottles 都会使用默认配置生成一个全新的状态,因此,在 Linux 上运行 BAT、MSI 和 EXE 文件变得很容易,因为 Bottles 会根据可执行文件修改系统。
- Bottles 是结合 Python 和 Bash 开发的,Bottles 的当前版本是第三个版本。
crossover
- Crossover 是一款可以在 Linux 服务器上执行 Windows 应用程序的工具,它是 wine 的优化 + 商业版本,免去了 Wine 的繁琐配置,让 Linux 安装 Windows 软件更简单;
- 部分移植的软件有官方的维护,执行效果也比较好。
虚拟机
- 常用的操作是在Windows宿主机上安装Linux虚拟机,实际上也可以反过来玩;
- 常用的虚拟机如:VirtualBox、VMware Workstation/Player、KVM;
远程桌面方式
RDP协议
- freerdp:FreeRDP是一个Remote Desktop Protocol(协议)的一个实现,可以在Linux下通过 xfreerdp 命令远程Windows电脑;
- rdesktop:rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本;
- tsclient:Terminal Server Client(tsclient)是一个用于rdesktop的前端。它支持大多数rdesktop,tsclient是图形界面,命令行输入tsclient打开主界面,输入远程计算机IP,用户名和密码就可以连接。使用tsclient,必须安装rdesktop.
- grdesktop:rdesktop的图形版,Gnome桌面的远程登录前端);
- krdc:KDE桌面的rdp和vnc连接工具;
- Vinagre:Gnome桌面环境的远程桌面客户端,同时支持SSH、RDP和VNC协议;
- Remmina 是一款在 Linux 和其他类 Unix 系统下的自由开源、功能丰富、强大的远程桌面客户端,它用 GTK+ 3 编写而成。它适用于那些需要远程访问及使用许多计算机的系统管理员和在外出行人员。
VNC协议
- krdc:同时支持RDP和VNC协议;
- Vinagre:同时支持RDP和VNC协议;
- Remmina:同时支持RDP和VNC协议;
- realvnc:vnc的一个商用版本;
winrm方式
- WinRM是WindowsRemoteManagementd(win远程管理)的简称。基于Web服务管理(WS-Management)标准,使用80端口或者443端口。
- 通过python中的 winrm模块,Python脚本通过winRM模块操作windows命令行。
Telnet方式
- 先设置windows系统中的telnet设置;
- 之后可通过telnet命令、python中的telnetlib库等方式进行执行操作;
SSH方式
- 在Windows上安装PowerShellServer,它仅只支持一个连接。
双系统
- 如果磁盘空间比较大,双系统是最香的,你走你的阳关道,我过我的独木桥,Windows与Linux互不干扰;
- 严格来讲,这种方式已经不属于Linux环境上运行了,只是为了内容全面性,权且放这里。