一个可执行的二进制文件包含的不仅仅是机器指令
来源:http://www.tudoupe.com时间:2022-06-12
为什么 Linux和Windows可执行的文件不能是普遍的吗?
主要原因是不同的格式和API, 前者更重要。
可执行的二进制文件不仅包含机器指令,还包含各种数据、程序运行资源,机器指令只是其中的一部分。

当一个可执行文件要执行时,操作系统需要为它分配资源,这些资源包括:内存空间(物理和虚拟),进程、线程资源等,可执行文件的机器指令通常放在代码节(在编译语言中称为文本节)。其它资源可能放到 数据段 以及其它段里 。
这里 的 「記憶體」可以被廣泛理解為記憶體的範圍。操作系统(Windows/Linux)需要知道该可执行文件需要多少内存,有多少个段,分别载入存储地址的.可执行文件需要告诉操作系统,如何准备一个可以运行的有效的行文件。
文章相对比较长,字数比较多,你可以打开头,先看看我。之后慢慢看,我本人今年早些时候录制了一套比较系统进入到家庭的视频教程。任何想找我的学生都可以免费得到。我能像左下角的黑色字母那样抬起头来,还有我能抬起哦。最近比较闲,带做毕设,邀请学生参加省级或高等教育比赛//

在可执行文件执行之前,操作系统需要一些准备工作,因为不同的操作系统,准备工作是不同的,因此可执行的文件格式并不完全相同。在Windows上,大多数可执行的文件都是PE格式,在Linux上,大多数可执行的文件都是以ELF格式的。不同的格式会导致不同的可执行文件不能直接使用在各个平台中。这是原因之一。
当然了,我在互联网上看到了一个解决各种形式问题的巨人,但跨平台业务也需要解决另一个障碍,它与操作系统API不同。大部分由可执行文件执行的操作(例如文件操作、输入和输出、内存应用程序发布、任务调度等)需要与操作系统交互。不同的操作系统使用完全不同的操作方法,因此, 克服 这 一 障碍 更加 困难 。这是原因之二。
如果果实能解决上述两个原因,因此一些可执行的文件可以理论上运行在x86平台上,在Windows和Linux上运行,因为在Intel和AMD CPU中,主要的硬件指令是相同的。也就是说,1001的这个二进制数,是一样的。但是如果你转到ARM平台,更大的问题是,硬件指令也是不同的。那就不可能了。
一个对单张卡机感兴趣的朋友可以与我联络 , 我把一些作业记录在单片机上 , 我会给你买你所需要的鞋子 , 免费的 , 我可以私下从林先生那里拿去 ~ 点击我的头来获取它
是否有可能在平台上运行可执行的文件,理论上是存在的,过去还有其他方法,但限制极多,例如,Windows用于支持COM格式的文件,该文件没有标题。尺寸不能超过64K,只在16位环境中运行(真实或虚拟),这是一个真正的裸体二进制文件。Linux上的一些BIN文件也是裸的二进制文件(有些BIN文件没有ELF头,但并非所有的BIN都是这样。
在某些配置后,BIN文件也可以在Linux上运行。因此,一些巧妙设计的COM/BIN文件可以在极限限制的平台中运行,但也许只能做计算,无法做输出,尺寸只有64K,如果你做一些比较复杂的事情,需要两套机器代码。另外,不幸的是,COM文件不再在64位环境中支持。
好了 , 这期就到这里了 , 感觉好像你对屏幕前面有问题
上一篇:全球 77.5% 的网站,都在使用“世界上最好的语言” PHP!
下一篇:没有了
相关新闻
- 2022-06-12 全球 77.5% 的网站,都在使用“世
- 2022-06-11 AMD 发布Win11 22H2 WDDM 3.1驱动:大幅提
- 2022-06-11 一种快速创建测试窗口的方法
- 2022-06-11 美市场新消息传来,华为再一次做
- 2022-06-11 微软谈收购动视暴雪:只有全新游
- 2022-06-11 爆料大神透露《空洞骑士:丝之歌
- 2022-06-11 爆料大神透露《空洞骑士:丝之歌
- 2022-06-11 IP地址错误,提示网络无法接通,可
- 2022-06-11 38核GPU!苹果M2 Max曝光:性能强到爆
- 2022-06-11 Xbox 打造未来 20 年的游戏平台
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
