OS Lab1 实验报告
一、实验思考题
思考题0.1
也许你会发现我们的readelf程序是不能解析之前生成的内核文件(内核文件是可执行文件)的,而我们之后将要介绍的工具readelf则可以解析,这是为什么呢?(提示:尝试使用readelf -h,观察不同)
答:
通过readelf -h
可以发现,我们之前生成的内核文件vmlinux是大尾端elf文件,而测试使用的testELF是小尾端elf文件。
~/work/18373580-lab/gxemul$ readelf -h vmlinux
ELF Header:
Magic: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, big endian
...
~/work/18373580-lab/gxemul$ readelf -h ../readelf/testELF
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
...
由于我们的readelf程序尚未完善,目前只能在小尾端环境下运行,无法正确读取大尾端elf文件的内容,因此不能正确输出段头表内信息。在Lab1-extra中通过对readelf的补充修改,就可以进行解析了。