第三周 构造一个简单的Linux系统MenuOS 计算机三个法宝: 1.存储程序计算机 2.函数调用堆栈 3.中断 操作系统两把宝剑: 1.中断上下文的切换:保存现场和恢复现场 2.进程上下文的切换 一.阅读Linux内核代码 本周我们要学习如何阅读Linux内核源代码,首先打开Lstest Stable Kernel:linux-3.18.6 arch/目录在Linux内核中占有相当庞大的代码量,因为Linux支持很多CPU,这个arch/x86目录下的代码是我们重要关注的代码 根目录中比较关…
linux内核分析第三周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 # 构造一个简单的Linux系统MenuOS 上周回顾: 计算机三大法宝 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑 中断上下文的切换 进程上下文的切换 Linux内核源码简介 我们关注的部分 arch/x86目录下的代码 init/main.c中s…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周是学习的主要是构造简单的LINUX系统,因为涉及到的是LINUX内核相关的知识,所以在理解上有一点困难,视频看了几遍加上老师的讲解,才艰难的弄懂了大概,相信以后几周的学习肯定更加艰难,但是不能因为困难就放弃,要更加努力地完成任务. 一.实验概述 本周实验大致做的事情就是,启动qemu然后启动kernel内核,然后再运行init…
20135313吴子怡.北京电子科技学院 chapter1 知识点梳理 一.Linux内核源代码简介 (视频中对目录下的文件进行了简介,记录如下) arch目录 占有相当庞大的空间 arch/x86目录下的代码是需要重点关注的. arch下其他目录可以删掉. init目录 内核启动相关的基本代码基本都在init目录下. main.c 文件中有一个start_kernel函数,初始化Linux内核的起点,这个函数相当于普通c程序的main函数. kernel目录 Linux内核的核心代码在kern…
第七周 可执行程序的装载 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么来的 C代码—>预处理—>汇编代码—>目标代码—>可执行文件 .asm汇编代码 .o目标码 a.out可执行文件 (1)预处理:负责把include的文件包含进来及宏替换工作,即文字替换,.c变成.i gcc -E -o main.i main.c (2)编译:.i变成.asm,是ASCⅡ gcc -S -o main.asm main.i (3)汇编: gcc -c -o main.o main…
第八周 进程的切换和系统的一般执行过程 一.进程切换的关键代码switch_to分析 1.进程调度与进程调度的时机分析 (1)进程分类 第一种分类 I/O-bound:等待I/O CPU-bound:大量占用CPU进行计算 第二种分类 交互式进程(shell) 实时进程 批处理进程 (2)进程调度策略 调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行 Linux的调度基于分时和优先级. Linux的进程根据优先级排队 根据特定的算法计算出进程的优先级,用一个值表示 这个值表示…
第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管理进程,内核需要对每个进程进行描述,它就提供了内核所需了解的进程信息. struct task_struct数据结构很庞大,1235行~1644行 3.Linux进程状态 Linux进程的状态与操作系统原理中的描述的进程状态有所不同 操作系统状态: 就绪态 运行态 阻塞态 linux进程状态: 4.…
<Linux内核分析>第二周学习笔记 操作系统是如何工作的 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1. 前言 计算机是如何工作的? 三个法宝: 存储程序计算机:所有计算机基础性的逻辑框架. 堆栈:高级语言的起点,函数调用需要堆栈机制. 中断机制:多道系统的基础,是计算机效率提升的关键. 2. 函数调用堆栈 2.1 堆栈 堆栈是C语言程序运行时必须的一个记录调用…
linux内核分析第五周学习笔记 标签(空格分隔): 20135328陈都 陈都 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给MenuOS增加time和time-asm命令 把menu删除: rm menu -rf 强制删除 重新克隆一个新的Menu: 进入Menu,用makerootfs自动编译生成根文件系统,同时还自动启动MenuOS 增加了两个命令:time和time_a…
Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的两种虚拟机制:虚拟处理器,虚拟内存 任务队列:链表每一项都是进程描述符结构. 进程描述符描述内容:打开的文件,进程地址空间,挂起信号,进程状态 Linux通过slab分配器分配task_struct结构,达到对象复用和缓存着色. 进程标识值:内核通过唯一的PID来标识每个进…