Linux 安装使用指南:waifor 模拟器简介 (linux 版waifor)

Linux 安装使用指南: wfor 模拟器简介

现代电脑游戏产业已经成为世界战略性重要的文化产业之一,游戏在娱乐、教育、科研等领域中也扮演着重要的角色。在这个快节奏的时代,玩家们需要每时每刻都能够享受到高质量、高画面、高音效的游戏体验,但是很多高质量游戏只能在特定的操作系统平台下运行,这使得众多玩家无法获得相应的操作系统。而Linux 作为一个免费、开源、自由、安全、稳定的操作系统平台,成为了越来越多玩家的选择。然而,很多玩家在Linux 上运行游戏时会遇到很多困难,如何解决这些难题呢?今天我们就要给大家介绍一个有利于解决这些问题的工具——wfor 模拟器。

1、wfor 模拟器是什么?

wfor 模拟器是一款完全免费的基于Wine的Windows应用程序兼容层,它的作用是将Windows 上的任意程序在Linux 上运行。该软件采用的是开源协议分发和维护,具有非常好的跨平台性,可以在Windows、Mac OS X 和Linux 上进行安装和运行。

2、如何安装 wfor 模拟器?

wfor 模拟器的安装非常简单,只需要在官方网站(https://www.wfor.com/)下载相应的安装程序即可。安装过程中只需要按照提示一步一步操作即可。在启动模拟器之前,您需要检查您的Linux 操作系统是否具有所需的软件包和库。

3、如何使用 wfor 模拟器?

安装完 wfor 模拟器以后,就可以开始在 Linux 上运行 Windows 上的任何应用程序了。可以通过以下步骤来使用 wfor 模拟器:

(1)首先您需要将Windows 安装程序复制到Linux 的某个位置,例如桌面。

(2)然后在 Linux 中打开终端,输入以下命令 wfor 路径/程序.exe(路径是指Windows 程序所在的文件夹路径,程序.exe 则是Windows 程序的文件名)

(3)等待 wfor 模拟器自动模拟完成,就可以在 Linux 上看到程序启动器图标了,您现在可以直接运行程序了。

4、wfor 模拟器的优缺点

wfor 模拟器相对于其它 Windows 应用程序兼容层在 Linux 上运行 Windows 程序的优势在于:

(1)开源协议,更容易得到修复和改进

(2)稳定、可靠的运行环境

(3)兼容性更好,支持更多的 Windows 应用程序

同时,wfor 模拟器也有一些不足之处,例如:

(1)在 Linux 上运行 Windows 应用程序还是有很多不兼容、运行错误等问题,尤其是一些复杂的 Windows 应用程序。

(2)对于一些高质量、高要求的游戏和软件,wfor 模拟起来效果不如将 Linux 和 Windows 双重启动系统在同一台计算机上运行。

5、

总体来说,尽管 wfor 模拟器是一款非常优秀的程序,它可以帮助更多人在 Linux 上运行 Windows 程序,但是它仍有一些不足之处。如果你想在 Linux 上运行高质量、复杂的 Windows 应用程序,建议您还是选择将 Linux 和 Windows 双重启动系统在同一台计算机上运行。不过,wfor 模拟器在帮助更多人解决在 Linux 上运行 Windows 程序的问题上做出了非常有益的贡献。

相关问题拓展阅读:

linux版本信息和区别

查看内核版本命令:

1) # cat /proc/version

Linux version 2.6.18-238.el5 ((mailto:)) (gcc version 4.1.(Red Hat 4.1.2-50)) #1 P Sun Dec 19 14:22:44 EST 2023

2)信核# uname -r

2.6.18-238.el5

3)# uname -a

Linux SOR_SYS.99bill.com 2.6.18-238.el5 #1 P Sun Dec 19 14:22:44 EST 2023 x86_64 x86_64 x86_64 GNU/Linux

查看linux版本:

1) 登录到服务器执行 l_release -a ,即可列出所有版本信息,例如:

# l_release -a

LSB Version:    :core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch

Distributor ID: RedHatEnterpriseAS

Description:    Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

Release:

Codename:NahantUpdate4

注:这个命滑悄掘令适用于所有的linux,包括Redhat、SuSE、Debian等发行版。

2) 登录到linux执行cat /etc/issue,例如如下:

# cat /etc/issue

Red Hat Enterprise Linux Server release 5.6 (Tikanga)

Kernel \r on an \m

– 3) 登录到linux执行cat /etc/redhat-release ,例如如下:

– # cat /etc/redhat-release

  Red Hat Enterprise Linux AS release 4 (Nahant Update 4)

– 注:这种方式下可以直接看到具体的版本号,比运高如 AS4 Update 1

另:第3)、4)两种方法只对Redhat Linux有效

5) # file /bin/bash

