一、什么是Wine

Wine是“Wine Is Not an Emulator” 的首字母缩写,是一个能够在多种POSIX-compliant操作系统(诸如Linux、macOS及BSD等)上运行 Windows 应用的兼容层。Wine不像虚拟机或者模拟器那样模仿内部的Windows逻辑,而是將Windows API调用翻译为动态的POSIX调用,免除了性能和其它一些行为的内存占用,让你能够干净地集合Windows应用到你的桌面。

Wine使Linux、Mac、FreeBSD、Solaris用户可以在没有Microsoft Windows的情况下运行Windows应用程序。Wine是正在持续开发中的自由软件。

二、官网及相关页面

1. Wine官网地址

WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS

官网页面如下所示:

2. Wiki主页链接

WineHQ Wiki

Wiki主页页面如下所示:

三、Wine历史

wine在1993年就发起了,此后历经15年,一直到2008年,才有了v1.0的发布。截至2022年,wine稳定版已经到了V7.0。

Wine的根源可以追溯到1993年。当时一些力量正在汇聚,使运行Windows应用程序具有吸引力。微软已经成功将其Windows程序引导到了PC的前端。IBM希望OS/2能够变得流行,即使他们承认Windows程序的支持是必需的,并且将这种能力融入到他们的产品中。80年代诞生的自由软件运动正在取得迅速发展,人们发现运行在PC上一个多用户、多任务的操作系统是可能的。

Sun公司在1992年收购Praxsys Technologies,导致了一个叫作Wabi产品的开发。Sun在1993年Solaris开发者大会上第一次演示了此软件。它允许Solaris x86和Solaris 2.2 for SPARC的用户开箱即用地运行Windows应用。当时其它产品虽然允许Windows程序运行,但是它们需要机器级仿真并且需要安装DOS和Windows。Wabi是独一无二的,在于其允许Windows窗口调用被直接翻译为X Windows调用。通过仿真其余的x86代码,真实运行Windows程序比在一个RISC工作站更快!Wabi的更多高级特性包括处理TrueType字体的字节流字体处理技术。

Linux操作系统用户在1993年6月开始讨论相似方法的可能性。在那时,Wabi移植到Linux的可能性微乎其微。一个邮件列表被建立以促进讨论。名字“Wine”很快被采纳。一些早期的开发者包括一些第一批Linux内核黑客,包括Eric Youngdale and David Metcalfe。其它熟识的名字包括现在领导Wine的Alexandre Julliard和GNOME fame的Miguel de Icaza。Bob Amstadt领导Wine的开发。

Initial work consisted of getting a program loader working that could run Windows' 16-bit binaries. That work was primarily headed by Bob. Alexandre's involvement centered around merging windowing functions written by Peter MacDonald in Tcl/Tk. Progress moved along quickly, and within the first 6 months it was possible to run Solitaire. November of 1993 also saw the first port of Wine to another architecture - John Brezak submitted patches to allow Wine to run on NetBSD. Bob estimated that with the current rate of development the team was six months to a year away from release. Ironically, Wine continued to be six months to a year from release for the next decade.

Early communication between developers took many forms, including the linux-kernel mailing list. The very first Wine mailing list was operated by Robert to allow discussions between developers. After a year with many successes and growing interest in the project they asked for the creation of the newsgroup comp.emulators.ms-windows.wine. The vote was overwhelmingly in favor of its creation and it became part of the Usenet hierarchy on July 19th, 1994. The current mailing lists where most development is discussed were created by Doug Ridgway in October, 1998.

The early years saw many changes to Wine's development. Robert stepped down in 1994 and Alexandre took over development. Windowing was rewritten as straight Xlib calls. Perhaps most importantly, Microsoft began releasing 32-bit code and adding new functionality to their operating systems. It was no longer enough to just load code and run it, a tighter integration was needed with the underlying operating systems (primarily Linux.) Mechanisms needed to be added that supported network connections and registry files. Wine's architecture had relied on a shared address space between applications. Gradually it became clear that address space separation was needed to increase security and support shared libraries trying to access the same space. Work commenced in early 2000 and continues to this day.

Alexandre recalled some of the early milestones for Wine in a keynote he gave at the first Wineconf:

  • May 1995: beginnings of Win32 support
  • July 1995: switch to autoconf
  • January 1996: Word and Excel reported to run
  • November 1997: Creation of winehq.com web site

Volunteers began contributing to aspects other than programming. John Sheets and Susan Farley worked on some of the original documentation. Doug Ridgway set up the WineHQ web site in 1997. The site was taken over by Corel for a few years, and then CodeWeavers took it over from them in March, 2002. Jeremy Newman now serves as the webmaster. The Wine Weekly News first appeared on the web site in 1999. Originally authored by Eric Pouech, Brian Vincent took over in 2001. Over the past few years several features have been added to the web site. A redesign in early 2003 added several pages to help new users get acquainted with Wine, project lists for developers to think about, and a large list of [:FAQ:Frequently Asked Questions].

