Linux环境中使用Windows 应用的思路

使用Linux作为平时的工作开发环境的最大问题是很难避免使用 Windows 平台的各种软件,比如 IE 和 QQ。在这种情况下如何更好的使用相关软件就是比较重要的问题。
目前比较现实的思路有两种,

  • 第一种,使用接口兼容层保证应用程序执行上的兼容,比较典型的Wine,但是存在的主要问题是性能较差而且很容易出现兼容问题。
  • 第二种,是通过运行虚拟机来执行 Windows 程序,比如VirtualBox、vmware、KVM等,这种方式对 Windows 程序兼容比较好但更重要的是由于是在虚拟环境中使用需要考虑桌面的交互问题
实际使用的建议
  • Wine
    一些简单的轻量级应用都可以使用 Wine 来执行,目前 Wine 版本已经到1.9.x 对大多数应用来说可以提供相对良好的兼容性和性能,甚至可以运行部分游戏,但是如果包含某些驱动保护的应用可能会导致比较严重的兼容问题经常可见的种类有:
  • 微软提供的 Office 和 IE。Office 系列理论上是可以比较好的运行在Wine上的,但是某些版本上会有针对 Wine 的检测所以会导致不能正常运行,对于 IE Wine 倒是自带了只是使用中非常卡顿不建议在 Wine 中使用
  • U盾类的应用,这类应用基本都会有驱动保护之类的功能,这种情况下很难保证能够正常执行,大部分情况下都很难保证正常运行
  • QQ ,实际上QQ可以比较正常的运行在 Wine 环境中但是使用中经常会出现卡顿、突然崩溃、界面切换异常等问题,连带 Linux 都会受到影响,所以使用的体验很差
  • 虚拟机
  • 使用上几乎没有感觉到有什么兼容的问题,可能最大的问题还是图形。虽然目前主流虚拟机都可以提供3D加速的支持但是使用上会对相关的驱动等因素有一定要求。
    除此之外虚拟机基本上可以各种硬件有较好的兼容,当然喜欢音乐的朋友还是别用这个,可能是软声卡的原因声音质量比较差。
  • 虚拟机的另一个问题是与桌面的交互,目前的解决方案有VBox的无痕方式、vmware 的 unity 模式、KVM 好像也有方案将虚拟机的环境加载到主机桌面上。以上的方式都可以达到接近原生环境的效果说成惊艳也不为过,需要注意的是以上方式都需要在虚机上安装相关驱动来支持相关功能。
  • 其他的功能支持包括 共享目录、剪贴板复制支持等,开启后感觉基本没有太大的使用差异,使用上非常愉悦。
  • 除了对系统桌面的支持另一个问题就是对系统托盘的支持,这种问题主要集中在 QQ 等最小化后到系统托盘中的应用。
  • Wine 的系统托盘主要是支持 Linux 中几大桌面的托盘,比如gnome的就能支持的比较好,但是对 ubuntu 的 Unity 感觉完全无解,基本上想要 Linux 的原生托盘支持就放弃 Unity 比较好。
  • VBox 是直接将虚机的托盘作为无痕模式的一部分加载到桌面,目前看这个办法非常聪明不会有各种离奇的兼容问题,只是体验上这个托盘比较容易被覆盖到体验一般
  • vmware 没有提供系统托盘的功能,所以如果要使用的话就需要跟alltray配合使用,不过 vmware 提供了一个小巧的开始菜单而且还不占位置非常好用,这基本上也应该算是vmware在这块的优点。只是目前 vmware 取消了 linux 版本下的 unity 模式,按照他们的说法是在 Linux 下兼容的代价太大所以取消了该功能,真的是非常可惜
总结

由于 Wine 和各种虚拟机的出现使得现在跨环境运行不同的应用成为可能,另一方面在 Windows 中使用 linux 也可以非常方便,甚至可以通过 XWindow 客户端来使用。基本上可以视为无缝的调用了