Multithreading 什么是可重新定位的可执行文件?为什么需要它

Multithreading 什么是可重新定位的可执行文件?为什么需要它,multithreading,memory-management,embedded,multitasking,Multithreading,Memory Management,Embedded,Multitasking,可重定位可执行文件的用途是什么?它是如何生成和使用的 我们所说的进程内存映射重新映射是什么意思 如果有人能向嵌入式系统解释我的w.r.,那就太好了 提前谢谢 -达斯 可重定位可执行文件的用途是什么 请看这里: 它是如何使用的 取决于语言 我们所说的进程内存映射重新映射是什么意思 请参阅本文档中的所有内容: 一个建议是,看看一些书和谷歌 可重定位可执行文件的用途是什么 请看这里: 它是如何使用的 取决于语言 我们所说的进程内存映射重新映射是什么意思 请参阅本文档中的所有内容: 一个建议是,看看一些

可重定位可执行文件的用途是什么?它是如何生成和使用的

我们所说的进程内存映射重新映射是什么意思

如果有人能向嵌入式系统解释我的w.r.,那就太好了

提前谢谢 -达斯

可重定位可执行文件的用途是什么

请看这里:

它是如何使用的

取决于语言

我们所说的进程内存映射重新映射是什么意思

请参阅本文档中的所有内容:

一个建议是,看看一些书和谷歌

可重定位可执行文件的用途是什么

请看这里:

它是如何使用的

取决于语言

我们所说的进程内存映射重新映射是什么意思

请参阅本文档中的所有内容:


一个建议是,看看一些书和谷歌

嵌入式系统可重定位映像的关键思想是:

  • 无论在何处发生跳转或调用指令,都应将其编码为相对地址,而不是绝对地址。例如,在x86中,
    jmp
    操作码可以是:
    • E9
      ,即
      jmp rel32
      ,或
    • EA
      ,即
      jmp ptr32
必须以这种方式编码的原因与嵌入式系统特别相关。与之相反,对于嵌入式系统,操作系统有一个映像加载器,它将可执行文件放在内存中,并为执行做好准备。映像加载器执行的部分准备工作涉及根据内存中可执行文件的重新定位重新写入任何绝对地址。正是这种操作系统功能导致可执行映像中出现“重新定位表”。如果没有操作系统工具来解析和操作这些表,就不会发生重新定位


在嵌入式系统设置中,通常的方法不是实现重新映射绝对地址的操作系统功能,而是完全避免绝对地址。

嵌入式系统可重定位映像的关键思想是:

  • 无论在何处发生跳转或调用指令,都应将其编码为相对地址,而不是绝对地址。例如,在x86中,
    jmp
    操作码可以是:
    • E9
      ,即
      jmp rel32
      ,或
    • EA
      ,即
      jmp ptr32
必须以这种方式编码的原因与嵌入式系统特别相关。与之相反,对于嵌入式系统,操作系统有一个映像加载器,它将可执行文件放在内存中,并为执行做好准备。映像加载器执行的部分准备工作涉及根据内存中可执行文件的重新定位重新写入任何绝对地址。正是这种操作系统功能导致可执行映像中出现“重新定位表”。如果没有操作系统工具来解析和操作这些表,就不会发生重新定位


在嵌入式系统设置中,通常的方法不是实现重新映射绝对地址的操作系统功能,而是完全避免绝对地址。

我当然希望如此。。。考虑另一种选择,我希望如此…考虑另一种选择。