摘要:
堆栈变化过程: Linux内核分析——计算机是如何工作的 计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构; 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的 阅读全文
摘要:
一、进程调度与进程调度的时机分析 1、不同类型的进程有不同的调度需求 Linux既支持普通的分时进程,也支持实时进程。 Linux中的调度是多种调度策略和调度算法的混合。 2、调度策略:是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行。 Linux的调度基于分时和优先级。 3、内核中的调度 阅读全文
摘要:
一、得到一个可执行程序 1. 预处理、编译、链接 gcc编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤。 预处理 => 编译 => 汇编 => 链接 预处理:编译器将C源代码中包含的头文件编译进来和执行宏替换等工作。 gcc -E hello.c -o hello.i 编译: 阅读全文
摘要:
Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息。 struct task_struct数据结构很庞大 Linux进程的状态与操作系统原理中的描述的进程状态似乎有所不同,比如就绪 阅读全文
摘要:
一、给MenuOS增加time和time-asm命令 1. 克隆并自动编译MenuOS 2. 给MenuOS增加time和time-asm命令 更新menu代码到最新版 test.c中main函数里,增加MenuConfig 增加对应的两个函数:Time和TimeAsm make rootfs 二、 阅读全文
摘要:
一、用户态、内核态 权限分级——为了系统本身更稳定,使系统不宜崩溃。(并不是所有程序员缩写的代码都很健壮!!) x86 CPU四种不同的执行级别:0(内核态)—3(用户态) 区分方法:CS:EIP(CPU的每条指令都是通过这里执行)(代码段选择寄存器:偏移量寄存器) CS寄存器的最低两位表明了代码级 阅读全文
摘要:
一、Linux内核源代码介绍 1、根目录 arch/x86目录下的代码是我们重点关注的,arch中包括支持不同CPU的源代码。 init目录下包含内核启动相关的代码,如main.c(start_kernel函数相当于普通C程序的main函数,是Linux内核初始化的起点)。 ipc:进程间通信 ke 阅读全文
摘要:
计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构; 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能; enter pushl %ebp movl % 阅读全文
摘要:
实验楼实验截图: 堆栈变化过程: 阅读全文
摘要:
一、期末课程笔记总结1.课程笔记第一周第二周第三周第四周第五周第六周第七周第八周第九周第十周第十一周第十二周第十三周2.实验第一次实验第二次实验第三次实验第四次实验第五次实验3.家庭作业家庭作业4.实践作业Adurino小车制作二、课程收获与不足 在娄老师的课程里,每一次课都会有心得体会与我们分享... 阅读全文