加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 二进制文件和操作系统

发布时间:2020-12-16 10:45:12 所属栏目:百科 来源:网络整理
导读:我目前正在学习C并且有一些(基本的)我不知道的东西以及我在不同搜索引擎上找不到任何有用的东西. 因为所有操作系统的可执行程序(Windows / Linux / Mac)都有不同的“二进制格式” – 有什么区别?我的意思是它们都是二进制的,但是除了所有的OS API之外还有什
我目前正在学习C并且有一些(基本的)我不知道的东西以及我在不同搜索引擎上找不到任何有用的东西.

>因为所有操作系统的可执行程序(Windows / Linux / Mac)都有不同的“二进制格式” – 有什么区别?我的意思是它们都是二进制的,但是除了所有的OS API之外还有什么真的不同吗?
>(Windows)这是一个愚蠢的问题 – 但是所有的应用程序都只是二进制(我的意思是只有0和1)?它们以哪种格式存储? (因为在所有文本编辑器中都没有看到0和1,但主要是不可显示的字符)

最好的祝福,
喇嘛

解决方法

Windows(PE),Linux(ELF),OS / X等(MACH-O)的可执行文件格式往往旨在解决常见问题,因此它们共享共同的功能.但是,每个平台都指定了不同的标准,因此即使平台使用相同类型的CPU,这些文件也不会跨平台兼容.

可执行文件格式不仅用于可执行文件,还用于库,它们也包含代码但从不直接由用户运行 – 只加载到内存中以满足直接可执行二进制文件的需要.

可执行文件格式的共同特征:

>一个或多个可执行代码块
>一个或多个只读数据块,如文本和数字
>一个或多个读/写数据块
>有关在运行应用程序时将这些块放在内存中的位置的说明
>还需要加载有关哪些库(也是“可执行文件格式”)的说明,以及它们如何连接(链接)到此可执行文件.
>一个或多个表将代码和数据位置映射到描述它们的字符串或id,对链接和调试很有用.

将这些格式与更基本的格式进行比较是很有趣的,例如古老的DOS .com文件,它简单地描述了要在下一个可用位置加载的64K各种“东西”,并且上面列出的功能很少.

在这个意义上的二进制用于将它们与以文本格式编写的“源”文件进行比较.二进制格式只是说它们是以非文本方式编码的,并不真正与0和1二进制意义相关.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读