/bin/bash: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

6) # file /bin/cat

/bin/cat: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

linux版本信息说明

Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y

  r:目前发布的内核主版本。

  x:偶数表示稳定版本;奇数表示开发中版本。

  y:错误修补的次数。

内核版本号每位都代表什么 ?

•以版本号为例: 2.6.18-128.ELp ,

•r:  2 , 主版本号

•x:  6 , 次版本号,表示稳定版本

•y:  18 , 修订版本号 , 表示修改的次数,头两个数字合在一齐可以描述内核系列。如稳定版的2.6.0,它是2.6版内核系列。

•128:  表示这个当前版本的第5次微调patch , 而ELp指出了当前内核是为ELp特别调校的

•EL :  Enterprise Linux  ; p : 表示支持多处理器 , 表示该内核版本支持多处理器

amd和intel

amd和Intel这俩公司的渊源很深,早期时Intel先是自己搞了个x86架构,然后amd拿到了x86的授权也可以自己做x86了。接着intel向64位过渡的时候自己搞了个ia64(x64架构)但是因为和x86架构不兼容市场反应极差,amd率先搞了x86的64位兼容(32和64的混合架构)也就是后来的x86-64,后来Intel也拿到了生产这货的授权(i和a两家专利交叉的很严重),也搞了x86-64,因为amd先搞出来的所以x86-64也叫amd64

目前amd和Intel是世界上更大的两家x86和x86-64的cpu厂家(intel比较给力,四分天下有其三)。除了这两家还有几家小的公司也有x86的授权,比如via,不过技术水平真的很一般

x86

x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32”

早期的x86是cisc的代表,后来的发展中逐步引入了risc的部分理念,将内部指令的实现大量模块化,准确来说是一个cisc外加risc部分技术的架构。目前x86的主要产品有Intel的至强,酷睿,奔腾,赛扬和凌动;amd的锐龙,apu等。上文提到的x64架构目前只有intel 安腾而且已经放弃了产品线。

到目前为止intel和amd的x86架构cpu虽然指令集上有很大差别了但是还是相互兼容的,所以软件可以直接用。’

x84_64 与amd64

x84_64是x86 CPU开始迈向64位的时候,有2选择:1、向下兼容x86。2、完全重新设计指令集,不兼容x86。AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的之一桶金,得到了用户的认同。而Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64(这玩意似乎就是安腾),但是比amd晚了一步,而且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。。。后来不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展,大概是不愿意承认这玩意是AMD设计出来的。

也就是说实际上,x86_64,x64,AMD64基本上是同一个东西,我们现在用的intel/amd的桌面级CPU基本上都是x86_64,与之相对的arm,ppc等都不是x86_64。

arm与mips

arm是risc的典型代表,不过在arm的发展过程中引入了部分复杂指令(完全没有复杂指令的话操作系统跑起来异常艰难),所以是一个risc基础外加cisc技术的cpu。

arm的主要专利技术在arm公司手中,像高通,三星,苹果这些公司需要拿到arm的授权。

另一个risc的典型处理器就是mips。mips是一个学院派的cpu,授权门槛极低,因此很多厂家都做mips或者mips衍生架构。我们平时接触到的mips架构cpu主要用在嵌入式领域,比如路由器。

目前最活跃的mips是中国的龙芯,其loongisa架构其实是mips的扩展。

mips mipsel mips64el 区别

– Debian目前提供3个端口,’mips’,’mipsel’和’mips64el’。 ‘mips’和’mipsel’端口分别是大端和小端变体,使用O32 ABI和硬件浮点。他们在Jessie中使用MIPS II ISA,在Stretch中使用MIPS32R2 ISA。 ‘mips64el’端口是一个64位小端端口,使用N64 ABI,硬件浮点和MIPS64R2 ISA。

– mips 是32位大端字节序

如何将vc中的overlapped结构转为linux

最近要研究串口通信,其中用到了overlapped结构,一直不能理解,

今天在网上看到有人这样解释overlapped,太经典的解释了。

OVERLAPPED结构主要在一些重叠IO等异步操作中起作用。

即:你需要操作系统传递一批数据,于是填了一个overlapped的订单,订单上写着从哪里(数据的偏移位置)开始传输,于是你去干别的事去了。系统完成传输就打个(激活hEvent)叫你验收,你看到overlapped订单上系统写着的传输的数据数量验收接收的数据。

下面还有篇对overlapped的转载:

OVERLAPPED,顾名思义为重叠,乍一看会很奇怪,重叠?谁跟谁重叠?

似乎在WIN32的Programming中没有这个概念呀?要讨论这个问题就要追溯

到对设备I/O的访问中

在WIN32中,用户不能象以前那样直接对硬件进行访问,使得这一层

对开发者而言是个”黑盒”,而是提供了一组对应的API的接口.让开发者

