Wine零知识学习1 —— 介绍

news2024/11/28 1:54:53

一、什么是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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/335831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电压放大器在非共线混频方法检测混凝土中的应用

实验名称:电压放大器在非共线混频方法检测混凝土中的应用研究方向:无损检测测试目的:无损检测是在不损伤或不干扰待测物体的结构材料的情况下,对其内部损伤进行探测的方法。传统无损检测法在仪器携带,操作程序&#xf…

牛客网 HJ31 单词倒排(详解)

前言:内容包括四大模块:题目,代码实现,大致思路,代码解读 题目: 描述 对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字…

PyTorch学习笔记:nn.L1Loss——L1损失

PyTorch学习笔记:nn.L1Loss——L1损失 torch.nn.L1Loss(size_averageNone, reduceNone, reductionmean)功能:创建一个绝对值误差损失函数,即L1损失: l(x,y)L{l1,…,lN}T,ln∣xn−yn∣l(x,y)L\{l_1,\dots,l_N\}^T,l_n|x_n-y_n| l(…

苹果手机怎么传输照片到电脑?教你4种实用方法

苹果手机怎么传输照片到电脑?除了更换新手机需要迁移数据,iPhone用久了常常会遇到储存空间不足的问题,因此把一些数据上传到电脑上也是必要的。今天咱们就来说说从iPhone传输照片到电脑的迁移方法吧。 方法1.使用苹果数据线 苹果手机怎么传输…

【论文速递】ICCV2021 - 基于超相关压缩实现实时高精度的小样本语义分割

【论文速递】ICCV2021 - 基于超相关压缩的小样本语义分割 【论文原文】:Hypercorrelation Squeeze for Few-Shot Segmentation 【作者信息】:Juhong Min Dahyun Kang Minsu Cho 获取地址:https://openaccess.thecvf.com/content/ICCV2021/…

【DGL】图分类

目录概述数据集定义Data LoaderDGL中的batched graph定义模型训练参考概述 除了节点级别的问题——节点分类、边级别的问题——链接预测之外,还有整个图级别的问题——图分类。经过聚合、传递消息得到节点和边的新的表征后,映射得到整个图的表征。 数据…

pycharm无法通过外网访问阿里云服务器中的Flask解决方案

一、修改/添加安全组端口这是第一种方案,也是能解决大部分问题的一个方案。由于我的服务器是阿里云的,所以在阿里云的ECS云服务器控制台中,管理安全组,添加5000和8000端口以便测试。经过测试,外网依旧无法访问。二、修…

Shell脚本之——Hadoop3单机版安装

目录 1.解压 2.文件重命名 3.配置环境变量 4.hadoop-env.sh 5.core-site.xml 6. hdfs-site.xml 7. mapred-site.xml 8.yarn-site.xml 9.完整脚本代码(注意修改主机名) 10.重启环境变量 11.初始化 12.启动服务 13.jps查询节点 1.解压 tar -zxf /opt/install/hadoo…

【速通版】吴恩达机器学习笔记Part3

目录 1.多元线性回归 a.特征缩放 可行的缩放方式: 1.除以最大值: 2.mean normalization: 3.Z-score normalization b.learning curve: c.learning rate: 2.多项式回归 3.classification logistics regression 1.多元线性回归 其意义很…

UML术语标准和分类

一、UML术语标准 1.中文UML术语标准 中国软件行业协会(CSIA)与日本UML建模推进协会(UMTP)共同在中国推动的UML专家认证,两个协会共同颁发认证证书、两国互认,CSIA与UMTP共同推出了UML中文术语…

(record)QEMU安装最小linux系统——TinyCore(命令行版)

文章目录QEMU安装最小linux系统——TinyCore参考QEMU使用qemu创建tinycore虚拟机再次启动文件保存QEMU安装最小linux系统——TinyCore 简单记录安装过程和记录点 参考 [原创] qemu 与 Tiny Core tinycore的探索 QEMU qemu不多介绍,这里是在WSL2上安装的linux版…

最近很火的一部电视(狂飙)像安欣和高启强这样类型的人,谁更合适做软件测试工程师

狂飙》央视收视率狂飙。央视发布《狂飙》收视成绩,全剧平均收视1.54%,平均收视份额6.99%,单集最高收视率2.20%,单集最高收视份额10.69%;晚间电视剧类节目第一。可以说还部剧为今年开了个好头,一开年就引爆收…

财报解读:四季度营收超预期,优步却越来越“不务正业”了

“公司第四季度的业绩表现将是强劲的”。 公布2022年第三季度财报时,优步的高管给出了这样的预告,给资本市场打了一针“强心剂”。然而有人对此表示质疑,后疫情时代,带着新模式、新车型的全新网约车公司层出不穷,车企…

Java面试数据库

目录 一、关系型数据库 数据库权限 表设计及创建 表数据相关 数据库架构优化 二、非关系型数据库 redis 今天给大家稍微整理了一下,内容有数据表设计的三大范式原则、sql查询如何优化、redis数据的击穿、穿透、雪崩等...,以及相关的面试题&#xff0…

Intel中断体系(1)中断与异常处理

文章目录概述中断与异常中断可屏蔽中断与不可屏蔽中断(NMI)异常异常分类中断与异常向量中断描述符表中断描述符中断与异常处理中断与异常处理过程堆栈切换错误码64位模式下的中断异常处理64位中断描述符64位处理器下的堆栈切换相关参考概述 中断是现代计…

不用创建项目,直接在 VS 里快速测试 C/C++ 代码

概述 Visual Studio 强大、方便,但是每次写代码都要先创建新项目,这对于一些简单的代码测试来说有点不方便。 本文介绍一种使用 VS 快速测试代码的方法。 该方法适用任何版本的 VS。“不用创建项目”,是指不用“手工”创建项目&#xff0c…

Python Scrapy 爬虫简单教程

1. Scrapy install 准备知识 pip 包管理Python 安装XpathCssWindows安装 Scrapy $>- pip install scrapy Linux安装 Scrapy $>- apt-get install python-scrapy 2. Scrapy 项目创建 在开始爬取之前,必须创建一个新的Scrapy项目。进入自定义的项目目录中&am…

爆火出圈的ChatGPT,真的那么好用吗?

近期,ChatGPT在互联网行业爆火! 这个由人工智能研究和部署公司OpenAI开发的“交互机器人”,在今年1月其全球月活跃用户已达1亿,成为史上用户增长速度最快的消费级应用。 爆火的ChatGPT到底是什么? ChatGPT是一个原型人…

Java程序的执行顺序、简述对线程池的理解

点个关注,必回关 文章目录一、Java程序是如何执行的二、合理利用线程池能够带来三个好处一、Java程序是如何执行的 我们日常的工作中都使用开发工具(IntelliJ IDEA 或 Eclipse 等)可以很方便的调试程序,或者是通 过打包工具把项目…

删除Node.js,安装nvm,看这一篇就够了(有坑)

nvm的作用就是可以任意切换Node.js的版本,所以在下载nvm之前,现将系统中的Node.js全部删除,若之前没有安装过,可忽略第一步。 删除Node.js 一、程序和功能处找到Node.js,并删除 二、删除Node.js相关的目录文件 C:\Program Fil…