一   前期准备工作       1 搭建环境 1.1下载内核源代码并编译内核 创建目录,并进入该目录: 下载源码: 解压缩,并进入该目录:xz -d linux-3.18.6.tar.xz tar -xvf linux-3.18.6 cd  linux-3.18.6 选定x86架构的相关文件编译: 编译: 1.2 制作根文件系统 在工作目录下新建一个文件夹: mkdir rootfs 下载老师提供的资料:git clone https://github.com/mengning/menu.gi…
跟踪分析内核的启动过程实验 张潇月<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这周主要学习的是对内核启动的跟踪和分析.本次实验先是构建了一个简单的Linux系统——MenuOS. 启动内核: 其中用到的代码是 cd LinuxKernel/ qemu -kernel linux-/arch/x86/boot/bzImage -initrd rootfs.img 进入一开始设置好的环境LinuxKernel,…
一.实验过程 使用实验楼虚拟机打开shell cd LinuxKernel/ qemu -kernel linux-/arch/x86/boot/bzImage -initrd rootfs.img 内核启动进入 menu 程序.下面是用 gbd 来跟踪内核的启动过程: gdb (gdb)file linux-/vmlinux # 在gdb界面中targe remote之前加载符号表 (gdb)target remote: # 建立gdb和gdbserver之间的连接,按c 让qemu上的Lin…
Linux系统的启动方式有点复杂,而且总是有需要优化的地方.传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问题,systemd是Linux系统机器的另一种启动方式,宣称弥补了以传统Linux SysV init为 基础的系统的缺点.在这里我们将着重讨论systemd的特性和争议,但是为了更好地理解它,也会看一下通过传统的以SysV init为基础的系统的Linux启动过程是什么样的.友情提醒一下,syst…
1.想了解HiveServer2的启动过程,则需要找到启动HiveServer2的入口,hive服务的启动命令为hive --service HiveServer2,通过分析$HIVE_HOME/bin下hive脚本可知,执行hive --service HiveServer2后正真调用的是$HIVE_HOME/bin/ext下的hiveserver2.sh脚本,而从hiveserver2.sh脚本可以看出,hive服务的入口为HiveServer2类,因此我们需要通过分析HiveServer2…
ID:fuchen1994 姓名:江军 作业要求: 理解Linux系统中进程调度的时机,可以在内核代码中搜索schedule()函数,看都是哪里调用了schedule(),判断我们课程内容中的总结是否准确: 使用gdb跟踪分析一个schedule()函数 ,验证您对Linux系统进程调度与进程切换过程的理解:推荐在实验楼Linux虚拟机环境下完成实验. 特别关注并仔细分析switch_to中的汇编代码,理解进程上下文的切换机制,以及与中断上下文切换的关系: 实验过程: 1. 进程调度的时机 中断…
跟踪分析Linux内核的启动过程 攥写人:杨光  学号:20135233 ( *原创作品转载请注明出处*) ( 学习课程:<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ) 知识总结: ****Linux内核中关键目录: arch:不同cpu的支持,我们主要关注的是其中x86文件夹 init:内核启动的相关代码,期中main.c是内核启动的起点,main.c中的start_kernel是内核初始化的起点 ker…
实验三:跟踪分析Linux内核的启动过程 一.调试步骤如下: 使用gdb跟踪调试内核 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) cpu初始化之前把它冻结起来 // -s shorthand for -gdb tcp::1234 在1234端口上建立了…
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 1.打开shell,输入启动指令,内核启动完成后进入menu程序,支持三个命令help.version和quit. 2.然后使用gdb跟踪调试内核,输入命令qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 3.按住…
跟踪分析Linux内核的启动过程 “20135224陈实  + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 进入相应文件夹,用qemu虚拟机开启内核kernel参数后内容文件 (img根据视频是个镜像文件,个人理解应该是硬件模拟器之类的) 利用GDB调试内核,对于GDB常用命令可以参考以往资料:http://www.cnblogs.com/chuishi/p/4841231.html 设置断点(brea…