---恢复内容开始---
一、Linux内核源代码简介
arch/x86目录下的代码是我们最重点关注的
fs/文件系统
init/内核启动相关的代码
start_kernel函数相当于C语言的main函数
kernel/Linux内核的核心代码
mm/内存管理代码
二、构造一个简单的Linux系统
使用实验楼构造的实验截图:
自己搭建实验楼的过程:
三、使用gdb跟踪调试Linux内核的方法
一、使用gdb跟踪调试Linux内核的方法
(1)使用gdb跟踪调试内核,冻结起来
(2)使用水平分割,新创建一个窗口使用gdb
二、简单分析一下Start_Kernel
init_task 即手工创建的PCB,0号进程即最终的Idle进程。
trap_init 初始化中断,设置中断门,系统陷阱门。
init_process Linux系统的第一个用户态进程,根目录下的init程序(作为1号进程)由kernel_init创建。
rest_init 0号进程,一直存在的进程,创建1号进程。
当系统没有进程需要执行时就调度到idle进程。