2019-2020-1 20199327《Linux内核原理与分析》第七周作业
进程的描述与创建
进程的描述—提纲挈领
操作系统内核实现操作系统的三大管理功能:
- 进程管理——最核心的功能;
- 内存管理;
- 文件系统;
PCB——进程控制块
进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的)在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少不一样,通常PCB应包含如下一些信息。
进程状态的转换
进程的创建
init_task
进程描述符,是第一个进程(0号进程),它的初始化通过硬编码的方式固定下来,而其他进程都是通过do_fork复制父进程的方式初始化。
内存管理相关代码。
mm和active_mm是和进程地址空间、内存管理相关的数据结构指针,每个进程都有若干个数据段,代码段,堆栈段。
进程之间的父子、兄弟关系
父子兄弟之间复杂的链表关系都通过指针或者双向链表关联起来。
保存进程上下文中CPU相关一些状态信息的数据结构
struct thread_struct最重要是sp和ip,主要保存进程上下文CPU相关状态。
- sp用来保存进程上下文中的ESP寄存器状态;
- ip用来保存进程上下文中的EIP机寄存器状态。
实验
构建Linux内核的menu
下载内核源码并制造根文件系统
调试
内核启动,创建shell调试