实验三:跟踪分析Linux内核的启动过程 ----- 20135108 李泽源
实验要求:
使用gdb跟踪调试内核从start_kernel到init进程启动
详细分析从start_kernel到init进程启动的过程并结合实验截图撰写一篇署名博客,并在博客文章中注明“真实姓名(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”,博客内容的具体要求如下:
题目自拟,内容围绕Linux内核的启动过程,即从start_kernel到init进程启动;
博客中需要使用实验截图
博客内容中需要仔细分析start_kernel函数的执行过程
总结部分需要阐明自己对“Linux系统启动过程”的理解,尤其是idle进程、1号进程是怎么来的。
3)请提交博客文章URL到网易云课堂MOOC平台Linux内核分析MOOC课程,编辑成一个链接可以直接点击打开。
使用实验楼的虚拟机打开shell
cd LinuxKernel/
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img
内核启动完成后进入menu程序,支持三个命令help、version和quit,您也可以添加更多的命令,对选修过《软件工程C编码实践篇》的童鞋应该是a piece of cake.
使用gdb跟踪调试内核
这里我选择的help指令
qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:-S freeze CPU at startup (use ’c’ to start execution)-s shorthand for -gdb tcp::1234 若不想使用1234端口,则可以使用-gdb tcp:xxxx来取代-s选项冻结qemu
另开一个shell窗口
输入 gdb
(gdb)file linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表 (gdb)target remote:1234 # 建立gdb和gdbserver之间的连接,按c 让qemu上的Linux继续运行起初一直出现连接超时的问题
(gdb)break start_kernel # 断点的设置可以在target remote之前,也可以在之后
设置断点 程序执行到断点处
实验结束。
转载于:https://www.cnblogs.com/jorilee/p/5271776.html
实验三:跟踪分析Linux内核的启动过程 ----- 20135108 李泽源相关推荐
- 实验三 Linux的启动与关闭,实验三:跟踪分析Linux内核的启动过程
Ubuntu 16.04下搭建MenuOS的过程: 1.下载内核源代码编译内核 1 # 下载内核源代码编译内核 2 cd ~/LinuxKernel/ 3 wget https://www.kerne ...
- 实验三:跟踪分析Linux内核的启动过程
Ubuntu 16.04下搭建MenuOS的过程: 1.下载内核源代码编译内核 1 # 下载内核源代码编译内核2 cd ~/LinuxKernel/3 wget https://www.kernel. ...
- linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...
- linux内核分析作业3:跟踪分析Linux内核的启动过程
内核源码目录 1. arch:录下x86重点关注 2. init:目录下main.c中的start_kernel是启动内核的起点 3. ipc:进程间通信的目录 实验 使用实验楼的虚拟机打开shell ...
- 通过gdb调试分析Linux内核的启动过程
作者:吴乐 山东师范大学 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.实验流程 1.打开环境 执 ...
- 实验六:分析Linux内核创建一个新进程的过程
20135108 李泽源 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/linux-3.18.6/include/linux/sched.h ...
- 跟踪分析Linux内核5.0系统调用处理过程
跟踪分析Linux内核5.0系统调用处理过程 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.com/mengning/linuxk ...
- Bochs调试Linux内核6 - 启动过程调试 - 跳到bootsect引导程序执行
接此,Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S_bcbobo21cn的专栏-CSDN博客 看一下,0x00007c11 这里是重复执行串传送:而后一条 ...
- linux启动过程剖析,分析Linux系统的启动过程
导读 一直使用linux系统,却对系统启动过程及系统初始化和各种服务的启动不太清楚.今天终于搞明白整个是怎么一回事了.本来想自己写篇文章,刚好在网上看到一篇不错的介绍,很详细,就直接拿来了. Linu ...
最新文章
- 'or'='or'经典漏洞原理分析
- ArcGIS为面要素生成邻接矩阵
- python 基础 列表
- React和设计良好的jQuery插件并没有什么不兼容的问题。
- jsonarray转liast_jsonArray转换成List
- 【求助】小系统组成大系统所遇到的问题
- Python3常用数据结构
- Android NDK升级17后编译提示找不到mips64el-linux-android-strip
- Spring:aspectj-autoproxy 简介
- Firefox扩展批量安装脚本
- Vue父子组件传递数据
- 分水岭算法(Watershed Algorithm)
- sklearn学习笔记之开始
- SQL注入漏洞解决心得
- 2020年的工程咨询将如何影响建设工程?
- 组策略禁止自动锁定计算机,让Win10自动锁屏的设置技巧
- 平面方程、两平面夹角、点到平面距离
- OCR中文简体汉字字符材料制作
- 我的世界服务器信息变英文,我的世界服务器
- 手机IMSI码规则更新-通过IMSI判断运营商的方法
热门文章
- 阿里巴巴收购 Yahoo! 中国之后的风险
- Unity 制作愤怒的小鸟
- ZooKeeper :Java客户端Watcher API介绍
- 用实战项目经验告诉你什么是二方包!
- xp计算机远程桌面设置密码,远程桌面连接设置,详细教您xp怎么设置远程桌面连接...
- cogs 1487 麻球繁衍
- hautoj1262: 魔法宝石
- 加勒比海盗船——最优解转载问题c++
- 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据
- ker矩阵是什么意思_矩阵形式下的最小二乘法推导