全文预览

计算机操作系统实验 解析ELF文件

上传者:幸福人生 |  格式:doc  |  页数:4 |  大小:133KB

文档介绍
roHeader++;?}?return0;}==============elf.c===================运行结果如图:2、掌握GeekOS在核心态运行可执行程序的原理,绘制出可执行程序在内核中加载、运行的流程图(需反映关键函数的调用关系)。答:ELF(Executableandlinkingformat)文件是UNIX系统实验室作为应用程序二进制接口而开发的可执行文件,是x86Linux系统下的一种常用目标文件(objectfile)格式。ELF文件格式如下表:ELF文件在磁盘中的映象和在内存中的执行程序镜像的对应关系如下图:表1ELF目标文件格式连接程序视图执行程序视图ELF头部ELF头部程序头部表(可选)程序头部表节区1段1...节区n段2.........节区头部表节区头部表(可选)ELF文件在磁盘中的映象和在内存中的执行程序镜像的对应关系如下图:图1ELF文件和内存中的可执行文件镜像流程图如下:四、实验分析思考题:输出个字符串为什么要如此大费周章?在a.exe中直接调用Print函数是否可行?答:不可行,直接打印Print(s1)则找不到字符串s1的正确位置,字符串变量名即代表地址信息,程序被加载进入内存时有了基址,需要通过基址加偏移量来找到字符串在内存中的正确位置,所以要调用ELF_Print函数。五、所遇问题及解决方法答:实验中遇到的问题首先就是代码难以阅读理解,对汇编陌生是一个主要的问题,其次就是代码之间的关联较多,层次较多,代码量也比较大,导致在阅读源码的过程中造成了很大的困难。最后在老师和同学们的帮助下,勉强理解了代码的基本结构以及实现的功能。通过此次实验,我由原来对操作系统只有一个粗浅的概念的认识的水平上升到对操作系统有比较深刻印象和理解的程度。不仅概念得到了进一步的理解,更对geekos在核心态下运行用户程序的原理有了更进一步的理解。

收藏

分享

举报
下载此文档