一.计算机是如何工作的--总结 三个法宝 存储程序计算机.函数调用堆栈.中断机制 二.堆栈 1.是c语言程序运行时必须的一个记录调用路径和参数的空间. 函数调用框架.传递参数.保存返回地址.提供局部变量空间 2.相关寄存器 esp 堆栈指针 ebp 基址指针(记录当前函数调用基址) 3.操作 push 栈顶地址减少4个字节 pop 栈顶地址增加4个字节 4.其他寄存器 cs:eip 总是指向下一条的指令地址 -顺序:总是指向地址连续的下一条的指令地址: -跳转/分支:根据程序需要被修改: cal…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC-1000029000 1.冯诺依曼体系结构 ---核心:存储程序计算机 计算机在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器的内容取出指令并执行指令,然后再取出下一条指令并执行,如此循环下去直到程序结束指令时才停止执行.其工作过程就是不断地取指令和执行指令的过程,最后将计算的结果放入指令指定的存储器…
第二周学习总结--操作系统是如何工作的 作者:刘浩晨 [原创作品转载请注明出处] <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机三大法宝 • 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: • 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能: • 中断,多道程序操作系统的基点,没有中断机制程…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 知识点梳理 一.用户态.内核态和中断处理过程 1.级别.如何区分 2.中断处理,用户态到内核态 3.保护现场和恢复现场 二.系统调用概述 1.操作系统为用户态进程与硬件设备进行交互提供了一组接口--系统调用 1.把用户从底层硬件编程中解放: 2.提高系统安全性: 3.用户程序具有可移植性: 2.API(应用编程接口)和系统调用…
LINUX内核分析第二周学习总结——操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识点总结 (一)计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函数,堆栈成为了计算机的基础功能:…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 一.学习内容 (一)给MenuOS增加time和time-asm命令(详见 :二.实验内容) 四步 1.更新menu代码到最新版: 2.在main函数中增加MenuConfig: 3.增加对应的Time函数和TimeAsm函数: 4.make rootfs. (二)使用gdb跟踪系统调用内核函数sys_time(详见 :二.实…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 第六周 进程的描述和进程的创建 一. 进程的描述 1. 进程控制块PCB--task_struct 1.操作系统的三大管理功能包括 进程管理 内存管理 文件系统 2.PCB task_struct中包含 进程状态 进程打开的文件 进程优先级信息 3.通过唯一的进程标识PID来区别每个进程. 4.进程状态 5.理解task_st…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第七周 Linux内核如何装载和启动一个可执行程序 1. 理解编译链接的过程和ELF可执行文件格式,详细内容参考本周第一节: (1) 可执行程序怎么来的? linux系统中,可执行程序一般要经过预处理.编译.汇编.链接.执行等步骤. (2) 目标文件的格式ELF (3) 静态链接的ELF可执行文件与进程的地址空间 一般静态链…
朱荟潼 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课http://mooc.study.163.com/course/USTC 1000029000 知识笔记 1.arch/ 支持不同的CPU的源代码--X86. 2.init/ 内核启动相关的代码基本在此目录下. main.c Linux内核启动的起点:start_kernel. start_kernel 相当于普通C程序的main(). mm/ 内存管理代码. kernel/ 与进程调度有关:Linux内核的核心代码在该…
郝智宇   无转载   <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.函数调用堆栈: 1.计算机是如何工作的: 三个法宝:存储程序计算机.函数调用堆栈(堆栈机制是高级语言的起点).中断机制. 2.堆栈作用: 函数调用框架.传递参数.保存返回地址.提供局部变量空间... 3.堆栈寄存器(esp,ebp)和堆栈操作(push,pop) 其他关键寄存器:cs:eip(call,ret) 4.中断机制是如何工作的…