【发布时间】:2010-12-30 07:55:00
【问题描述】:
我参加了三星的面试。他们问了很多关于程序内存布局的问题。我对此几乎一无所知。
我用谷歌搜索了“可执行程序的内存布局”。 “进程的内存布局”。
我很惊讶地发现关于这些主题的信息并不多。大多数结果是论坛查询。我只是想知道为什么?
这些是我找到的几个链接:
我想从一本合适的书而不是一些网络链接中学习这一点。(兰迪海德的书也是一本书,但其他书)。我可以在哪本书中找到关于这个主题的清晰和更多信息?
我也想知道,为什么操作系统的书没有在他们的书中介绍这个?我读了stallings第6版。它只是讨论了过程控制块。
整个布局的创建是linker的任务对吧?我在哪里可以阅读有关此过程的更多信息。我想要从磁盘上的程序到处理器上执行的COMPLETE信息。
编辑:
最初,即使在阅读了下面给出的答案后,我也不清楚。最近,我读了这些文章,我明白了。
帮助我理解的资源:
- www.tenouk.com/Bufferoverflowc/Bufferoverflow1b.html
- 5部分PE文件格式教程:http://win32assembly.online.fr/tutorials.html
- 优秀文章:http://www.linuxforums.org/articles/understanding-elf-using-readelf-and-objdump_125.html
- PE 资源管理器:http://www.heaventools.com/
是的,“可执行程序的布局(PE/ELF)”!=“进程的内存布局”)。在第 3 个链接中自行查找。 :)
清除我的概念后,我的问题让我看起来很愚蠢。 :)
【问题讨论】:
-
这在 DOS、Windows 和 Unix 之间会有所不同,在 Unix 的不同风格之间也可能有所不同。你应该更具体
-
我不在乎那个“有点”。学习一个操作系统应该概述所有其他操作系统,对吗?无论如何,我会选择 WINDOWS。
-
无法访问 linuxforums 数据库。请稍后再试
-
链接 2 和 3 已损坏
标签: memory assembly process operating-system