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

我对存储在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中自行改变.

相关文章
相关标签/搜索