黄胤凯 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
按照实验要求,在实验楼中进行代码测试(我觉得我该换电脑了......实验楼都卡......)
环境建立好后,新开一个shell,输入gdb
总结:
一、操作系统的两把宝剑:中断上下文的切换(保存现场和恢复现场)和进程上下文的切换
二、道生一,一生二,二生三,三生万物。系统就这样运行起来了(老师金句!)
三、init_task即手工创建的PCB,0号进程最终的idle进程
四、关于0号进程和1号进程:
rest init()是0号进程,在start_kernel内核一启动时就一直存在;由0号进程就创建了1号进程kernel_init,还创建其他的一些服务类的内核线程如kthreadd。(生万物了)
rest_init()中的kernel_init有一个run_init_process这就是Linux系统中的1号进程,是第一个用户态进程,默认是根目录下的一个程序;如果根目录下没有这个进程,系统会寻找其他的默认进程作为1号进程。