2019-2020-1 20199327《Linux内核原理与分析》第四周作业

MenuOS的构造

操作系统的两把宝剑:

中断上下文的切换——保存现场和恢复现场;
进程上下文的切换;

关键目录

  1. arch:与体系结构相关的子目录列表,存放CPU体系结构的相关代码;
  2. block:存放Linux存储系统中关于块设备管理的代码;
  3. crypto:存放常见的加密算法的C语言代码;
  4. Documentation:存放文档;
  5. firmware:固件;
  6. drivers:驱动目录,分门别类的存放Linux内核支持的所有硬件设备的驱动源代码;
  7. fs:file system,文件系统,列出Linux支持的各种文件系统的实现;
  8. init:initial初始化的意思,存放Linux内核启动时的初始化代码;
  9. include:头文件目录;
  10. ipc:进程间通信;
  11. kernel:内核,存放内核本身需要的核心代码;
  12. mm:memory management,内存管理;
  13. net:网络相关的代码;

实验

构建Linux系统MenuOS;

启动MenuOS;

断点查看

start_kernel;

rest_init;

总结

init_task(0号进程)决定了系统所有进程、线程的基因,在创建init进城后,调用cpu_idle()演变成了idle进程,执行一次调度后,init进程运行。kernel—init()1号内核线程负责执行内核的部分初始化工作及进行系统的配置,最后调用do_execve加载init程序,转为init进程。kthreadd进程由0号进程创建,始终运行在内核空间,负责所有内核线程的调度与管理。

猜你喜欢

转载自www.cnblogs.com/waxxx/p/11627712.html