gpt4 book ai didi

operating-system - 关于基于 ROM 的可执行文件的基本问题

转载 作者:行者123 更新时间:2023-12-04 10:12:37 25 4
gpt4 key购买 nike

我对存储在 ROM 中的可执行文件有基本的疑问。

据我所知,具有文本和 RO 属性的可执行文件存储在 ROM 中。问题是因为ROM是只读存储器,如果出现代码需要写入内存的情况会怎样?

我无法在这里想出任何例子来引用(可能我对这种情况一无所知,或者我错过了基本的东西;)但是关于这个主题的任何线索都可以极大地帮助我理解! :)

最后关——
1、有没有这种情况?
2. 在这种情况下,将代码从 ROM 复制到 RAM 是答案吗?

用一些例子回答可以大大帮助..

提前谢谢了!

/多发性硬化症

最佳答案

由于硬件限制,只读存储器是只读的。该程序可能位于 EEPROM 、防止写入的闪存、CD-ROM 或任何硬件物理上不允许写入的东西。如果软件写入 ROM,硬件无法更改存储的数据,因此什么也不会发生。

所以如果一个软件程序在ROM想写入内存,它写入 RAM .那是唯一的选择。如果程序正在从 ROM 运行并且想要 change itself ,它不能,因为它不能写入 ROM。但是,是的,该程序可以从 RAM 运行。

事实上,除了在最小的嵌入式系统中,从 ROM 运行是很少见的。操作系统在运行之前将可执行代码从 ROM 复制到 RAM。有时 code is compressed在 ROM 中,运行前必须解压到 RAM 中。如果 RAM 已满,操作系统将使用 paging来管理它。从 ROM 运行的原因如此罕见是因为 ROM 比 RAM 慢,有时代码需要由 loader 更改。在运行之前。

请注意,如果您有修改自身的代码,则您确实必须了解您的系统。许多系统使用 data-execution prevention (DEP)。可执行代码进入 RAM 的读取+执行区域。数据进入读+写区域。所以在这些系统上,代码永远不会在 RAM 中改变自己。

关于operating-system - 关于基于 ROM 的可执行文件的基本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com