我正在拼命地寻找一个或多或少的关于如何将应用程序加载到内存中,然后在Linux中执行的详细描述。基本上,我想知道从ELF文件中读取了什么信息,执行了哪些系统调用,比如exec(),直到这些信息存储在进程描述符中。
有谁知道一个好的描述。到目前为止,谷歌博士并不是很有帮助
谢谢
发布于 2010-02-03 23:25:40
您可以从内核源代码树中的fs/binfmt_elf.c文件开始,然后从那里开始(假设是向上)。它包含SVR4 ELF加载器。
如果你要找的是另一个装载机,我想它应该在同一区域。
发布于 2010-02-05 15:45:18
不像第一篇文章那么实用,但当我需要了解大局时,我发现下面的文章很棒:
http://www.linuxforums.org/articles/understanding-elf-using-readelf-and-objdump_125.html
http://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memory
http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory
最后两篇文章的作者Gustavo Duarte的博客也充满了关于操作系统的一般信息。我强烈推荐你去读一读。
https://stackoverflow.com/questions/2186415
复制相似问题