欢迎使用优快云-markdown编辑器

本文详细介绍了Linux内核启动过程中的关键步骤,包括0号进程初始化、页地址初始化、虚拟文件系统的设置、中断向量的初始化、调度器及slab内存管理算法的配置等。此外还介绍了init进程的初始化过程。

Linux内核启动流程

课程说明

周元斌+原创作品转载请注明出处+ 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000

实验环境

Debian Wheezy(kernel:3.2.0),qemu(1.1.2),gdb(7.4.1)

内核源码:3.18.6

调试环境

实验目标

分析start_kernel的启动流程

计算机启动时会执行BIOS的代码,BIOS代码完成后会跳转到MBR中的引导程序,引导程序则会将Linux kernel的代码加载到内存当中并跳转到start_kernel函数处开始执行,分析start_kernel的代码至关重要了。

启动过程简要分析

  • 初始化0号进程

该初始化通过set_task_stack_end_magic函数来实现,打印init_task.pid可以发现init_task的进程号为0

  • 初始化页地址

  • 虚拟文件系统初始化

  • 系统保留中断向量的初始化及其他中断向量的初始化

该初始化是通过trap_init函数完成的

  • 调度器初始化

  • slab内存管理算法初始化

  • init进程初始化

(电脑挂了,完全没法干活了!稍后再补上)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值