2023-2024-1 20232826《Linux内核原理与分析》第八周作业

20232826王朝昆 2023-11-10 08:02:24

Linux 内核如何装载和启动一个可执行程

 

 

1. 《庖丁解牛Linux分析》第八章AI问答 

                        

 

                       

 

2. 实验过程及分析

(1)将menu目录删除,使用git克隆一个新的menu目录。

cd ~/LinuxeKernel/
rm -rf menu
git clone https://github.com/mengning/menu.git

(2)将test_exec.c将test.c覆盖,重新编译rootfs。查看代码发现,除了增加 execlp函数之外,还在Makefile中编译了hello.c,然后在生成跟文件系统时把init和hello都放到rootfs.img中。在这个实验中,hello就是一个加载进来的可执行文件。

mv test_exec.c test.c
make roofts

                

(3)使用help命令可以看到增加了exec指令,执行exec指令发现比fork指令增加了一行输出“hello world!”。实际上是新加载了一个可执行程序来输出了一行语句。

                       

(4)启动内核到调试的状态,加载符号并设置端口,准备单步调试。

cd ~/LinuxKernel/
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S

                      

(5)启动新的终端窗口开始gdb调试

cd ~/LinuxKernel/
gdb
file linux-3.18.6/vmlinux
target remote:1234

                         

(6)设置断点到sys_exec、load_elf_binary、start_thread

b sys_execve
b load_elf_binary
b start_thread

                       

 

(7)使用命令c继续执行发现执行到load_elf_binary处,在继续执行发现执行到start_thread处,继续单步执行,可以看到加载新可执行程序的一系列数据,并构造新的代码段。

                     

 分析:

(1)查看hello(ELF文件)的头部信息

                           

(2)ELF文件格式

ELF文件是一种用于二进制文件、可执行文件、目标代码、共享库和core转存格式文件。是UNIX系统实验室(USL)作为应用程序二进制接口而开发和发布的,也是Linux的主要可执行文件格式。


ELF主要分为四种类型:
1)可重定位文件(Relocatable File) 包含适合于与其他目标文件链接来创建可执行文件或者共享目标文件的代码和数据,即 xxx.o 文件。

2)可执行文件(Executable File) 包含适合于执行的一个程序,此文件规定了 exec() 如何创建一个程序的进程映像,即 a.out文件。

3)共享目标文件(Shared Object File) 包含可在两种上下文中链接的代码和数据。首先链接编辑器可以将它和其它可重定位文件和共享目标文件一起处理,生成另外一个目标文件。其次,动态链接器(Dynamic Linker)可能将它与某个可执行文件以及其它共享目标一起组合,创建进程映像,即 xxx.so文件。

4)内核转储(core dumps),存放当前进程的执行上下文,用于dump信号触发。

 

...全文
23 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
入门学习Linux常用必会60个命令实例详解doc/txt
hda1中的“1”代表hda的第一个硬盘分区 (partition),hda2代表hda的第二主分区,第一个逻辑分区从hda5开始,依此类推。此外,可以直接检查 /var/log/messages文件,在该文件中可以找到计算机开机后系统已辨认出来的...
2023-2024-1 20232818 《Linux内核原理分析》 第二作业
【代码】2023-2024-1 20232818 《Linux内核原理分析》 第二作业
2023-2024-1 20232828《Linux内核原理分析》第二作业
​阅读学习教材「庖丁解牛Linux 分析 」第1,2...在本日晚12:00前发学习博客(标题 学号《Linux内核原理分析》第二作业),重点是遇到的问题和解决方案。不按时交作业会扣分。 完成蓝墨云班课中的测试。​​​​
2022-2023-1 20222823 《Linux内核原理分析》 第三作业
2022-2023-1 20222823 《Linux内核原理分析》 第三作业
2022-2023-1 20222810《Linux内核原理分析》第二作业
2022-2023-1 20222810《Linux内核原理分析》第二作业
BESTI.Linux内核原理与分析

39

社区成员

53

社区内容

发帖
与我相关
我的任务
社区描述
北京电子科技学院 《Linux内核原理与分析》课程
linuxarm开发系统安全 高校 北京·丰台区
社区管理员
  • rocflytosky
加入社区
  • 近7日
  • 近30日
  • 至今

加载中

查看更多榜单
社区公告
暂无公告

试试用AI创作助手写篇文章吧

+ 用AI写文章

深圳SEO优化公司无锡关键词排名报价大运模板制作报价台州阿里店铺运营公司临夏模板网站建设报价龙岗百度seo价格安顺网站优化价格安阳阿里店铺托管哪家好温州网页制作推荐光明网站制作设计哪家好那曲网络广告推广多少钱毕节seo推荐绍兴如何制作网站价格金华SEO按天扣费多少钱福州网站定制价格海南网站搜索优化价格肇庆优秀网站设计价格厦门网站优化按天收费推荐昌吉网站推广系统佛山阿里店铺运营塘坑网站制作设计公司徐州优秀网站设计鄂州网站改版价格铁岭网站推广公司陇南百姓网标王推广松岗百度竞价多少钱南宁百度网站优化多少钱吉林网页制作多少钱坑梓网站改版周口网站优化按天扣费价格延安优化报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化