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

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

ID:62553948

大小:56.92 KB

页数:5页

时间:2021-05-12

计算机操作系统实验_解析ELF文件.docx_第1页
计算机操作系统实验_解析ELF文件.docx_第2页
计算机操作系统实验_解析ELF文件.docx_第3页
计算机操作系统实验_解析ELF文件.docx_第4页
计算机操作系统实验_解析ELF文件.docx_第5页
资源描述:

《计算机操作系统实验_解析ELF文件.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、精品文档西北工业大学操作系统实验实验报告一、实验目的熟悉可执行链接文件(ELF)的结构,了解GeekOS等ELF格式的可执行程序加载到内存,建立内核线程并运行的实现技术。二、实验要求1.修改Projectl项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出。并且,填充Exe_Format数据结构中的值域。2.掌握GeekOSft核心态运行可执行程序的原理,绘制出可执行程序在内核中加载、运行的流程图(需反映关键函数的

2、调用关系)。3.回答实验讲义P125页的思考题。三、实验过程及结果1、修改Projectl项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出。并且,填充Exe_Format数据结构中的值域。答:修改Project1项目中的/GeekOS/elf.c文件:在函数Parse_ELF_Executable()中添加代码,如下:==============elf.c===================intParse_E

3、LF_Executable(char*exeFileData,ulong_texeFileLength,structExe_Format*exeFormat){inti;elfHeader*head=(elfHeader*)exeFileData;programHeader*proHeader=(programHeader*)(exeFileData+head->phoff);KASSERT(exeFileData!=NULL);KASSERT(exeFileLength>head->ehsize+head->phentsize*head->phnum);KASSERT(head

4、->entry%4==0);exeFormat->numSegments=head->phnum;.。1欢迎下载精品文档exeFormat->entryAddr=head->entry;for(i=0;iphnum;i++){exeFormat->segmentList[i].offsetInFile=proHeader->offset;exeFormat->segmentList[i].lengthInFile=proHeader->fileSize;exeFormat->segmentList[i].startAddress=proHeader->vaddr;e

5、xeFormat->segmentList[i].sizeInMemory=proHeader->memSize;exeFormat->segmentList[i].protFlags=proHeader->flags;proHeader++;}return0;}==============elf.c===================运行结果如图:T•Bwhsemufatar,http;//bochs.sourceforge,net/F*in;HI18192KBmemorydetected1670patfesinfreeHst1948576bytesinkerneIheapI

6、nitializingIDT...

7、Initiali^ingtimer...belayloop:"641iterationspertickllnitiallzIngkeyboard.4.ilnitia1izin^DMAControIler...Initializingfloppycontroller,..fdO:tyIheads=2,secttjrs=18initializingIDEcantroIler...ide0:ug】=4露heads=B,sectors=63HnuntedflesystBMfWeIcofhetoGeekOS!StartingtheHiHiHiIlfTT

8、his*ThisisTThisisSpawnerthread...thefirststringthesecondstringthethird(andlast)stringyouseethifyou'rchappy2、掌握GeekOSS核心态运行可执行程序的原理,绘制出可执行程序在内核中加载、运行的流程图(需反映关键函数的调用关系)。答:ELF(Executableandlinkingformat)文件是UNIX系统实验室作为应用程序二进制接口而开发的可执行文件,是x86Linux

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。