基于提供的接口进行开发,而把低层的访问交给了Driver或者内核.

在WIN32中,设备的概念已经远远超过了Moniter,Printer等的范围,大概

可以包括文件,目录,串口,并口,管道以及控制台等.很自然的,当我们要

访问这个设备的时候,我们的之一步就是打开这个设备,其中WIN32 API

提供的是CreateFile,具体的使用可以参考MSDN,其中包括的一些

参数表明了是否这个设备已经存在(dwCreationDisposition),

是否以独占的方式(dwShareMode)打开等等.

这里大家可能已经产生了这个想法:呀,既然是跟设备打交道,

那么设备的速度这么慢,而CPU的速度这么快,这两者应该怎么

协调好呢?举个例子说,我要访问软盘上的资料,哪怕它是一秒

后就读出来了,那其实对CPU也是一种很大的浪费呀.是的,的确

会有这个问题,既然有问题,我们就要解决,而MicroSoft

的解决方式就是这里我们的讨论题目:OverLapped

这个字符到底是什么含义呢?其实它的意思就是当程序在等待

设备操作的时候,可以继续往下做而不必阻塞到那个地方等待

设备操作的返回,这就造成了程序运行和设备操作时间上的

重叠.是的,是这样的,神奇吧,那么程序该怎么知道设备操作

什么时候做完了返回了呢…

讲到这个地方,我们又要引入多线程的概念了.其实

相信大家对多线程都有了一定的了解,其实多线程主要

就是一个同步的问题,如何协调好这些”跑起来就不羁”

的线程,WIN32提供给我们的是WaitForSingleObject

和WaitForMultiObject这两个函数,而WIN32中提供了

一组专门用来同步的对象包括Critical Section,

Mutex,Semaphore,Event等,这其中的绝大多数都

属于内核对象(Kernal Object),其中这些对象与

一般对象的更大区别就是他们是属于系统内核维护

的一块数据结构.程序不能直接访问他们.这些对象

都具备两种形态,这里我们不妨称之为:有信号的和

无信号的.这样当我们使用Wait函数的时候,就可以

根据信号的有无来使得程序是否阻塞在wait的地方,

简单的说,就是当我们调用一个函数:WaiForSingObject(Event a);

的时候,如果a事件有信号,那么程序就往下跑,如果是

无信号的,那么程序就阻塞在当前位置,等待其变为

有信号的.举个形象的粒子,比如线程是个在高速公路

上跑的汽车,Wait函数的作用就是让这辆汽车开到

一个十字路口,等待路口的信号灯是否为绿色的,如果

是那么汽车接着往下跑,否则对不起,请等在那边等

信号灯变为绿色轮祥..

在这里,我使用下来最方便的就是Event这个对象了,

因为我们可以很方便的对它进行操作,比如SetEvent

使的它变为有信号的,而ResetEvent使得它变为无信号的,

当然其他的一些比如Mutex在使得程序不能重复

加载等地方也很方便..

这样当我们想要异步的(OVERLAPPED)访问设备

的时候,只要首先在CreataFile的时候用上(OVERLAPPED)

标志,然后在读写操作(对应的是WriteFile和ReadFile)

的时候同样使用这个标志即可…

看看下面这段:

//腊岩搏//1处////以重叠方式枣槐接收指定字符,看函数是否读取成功

fReadStat=ReadFile(hCom,lpBlock,dwLength,&dwLength,&osRead);

if(!fReadStat)

{

重叠方式操作在后台进行的情况…

if(GetLastError()==ERROR_IO_PENDING)

{

////2处

待1s,若接收事件处于信号态,说明重叠方式操作完成,超时…

////3处 if(WaitForSingleObject(osRead.hEvent,1000)==WAIT_TIMEOUT)

dwLength=0;

}

else dwLength=0;//异常情况

}

这样当程序在用异步的方式读取资料的时候,不管

设备有没有操作完,程序会立即往下跑而不用等待其返回(

如果是同步的那线程就会阻塞在这个地方).这样我们

在2处的地方就可以自己做自己的事情而不用去管设备(这样

也就实现了时间上的重叠),直到我们需要等待3处资料

进来后再做进一步的处理的时候,我们才会用上

那句WaitFor等待设备..

这样的操作无疑提高了效率,使得程序和设备

的配合协调了不少,当然OVERLAPPED里面是自己

新开了线程来处理,这是毫无疑问的…

参考文献: Advanced Windows

Mlutithreading Applications in Wim32

linux 版waifor的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 版waifor,Linux 安装使用指南:waifor 模拟器简介,linux版本信息和区别,如何将vc中的overlapped结构转为linux的信息别忘了在本站进行查找喔。


数据运维技术 » Linux 安装使用指南:waifor 模拟器简介 (linux 版waifor)