计算机操作系统实验-解析ELF文件西北工业大学操作系统实验实验报告一、实验目的熟悉可执行链接文件(ELF)的结构,了解GeekOS将ELF格式的可执行程序加载到内存,建立内核线程并运行的实现技术
二、实验要求1
修改Project1项目中的/GeekOS/elf
c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出
并且,填充Exe_Format数据结构中的值域
掌握GeekOS在核心态运行可执行程序的原理,绘制出可执行程序在内核中加载、运行的流程图(需反映关键函数的调用关系)
回答实验讲义P125页的思考题
三、实验过程及结果1、修改Project1项目中的/GeekOS/elf
c文件:在函数Parse_ELF_Executable()中添加代码,分析ELF格式的可执行文件(包括分析得出ELF文件头、程序头),获取可执行文件长度、代码段、数据段等信息,并打印输出
并且,填充Exe_Format数据结构中的值域
答:修改Project1项目中的/GeekOS/elf
c文件:在函数Parse_ELF_Executable()中添加代码,如下:==============elf
c===================intParse_ELF_Executable(char*exeFileData,ulong_texeFileLength,structExe_Format*exeFormat){inti;elfHeader*head=(elfHeader*)exeFileData;programHeader*proHeader=(programHeader*)(exeFileData+head->phoff);KASSERT(exeF