跟踪分析内核的启动过程实验 张潇月<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,…
一   前期准备工作       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…
一.实验流程 1.打开环境 执行命令:cd LinuxKernel/ 执行命令:qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img MenuOS便可以成功启动.可以测试三个命令“help,version,quit”的工作情况 2.使用gdb跟踪调试内核 执行命令:qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S 冻结启动…
我用的是ramdisk.image.gz,烧写在flash的0x10140000处 我不太明白内核在启动过程中式如何将这个文件映射成/目录及各子目录的? 如果ramdisk.image.gz在flash中的位置发生了变化,应该如何修改内核啊? 答: 你的问题,要分2方面和你解释: 1.将这个文件映射成/目录及各子目录的 不是将这个文件映射根目录成及各子目录的, 而是对应的根文件系统,简称rootfs(root file system), 对应着/根目录及其各个子目录和文件. 发现要解释清楚,要简…
第三周学习总结--构造一个简单的Linux系统MenuOS 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内核源代码简介 上节课总结: 计算机三个法宝:存储程序计算机.函数调用堆栈.中断 操作系统两把宝剑:中断上下文的切换(保存现场和恢复现场)以及进程上下文的切换 Linux内核源代码简介: arch/x86中内容重点关注 init目录重要,内核启动相关…
Linux内核分析第三周学习博客--跟踪分析Linux内核的启动过程 实验过程截图: 过程分析: 在Linux内核的启动过程中,一共经历了start_kernel,rest_init,kernel_thread等几个函数的执行.其中start_kernel相当于普通C程序的main函数.Trap_init负责初始化中断向量,mm_init负责内存管理模块初始化,sche_init负责调度模块初始化. 两把宝剑: 1.中断上下文切换 2.进程上下文切换 Qemu工具学习: 格式: qemu -ke…
贺邦 + 原创作品转载请注明出处 + <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内核的启动过程 学号:20135114 姓名:王朝宪 注: 原创作品转载请注明出处   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.调试步骤如下: 使用gdb跟踪调试内核 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 关于-s和-S选项的说明:// -S freeze CPU…
实验三:跟踪分析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端口上建立了…
一.实验过程 使用实验楼虚拟机打开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…