[关闭]
@gain 2016-03-12T13:39:22.000000Z 字数 519 阅读 1239

实验三 跟踪分析Linux内核的启动过程

Linux内核


原创作者:干宇航
原创作品转载请注明出处
《Linux内核分析》MOOC课程


本文使用环境,ubuntu 15.10 i386 上的 Linux-3.18.6内核的Menu OS
使用gdb调试跟踪调试内核

  1. gdb
  2. gdbfile linux-3.18.6/vmlinux # 在gdb界面中targe remote之前加载符号表
  3. gdbtarget remote:1234


内核启动过程包括start_kernel之前和之后,之前全部是做初始化的汇编指令,
(gdb)break start_kernel
之后开始C代码的操作系统初始化.
各种模块的init初始化

最后执行到rest_init(相当于手工创建的PCB,0号进程,也就是相当于windows xp系统中System Idle Process,
嘻嘻,特地去装了xp的虚拟机。怀旧一下。

总结,首先进入start_kernel 然后进入cpu_idle,然后生成kernel_init和kthread,然后生成下面的用户态进程和核心态进程。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注