Linux内核分析期中总结

Linux内核分析期中知识点总结

1.计算机是如何工作的?

存储程序计算机工作模型

X86汇编基础

汇编一个简单的C程序分析其汇编指令执行过程

2.操作系统是如何工作的?

函数调用堆栈

借助Linux内核部分源代码模拟存储程序计算机工作模型及时钟中断 

在mykernel基础上构造一个简单的操作系统内核

3.构造一个简单的Linux系统MenuOS 

Linux内核源代码简介

构造一个简单的Linux系统

跟踪调试Linux内核的启动过程

4.扒开系统调用的三层皮(上)

(一)用户态、内核态和中断处理过程

(二)系统调用概述

系统调用概述和系统调用的三层皮

(三)使用库函数API和C代码中嵌入汇编代码触发同一个系统调用

使用库函数API获取系统当前时间

C代码中嵌入汇编代码的方法(复习)

使用C代码中嵌入汇编代码触发系统调用获取系统当前时间

5.扒开应用系统的三层皮(下)

(一)给MenuOS增加time和time-asm命令

(二)使用gdb跟踪系统调用内核函数sys_time

(三)系统调用在内核代码中的工作机制和初始化

  1. 系统调用在内核代码中的工作机制和初始化

  2. 简化后便于理解的system_call伪代码

  3. 简单浏览system_call和iret之间的主要代码

6.进程的描述和进程的创建

进程的描述

  1. 进程描述符task_struct数据结构(一)
  2. 进程描述符task_struct数据结构(二)

进程的创建

  1. 进程的创建概览及fork一个进程的用户态代码
  2. 理解进程创建过程复杂代码的方法
  3. 浏览进程创建过程相关的关键代码
  4. 创建的新进程是从哪里开始执行的?
  5. 使用gdb跟踪创建新进程的过程

7.可执行程序的装载

(一)预处理、编译、链接和目标文件的格式

1.可执行程序是怎么得来的

2.目标文件的格式ELF 

3.静态链接的ELF可执行文件和进程的地址空间

(二)可执行程序、共享库和动态加载

1.装载可执行程序之前的工作

2.装载时动态链接和运行时动态链接应用举例

(三)可执行程序的装载

1.可执行程序的装载相关关键问题分析

2.sys_execve的内部处理过程

3.使用gdb跟踪sys_execve内核函数的处理过程

4.可执行程序的装载与庄生梦蝶的故事

5.浅析动态链接的可执行程序的装载

8.进程的切换和系统的一般执行过程

(一)进程切换的关键代码switch_to分析

1.进程进度与进程调度的时机分析

2.进程上下文切换相关代码分析

(二)Linux系统的一般执行过程

1.Linux系统的一般执行过程分析

2.Linux系统执行过程中的几个特殊情况

3.内核与舞女

(三)Linux系统架构和执行过程概览

1.Linux操作系统架构概览

2.最简单也是最复杂的操作——执行ls操作

3.从CPU和内存的角度看Linux系统的执行

Linux内核分析期中学习感想

      慕课上完了,但是内核学习却才开始。这几周的博客和作业,一直认真地写,对知识多少有些掌握但一直不够清晰。讨论中才知道自己的基础薄弱。课上我们分析的是linux-3.18.6内核源码,其精妙的数据结构和算法简直让人叹为观止。课堂我们也只是查看了部分核心源码,希望在今后我可以学习更多。简单,漂亮的内核,我们没有理由不去学习。 linux内核,主要包括进程管理、内存管理、设备驱动、文件系统,从分析内核了解到整个系统是如何工作的,如何控制管理资源分配,进程切换并执行。各种策略和结构让系统运行时更有效率。只有懂得其中的基本工作机制才能够有效的裁剪内核,再重新编译内核,生成高效、可移植的内核模块。

      这次MOOC之旅让我对内核有了进一步的认识,对于源码能够自己去搜索查看,能通过阅读部分核心源码来验证老师所说的理论。之前的学习就像盲人摸象,不能联系到一起,学的很零碎。通过这次课,就像老师所说的,有时候我们可以先动脑想一下系统是如何操作如何管理的,然后再看源码验证纠正自己的想法,这样的内核学习方式更加有效,毕竟内核源码博大精深,想要研究透彻不是一朝一夕可以做到的。

      总结下我这次课程的学习,我觉得还有好多不足,慕课结束了,到现在还没有把所有的知识点串起来,没能很好的形成一条主线,还需要多花时间理一理,能够有更清晰的思路才能更好的学习好内核。    

Linux内核分析博客链接汇总

  • 学习总结

LINUX内核分析第一周学习总结——计算机是如何工作的

LINUX内核分析第二周学习总结——操作系统是如何工作的

LINUX内核分析第三周学习总结——构造一个简单的Linux系统MenuOS

LINUX内核分析第四周学习总结——扒开应用系统的三层皮(上)

LINUX内核分析第五周学习总结——扒开应用系统的三层皮(下)

LINUX内核分析第六周学习总结——进程的描述和进程的创建

LINUX内核分析第七周学习总结——可执行程序的装载

LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程

  • 读书笔记

《LINUX内核设计与实现》第三周读书笔记——第一二章

《Linux内核设计与实现》第四周读书笔记——第五章

《Linux内核设计与实现》第五周读书笔记——第十一章

《Linux内核设计与分析》第六周读书笔记——第三章

《深入理解计算机系统》第七周读书笔记——第七章 链接

《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

posted @ 2016-04-19 16:18  xixixixixi  阅读(233)  评论(0编辑  收藏  举报