南京大学CSAPP Lab 5-9:ELF加载与监控实验详解
4星 · 超过85%的资源 需积分: 50 141 浏览量
更新于2024-07-18
1
收藏 831KB PDF 举报
南京大学计算机科学与技术系的《计算机系统基础》课程实验手册,专注于lab5-9,即"ELF加载与监控"。该实验旨在帮助学生深入理解ELF(Executable and Linkable Format)可执行文件格式,并通过编写一个简单的静态链接程序加载器来实践相关知识。在实验中,参与者需要实现以下关键点:
1. **目标:** 实现一个静态链接的ELF加载器,而不是动态链接加载器,以避免复杂的GOT地址管理和重定位项处理。这有助于简化实验,让学生专注于基础的ELF结构。
2. **实验流程:** 学生需要在提供的代码目录下执行`make`命令,编译`main.c`文件,生成名为`a.out`的加载器可执行文件。运行方式为`./a.out prog`,其中`prog`是预设的静态链接、无参数的ELF可执行文件。
3. **可执行文件组织:** 加载器需解决可执行文件内部代码和数据的位置问题,包括确定它们在文件中的开始位置、数据量以及程序的入口点。这涉及到对文件结构的理解,如代码区和数据区的区分,以及ELF头部分包含的元数据,如节表和重定位表。
4. **ELF文件格式:** 作为Linux主流的可执行文件格式,ELF提供了一套标准化的方式来组织程序,包括头部、节(section)、重定位表等。理解这些结构对于正确解析和加载ELF文件至关重要。
5. **实验目的:** 通过这个实验,学生不仅可以巩固对ELF格式的认识,还能提升对程序加载过程的理解,以及基本的C/C++编程技能。
在进行实验时,学生需要阅读实验前的文档,理解实验的目标和预期结果,然后逐步分析ELF文件结构,编写和调试加载器代码,确保它能正确地将程序加载到内存并执行。整个过程既锻炼了理论知识的应用,也培养了实际操作和调试能力。完成实验后,学生将对计算机系统的底层工作原理有更深的认识。
2021-02-13 上传
2021-09-14 上传
2021-09-14 上传
2018-05-03 上传
qq_37269329
- 粉丝: 0
- 资源: 1
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析