In 1998 a strategic decision was made by Corel to wholeheartedly support Linux. The key elements were centered around providing a Linux-based system that was both simple to install and easy to use. To this end, they sought to provide both a Linux based distribution and support for their applications. Corel's suite of office programs demanded a high level of Wine sophistication. For the first time in Wine history commercial development was funding its development. Internally, Corel had two different teams working on Linux. One group concentrated on server development, the other on application support. Corel maintained a great relationship with Wine, partly due to the involvement of another company doing a lot of the work - CodeWeavers.

The bubble soon burst. Rumors began circulating at the end of 2000 that Corel would discontinue its support for Linux. By early 2001 Corel officially announced it would spin off its Linux division, specifically the group working on the distribution. Their support for work on Wine ended. The intellectual property and some of the developers eventually formed a new Linux company - Xandros.

It wasn't long before others joined in to fill the void. By this time Alexandre had already taken a position with CodeWeavers doing much of the low level work on Wine. CodeWeavers had gotten involved with Wine in 1999 and were contracted by Corel to improve parts of Wine that would benefit Corel's applications. CodeWeavers began developing their own products and putting a lot of polish on Wine. Their own version of Wine included graphical management tools and an easy setup. Several distributions made it available for download. Their first product, CrossOver Plugin, allowed Linux users to run Netscape plugins designed for Windows. Newer versions of the product have added support for even more plugins. They released CrossOver Office in March, 2002 to provide support for office applications like Excel and Lotus Notes.

TransGaming formed in August of 2001. Gavriel State, who had been with Corel, left and formed his own company. Newer PC games had been focusing on Microsoft's DirectX interfaces for everything from input devices to 3D acceleration. By tying it to their operating systems it made porting games to different platforms very difficult. DirectX support in Wine was first added by Marcus Meissner in 1997 and was very limited. Gav sought to commercialize the development of it and create a new version of Wine designed for gamers. More technologies than just DirectX were needed and some of the early work focused on including support for copy protection measures. WineX 1.0 was released in October of 2001 with support for six games.

Also in 2001 another company announced intentions to work with Wine. Lindows.com wanted to create a Linux distribution that was simple to use and let users run Windows programs. It wasn't long before they abandoned the idea in favor of native Linux applications. Before that happened they sponsored Wineconf - a three day event in March, 2002 that brought together developers from around the world. To make matters more interesting, on the eve of the conference the Wine community had concluded another licensing --(flamewar)-- discussion.

Wine's storied history of licensing has sparked many debates. The issue of licensing surrounds itself with two primary areas - the license of the Wine code itself and the license of applications produced using Winelib. The Wine developers' goal is to give people the ability to both implement and add to the Wine project in such a way it doesn't hinder others from doing the same. At the same time they want to give other developers the chance to port their application without the fear of being bound to a software license that prevents them from doing what they want with their creation.

In the beginning, Wine adopted a BSD-style license. At the end of 1999 discussion began about changing the license. Richard Stallman had pointed out that it was incompatible with the GPL which potentially causes problems with any open source project wishing to use Wine code. Most developers didn't see a need to craft a new license and the X11 license, a derivative of the BSD license, had the most support. A vote was called for and in January of 2000 Alexandre announced that it would become the new license of Wine.

In March of 2002 a poll was conducted among both the free and commercial developers of Wine to see if there was interest in moving to a different license. Most developers did not want their code to be appropriated by a commercial entity and there were concerns that might happen. After much debate they chose the Lesser General Public License and on March 9th, 2002 the Wine source code became bound to those terms. The LGPL, often referred to as a "copyleft" license, required the Wine developers to abide by some guidelines:

  • Source code (including all changes from the original Wine sources) must be made available to people who receive a binary of Wine. This also applies if Wine is used as a library, in which case only the source of Wine (including all changes) must be made available.
  • Simply linking with Wine does not mean you need to make the source code available for your program.

The immediate effect was the creation of the ReWind project to further the X11-licensed codebase. Many key developers agreed to allow their additions to be used by both the X11 and LGPL Wine code. Most have decided to focus their efforts on synchronizing with the LGPL'ed Wine and the vast majority of development and new features appear there first. Picking a favorite software license is left as an exercise for the reader.

Shortly after changing the license development began to pick up at a greater pace. More patches began to appear, Alexandre made more CVS commits, and more applications were reported to work. By the end of 2003 DLL separation achieved a milestone with the split of the kernel32/ntdll combination. Most of the architectural changes to support a beta release were in place. Another developer's conference was held in January, 2004 in St. Paul Minnesota sponsored by CodeWeavers. Once again, a roadmap was laid out for tasks that needed to be completed.

Wine 0.9.0 was declared "beta quality" in 2005 (more things working than not) and Wine 1.0 was finally released in mid-2008. Stable Wine is now released every year.

Development continues apace, with new development releases every two weeks. Wine has grown to over 1.4 million lines of C code over the past decade. Nearly 700 people have contributed in some fashion. As always, you can expect Wine to be released sometime this year; or maybe early next year. Or perhaps we'll just wait for you to become involved and finish those important user interfaces and documentation bits.

