一次偶然的情况,发现我电脑上的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程序相关推荐

  1. Linux | PCIe Hotplug | 概念及工作原理的不完全总结

    本文对 PCIe 热插拔的概念及工作原理进行不完全总结. 更新: 2022 / 12 / 31 Linux | PCIe Hotplug | 概念及工作原理的不完全总结 热插拔 组成部件 实现代码 通 ...

  2. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  3. 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...

    <信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)>由会员分享,可在线阅读,更多相关<信息技术七年级西交大版 第三节 计算机系 ...

  4. c语言智能插座多线程原理,智能插座原理—智能插座的工作原理是什么

    近年来,物联技术有了一个更高层次的发展,并且物联技术深入到智能家居领域当中,与智能化家电结合,设计制造出很多非常棒的智能电子产品.其中,很多插座厂商也朝着智能化的方向发展,智能插座产生.那么智能插座的 ...

  5. 现在使用计算机器工作原理,计算机显示器工作原理(17页)-原创力文档

    计算机显示器工作原理 计算机显示器工作原理 显示器技术 长宽比和可视区域 多频扫描显示器 显示器连接 显示器的颜色深度 LCD显示器 LCD的功能和特性 CRT显示器 CRT的功能和特性 LCD和CR ...

  6. Linux系统LVM逻辑卷工作原理,必看~

    一.传统的磁盘管理 其实在Linux操作系统中,磁盘管理机制和windows上的差不多,绝大多数都是使用MBR(Master Boot Recorder)都是通过先对一个硬盘进行分区,然后再将该分区进 ...

  7. linux下nand flash驱动工作原理,1.3.4. Nand flash驱动工作原理

    1.3.4. Nand flash驱动工作原理 在介绍具体如何写Nand Flash驱动之前,我们先要了解,大概的整个系统,和Nand Flash相关的部分的驱动工作流程,这样,对于后面的驱动实现,才 ...

  8. linux服务器基础知识及工作原理汇总

    服务器基础 一.服务器的种类 1.按网络规模划分 按网络规模划分,服务器分为工作组级服务器.部门级服务器.企业级服务器 2.按架构划分 按照服务器的结构,可以分为CISC(复杂指令集)架构的服务器和R ...

  9. Linux系统网卡驱动phy工作原理解析

    Linux网卡驱动架构 MAC控制器驱动是芯片厂商集成在SDK中 比如三星控制器.ATMEL控制器,这部分驱动厂商已经写好了, linux下自带通用phy驱动phy_device.c(phy层协议是通 ...

  10. unix cp 原理_Unix的工作原理:您都不敢问的一切

    unix cp 原理 重点 (Top highlight) Unix的工作原理:您都不敢问的一切 (How Unix Works: Everything You Were Too Afraid to ...

最新文章

  1. java注解返回不同消息,Spring MVC Controller中的一个读入和返回都是JSON的方法如何获取javax.validation注解的异常信息...
  2. 关于lucene的书
  3. 【摘录】手机操作系统三国时代的结束
  4. 计算机网络解决数据包丢失,数据包丢失时网络控制系统的稳定性分析及设计
  5. 修改注册表 为右键添加快捷命令
  6. Android Studio 插件开发详解三:翻译插件实战
  7. Python调用C语言
  8. ROS笔记(27) 机械臂的组装
  9. 今天闲着没事弄个几个表情包
  10. python删除列表空元素_Python 如何删除列表中的空值
  11. WAS生成的文件:javacore.***.txt 、heapdump.***.phd、core.***.dmp、Snap.***.trc
  12. 已root手机在DDMS下无法读取data目录的解决办法
  13. 如何准确的设置CAN总线的波特率,保证通信的稳定性
  14. 深入浅出 NXLog (二)
  15. 小米盒子 android 动画特效,小米安卓电视一个屏保动画效果
  16. 吃货在东京 -- 记那段吃不饱的日子 之三 筑地的生鱼刺身
  17. 自动化测试之数据驱动测试
  18. oracle报609,日志文件报错 ORA-609
  19. 【记录+解决】ubuntu服务器显卡驱动安装;Ubuntu20.04重启后找不到Nvidia显卡驱动
  20. 618手机争夺战:5G时代首场大考,荣耀再度领跑

热门文章

  1. pychram终止程序
  2. exsi添加gpu卡 v100s和a100 配置直通模式虚机电源启动失败
  3. 学习计算机基础必读的4本经典入门书籍,自学编程必备书单!
  4. 蓝牙抓包工具使用教程
  5. 小程序外链,实现桌面图标、短信和邮件外链跳转到小程序的工具
  6. 古诗词与代码之间不得不说的二三事。
  7. 国外AI知名论坛资源网站
  8. edge播放视频HTML5黑屏,Win10 edge 浏览器 播放视频黑屏解决方法
  9. 1的阶乘加到100的阶乘
  10. 7个黑科技搜索网站,啥都能搜到!