linux wine 原理,wine的工作原理与自动运行PE程序
一次偶然的情况,发现我电脑上的linux可以直接使用./来执行tools/vnd/BCM7584UPKFxBA/brcm_sign_enc.exe程序,但是另外一台linux电脑就不可以。使用file命令查看该文件是windowsPE格式的程序。由于我电脑上有wine,猜测它是通过wine来执行的,因此 cat /proc/PID/maps,发现确实是被wine执行的,代码段加载了很多wine相关的库。
那么问题来了,一个windowsPE格式的控制台程序,是如何直接通过./被解释执行的呢?经过查阅资料,发现是/proc/sys/fs/binfmt_misc起的作用:
[lubo@localhost binfmt_misc]$ cat windowsPE
enabled
interpreter /usr/bin/wine
flags:
offset 0
magic 5045(注:'P','E'的ascii码)
手动设置:
echo :windows:M::MZ::/usr/bin/wine: > /proc/sys/fs/binfmt_misc/register
echo :windowsPE:M::PE::/usr/bin/wine: > /proc/sys/fs/binfmt_misc/register
开机自动设置的地方在:
[lubo@localhost binfmt.d]$ cat /usr/lib/binfmt.d/wine.conf
# Pre-PE Windows Executables
:windows:M::MZ::/usr/bin/wine:
# PE Windows Executables
:windowsPE:M::PE::/usr/bin/wine:
关于wine:
之前一直把wine看成一个windows模拟器,但是wine的全名又傲娇的说自己不是模拟器:Wine Is Not Emulator。
下载了wine的源代码和文档简单看了下,这才了解了wine的工作原理:准确的说,wine是*nix系统上对windows API的开源实现。
wine包含了一个windowsPE程序的loader,用来将windowsPE程序及相关dll库装载到linux进程环境,同时保留维护着windows环境所需要的一些上下文参数。
另外wine中对一些必须重新实现的windows系统dll库使用linux共享库来进行了实现。
如此看来,wine是运行时刻对windowsAPI进行的动态翻译,而不是一个模拟器来模拟windows系统的运行逻辑。
另外,wine还提供了windows常用命令的linux实现,使得用户可以重新编译生成windows命令工具。
关于安全性:
和虚拟机不同,由于运行的程序没有隔离,因此wine的安全性也值得考虑:理论上讲windows病毒是可以通过wine来污染linux环境的,所以至少千万不要用root来运行wine。
相关资料:
https://www.winehq.org/
http://book.51cto.com/art/201211/364983.htm
https://wiki.archlinux.org/index.php/Wine_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29
https://www.kernel.org/doc/Documentation/binfmt_misc.txt
http://blog.csdn.net/summerhust/article/details/6097198
linux wine 原理,wine的工作原理与自动运行PE程序相关推荐
- Linux | PCIe Hotplug | 概念及工作原理的不完全总结
本文对 PCIe 热插拔的概念及工作原理进行不完全总结. 更新: 2022 / 12 / 31 Linux | PCIe Hotplug | 概念及工作原理的不完全总结 热插拔 组成部件 实现代码 通 ...
- Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统
Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...
- 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...
<信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)>由会员分享,可在线阅读,更多相关<信息技术七年级西交大版 第三节 计算机系 ...
- c语言智能插座多线程原理,智能插座原理—智能插座的工作原理是什么
近年来,物联技术有了一个更高层次的发展,并且物联技术深入到智能家居领域当中,与智能化家电结合,设计制造出很多非常棒的智能电子产品.其中,很多插座厂商也朝着智能化的方向发展,智能插座产生.那么智能插座的 ...
- 现在使用计算机器工作原理,计算机显示器工作原理(17页)-原创力文档
计算机显示器工作原理 计算机显示器工作原理 显示器技术 长宽比和可视区域 多频扫描显示器 显示器连接 显示器的颜色深度 LCD显示器 LCD的功能和特性 CRT显示器 CRT的功能和特性 LCD和CR ...
- Linux系统LVM逻辑卷工作原理,必看~
一.传统的磁盘管理 其实在Linux操作系统中,磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进 ...
- linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理
1.3.4. Nand flash驱动工作原理 在介绍具体如何写Nand Flash驱动之前,我们先要了解,大概的整个系统,和Nand Flash相关的部分的驱动工作流程,这样,对于后面的驱动实现,才 ...
- linux服务器基础知识及工作原理汇总
服务器基础 一.服务器的种类 1.按网络规模划分 按网络规模划分,服务器分为工作组级服务器.部门级服务器.企业级服务器 2.按架构划分 按照服务器的结构,可以分为CISC(复杂指令集)架构的服务器和R ...
- Linux系统网卡驱动phy工作原理解析
Linux网卡驱动架构 MAC控制器驱动是芯片厂商集成在SDK中 比如三星控制器.ATMEL控制器,这部分驱动厂商已经写好了, linux下自带通用phy驱动phy_device.c(phy层协议是通 ...
- unix cp 原理_Unix的工作原理:您都不敢问的一切
unix cp 原理 重点 (Top highlight) Unix的工作原理:您都不敢问的一切 (How Unix Works: Everything You Were Too Afraid to ...
最新文章
- java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
- 关于lucene的书
- 【摘录】手机操作系统三国时代的结束
- 计算机网络解决数据包丢失,数据包丢失时网络控制系统的稳定性分析及设计
- 修改注册表 为右键添加快捷命令
- Android Studio 插件开发详解三:翻译插件实战
- Python调用C语言
- ROS笔记(27) 机械臂的组装
- 今天闲着没事弄个几个表情包
- python删除列表空元素_Python 如何删除列表中的空值
- WAS生成的文件:javacore.***.txt 、heapdump.***.phd、core.***.dmp、Snap.***.trc
- 已root手机在DDMS下无法读取data目录的解决办法
- 如何准确的设置CAN总线的波特率,保证通信的稳定性
- 深入浅出 NXLog (二)
- 小米盒子 android 动画特效,小米安卓电视一个屏保动画效果
- 吃货在东京 -- 记那段吃不饱的日子 之三 筑地的生鱼刺身
- 自动化测试之数据驱动测试
- oracle报609,日志文件报错 ORA-609
- 【记录+解决】ubuntu服务器显卡驱动安装;Ubuntu20.04重启后找不到Nvidia显卡驱动
- 618手机争夺战:5G时代首场大考,荣耀再度领跑