中国码农网

您现在的位置是:网站首页>Linux

Linux

exe里面存放的汇编指令不能在x下的Linux上运行

码农是干什么的2024-05-31Linuxlinux硬盘挂载
exe里面存放的汇编指令不能在x下的Linux上运行,linux硬盘挂载,菜鸟教程linux,现在大家的生活办公已经离不开电脑了,在经常和电脑打交道的小伙伴会发现,exe里面存放的汇编指令,不能在x下的Linux上运行。电脑的大量基础功能是由操作系统管控的

exe里面存放的汇编指令不能在x下的Linux上运行

   现在大家的生活办公已经离不开电脑了,在经常和电脑打交道的小伙伴会发现,exe里面存放的汇编指令,不能在 x下的Linux上运行。

   电脑的大量基础功能是由操作系统管控的,你必须经由操作系统才能使用这些功能,而不同系统的接口显然不一样。程序已经编译成了使用这个系统的接口,在另一个系统上显然根本不存在那些接口。

   如果想运行exe的话,重点其实不在于exe文件格式,以及怎么调入内存。重点在于可以系统能不能提供这些系统调用,可这谈何容易?不仅仅是DirectX,Windows中还有很多类似的COM,比如ADO之类的,都无法用DLL调用的方式解决。

   Linux 原生运行 exe 的障碍是 exe 文件大多是为 Windows 准备的,调用了 Windows 特有的 API,或者直接就是程序。老windows中断号是0x2e,现在系统调用x 都不走中断了,有专门的快速切换指令,I6下用sysrenter,x用syscall。问题是中断号一样也没用。传参约定不同,还有SSDT里面约定的系统调用功能号也不一样。

   即便linux能够载入PE格式的可执行文件,还是需要提供相应的运行时环境才可以。

   一个是因为pe和elf都不只包含二进制代码,还含有其他信息,所以pe和elf都是具有一定格式的,而linux内核只有elf的loader,没有pe的loader。

   特linux内核升级