Wine零知识学习1 —— 介绍相关推荐

  1. Wine零知识学习3 —— Winetricks介绍及下载和运行

    本文部分内容引自:桌面应用|用 Winetricks 配置 WINE 一.介绍 Linux下最有名的Windows环境模拟器就是Wine了,本系列前边两篇文章已经对它做了充分的介绍和实际的操作.Win ...

  2. Wine零知识学习2 —— 源码下载、构建与安装

    一.源码下载 1. 源码下载地址 wine / wine · GitLab 页面如下: 2. 源码下载 使用以下命令下载wine源码(需要事先准备好源码放置目录): git clone https:/ ...

  3. libvirt零知识学习3 —— libvirt源码编译安装(1)

    接前一篇文章libvirt零知识学习2 -- libvirt源码下载 上一篇文章中详细介绍了libvirt的源码下载过程,下载了libvirt-8.10.tar.xz并解压.本文在前文的基础上进行源码 ...

  4. SELinux零知识学习四、Audit应用层源码下载、编译和安装

    接前一篇文章:SELinux零知识学习三.SELinux应用层源码下载.编译和安装 在前篇文章中编译SELinux源码时,出现了如下错误: seusers_local.c:11:10: 致命错误:li ...

  5. LSM零知识学习六、插桩原理实现细节(4)

    接前一篇文章:LSM零知识学习五.插桩原理实现细节(3) 本文内容参考: LSM(Linux Security Modules)框架原理解析_lsm linux_pwl999的博客-CSDN博客 特此 ...

  6. SELinux零知识学习六、swig源码下载、编译和安装

    接前一篇文章:SELinux零知识学习五.libcap-ng源码下载.编译和安装 在前篇文章中编译libcap-ng源码时,出现了如下错误: swig -o capng_wrap.c -python ...

  7. oracle入门学习(3) 所用的学习环境介绍与设置

    oracle入门学习(3) 原文见我的QQ空间:http://user.qzone.qq.com/284648964?ptlang=2052 由于原文是写在我的QQ空间,文章转过来的过程中造图片丢失, ...

  8. MonoRail学习-介绍篇(一)

    MonoRail学习-介绍篇 刚刚结束了使用Castle MonoRail的一个项目,所以想将在项目中的一些片段大家一起共享一样.由于这是一个网站项目,所以使用Monorail,因为他使用MVC模式, ...

  9. [0.0]-AutoSAR零基础学习-专栏介绍

    前言   年前公司业务变动,博主有幸参加了车载相关的开发任务,负责cdd中的某个模块,由于之前没有接触过AutoSAR,项目前期比较难受,目前项目也接近尾声了,打算把这一路的学习过程记录下来,和大家一 ...

最新文章

  1. AviatorEvaluator表达式引擎
  2. centos httpd服务做yum本地源,以及安装Mysql
  3. OPA 6 - module(Create Button Test);
  4. NeurIPS 2020 | 腾讯 AI Lab 解读机器学习及计算机视觉方向入选论文
  5. [07] 使用注解完成IOC配置
  6. 微软警告 Windows 10 1703 即将停止支持!
  7. A10负载均衡设备基础配置
  8. 2018世界杯最帅射手-C罗,嗯,没得跑了!
  9. 流编辑器 SED 十分钟入门全教程
  10. LC振荡器的工作原理
  11. 混沌图像---陈氏吸引子的飞蛾
  12. 永不熄灭的火花·《煎饼侠》
  13. 【文献翻译】Evaluating five different adaptive decomposition methods for EEG signal seizure detection
  14. 基于BP神经网络的PID控制,神经网络算法pid控制
  15. 最大子序列和问题(动态规划)
  16. B站后台源代码泄露,官方回应声明黑话指南
  17. 用Python实现一个蔡徐坤打篮球的小游戏,【附源码】
  18. 用DataSetSurrogate加速WebService
  19. Flash实例教程:AS3.0打造漂亮水纹效果_Flash_||太平洋电脑网
  20. SuperBuilder的用法,此时不要用Builder

热门文章

  1. [导入]【07欧美爆笑青春性喜剧】《魅力学堂_青男涩女》【DVD中字】【15:00】
  2. 马斯克的这波神操作,让我意识到保持写代码的能力有多重要
  3. HTC 8X电信版连接WIN7电脑的真正解决办法
  4. provider: SQL Network Interfaces , error: 26 - Error Locating Server / Instance
  5. 线上Java 高CPU占用、高内存占用排查思路
  6. 计算机 教授级职称评定,工程技术应用研究员(俗称正高,教授级高工等等)职称评定...
  7. 职业自我认知的测试软件,职业生涯规划自我认知测试.docx
  8. 计算机系歌,科学网—计算机之歌 - 刘钢的博文
  9. python多线程爬取ts文件并合成mp4视频
  10. WPS office出现“xxx.docx中发现无法读取内容,是否恢复此文档中的内容......word在试图打开文件时遇到错误” 紧急解决方案 -- 小黑日常超细解决教程