中国科学技术大学:Linux内核源代码导读(PPT讲稿,陈香兰)

Linux内核源代码导读 中国科学技术大学计算机系 陈香兰(0551-3606864) xlanchen ustc. edu.cn pring 2009 S 嵌入式系统实验室 EMBEDDED SYSTEM LAE口RAT口RY SUZHOU INSTITUTE FOR ADVANCED STUDY OF USTC
Linux内核源代码导读 中国科学技术大学计算机系 陈香兰(0551-3606864) xlanchen@ustc.edu.cn Spring 2009

序 令一些基本概念 操作系统的基本概念 >I386系统的基本概念 Linux简介 ☆源码阅读和 project环境 ◆ Linux2.6.26源码简介 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
序 ❖一些基本概念 ➢操作系统的基本概念 ➢I386系统的基本概念 ❖Linux简介 ❖源码阅读和project环境 ❖Linux 2.6.26 源码简介

操作系统的基本概念 令任何计算机系统都包含一个基本的程序集合,称 为操作系统。 内核(进程管理,进程调度,进程间通讯机制,内存 管理,中断异常处理,文件系统,IO系统,网络部 分) 其他程序(例如函数库,shel序等等) 令操作系统的目的 与硬件交互,管理所有的硬件资源 ≯为用户程序(应用程序)提供一个良好的执行环境 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
操作系统的基本概念 ❖任何计算机系统都包含一个基本的程序集合,称 为操作系统。 ➢内核(进程管理,进程调度,进程间通讯机制,内存 管理,中断异常处理,文件系统,I/O系统,网络部 分) ➢其他程序(例如函数库,shell程序等等) ❖操作系统的目的 ➢与硬件交互,管理所有的硬件资源 ➢为用户程序(应用程序)提供一个良好的执行环境

I386系统的基本概念 令代码的运行 令堆栈的概念 令内核态与用户态 令中断异常系统调用 ◆虚拟内存 1958 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
I386系统的基本概念 ❖代码的运行 ❖堆栈的概念 ❖内核态与用户态 ❖中断/异常/系统调用 ❖虚拟内存

代码的运行 ◆关键寄存器 cs:eip:总是指向下一条的指令地址 顺序执行:总是指向地址连续的下一条指令 ●跳转分支∶执行这样的指令的时候,cs:eip的值会根据程序 需要被修改 cal:将当前cs:eip的值压入栈顶,cs:eip指向被调用函数的 入口地址 ret:从栈顶弹出原来保存在这里的cs:eip的值,放入cs:eip 中 ●发生中断时??? ?? 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
代码的运行 ❖关键寄存器 ➢cs : eip:总是指向下一条的指令地址 ⚫顺序执行:总是指向地址连续的下一条指令 ⚫跳转/分支:执行这样的指令的时候,cs : eip的值会根据程序 需要被修改 ⚫call:将当前cs : eip的值压入栈顶,cs : eip指向被调用函数的 入口地址 ⚫ret:从栈顶弹出原来保存在这里的cs : eip的值,放入cs : eip 中 ⚫发生中断时??? ⚫????

I386系统的基本概念 令代码的运行 令堆栈的概念 令内核态与用户态 令中断异常/系统调用 ◆虚拟内存 1958 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
I386系统的基本概念 ❖代码的运行 ❖堆栈的概念 ❖内核态与用户态 ❖中断/异常/系统调用 ❖虚拟内存

堆栈的概念 令堆栈是C语言程序运行时必须的一个记录调用路径和参 数的空间 >函数调用框架 传递参数 >保存返回地址 提供局部变量空间 1958 等等 令C语言编译器对堆栈的使用有一套的规则 令了解堆栈存在的目的和编译器对堆栈使用的规则是理解 操作系统一些关键性代码的基础 令以X86体系结构为例nd 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
堆栈的概念 ❖ 堆栈是C语言程序运行时必须的一个记录调用路径和参 数的空间 ➢ 函数调用框架 ➢ 传递参数 ➢ 保存返回地址 ➢ 提供局部变量空间 ➢ 等等 ❖ C语言编译器对堆栈的使用有一套的规则 ❖ 了解堆栈存在的目的和编译器对堆栈使用的规则是理解 操作系统一些关键性代码的基础 ❖ 以x86体系结构为例

堆栈寄存器和堆栈操作 ◇堆栈相关的寄存器 低地址 >esp,堆栈指针( stack pointer)esp p,基址指针( base pointer) 令堆栈操作 push 栈顶地址减少4个字节(32位) pop ebp 栈顶地址增加4个字节 高地址 ☆ebp在C语言中用作记录当前函数调用基址 嵌入式系统实验室 EM日 EDDED SYSTEM LA日口 RATORY
堆栈寄存器和堆栈操作 ❖堆栈相关的寄存器 ➢esp,堆栈指针(stack pointer) ➢ebp,基址指针(base pointer) ❖堆栈操作 ➢push 栈顶地址减少4个字节(32位) ➢pop 栈顶地址增加4个字节 ❖ebp在C语言中用作记录当前函数调用基址 esp ebp 高地址 低地址 esp

利用堆栈实现函数调用和返回 建立被调用者函数的堆栈框架 pushl %oebp movl %oesp, %oebp ∥调用者 ∥被调用者函数体 /do sth call target 拆除被调用者函数的堆栈框架 movl %oebp, %esp ca指令: popl %ebp 1)将下一条指令的地址A保 ret- 存在栈顶 2)设置ejp指向被调用程序 将地址A恢复到eip中 嵌人式系狁头验室 代码开始处 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
// 调用者 … call target … 利用堆栈实现函数调用和返回 //建立被调用者函数的堆栈框架 pushl %ebp movl %esp, %ebp //拆除被调用者函数的堆栈框架 movl %ebp,%esp popl %ebp ret //被调用者函数体 //do sth. … call指令: 1)将下一条指令的地址A保 存在栈顶 2)设置eip指向被调用程序 代码开始处 将地址A恢复到eip中

函数堆栈框架的形成 ° call XXX 执行cl前 esp >执行cal时,cs:eip原来的值 ebp 指向cl下一条指令,该值被 esp 保存到栈顶,然后cs:eip的值 esp ebp低地址 elp 指向xx的入口地址 esp 令进入 XXX 58 >第一条指令: pushl%ebp >第二条指令:mow%esp,%ebp 函数体中的常规操作,可能会压栈、出栈 ◆退出xXx eop movl %ebp, %esp 高地址 popl %ebp ret 嵌入式系统实验室 EMBEDDED SYSTEM LAB口RAT口RY SU:MDU INTHUTE OR AOVANCLD STUOY D USTt
函数堆栈框架的形成 ❖ call xxx ➢ 执行call之前 ➢ 执行call时,cs : eip原来的值 指向call下一条指令,该值被 保存到栈顶,然后cs : eip的值 指向xxx的入口地址 ❖ 进入xxx ➢ 第一条指令: pushl %ebp ➢ 第二条指令: movl %esp, %ebp ➢ 函数体中的常规操作,可能会压栈、出栈 ❖ 退出xxx ➢ movl %ebp,%esp ➢ popl %ebp ➢ ret esp ebp 高地址 低地址 cs : eip esp ebp esp ebp esp
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《The C++ Programming Language》课程教学资源(PPT课件讲稿)Lecture 04 Object-Based Programming.ppt
- 北京航空航天大学:SimplyDroid - Efficient Event Sequence Simplification for Android Application.pptx
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)第7讲 图元填充与裁剪算法.pptx
- 香港浸会大学:Introduction to Linux and PC Cluster.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 结构体、共用体与枚举类型.ppt
- 《计算机系统安全》课程教学资源(PPT课件讲稿)第二章 黑客常用的系统攻击方法.ppt
- 上海交通大学:《挖掘海量数据集 Mining Massive Datasets》课程教学资源(PPT讲稿)Lecture 06 搜索引擎 Search Engines.ppt
- 《Introduction to Java Programming》课程PPT教学课件(Sixth Edition)Chapter 16 Applets and Multimedia.ppt
- 《计算机组装与维护》课程教学资源(PPT课件讲稿)第9章 BIOS设置(设置BIOS).ppt
- 香港城市大学:基序检测的随机化算法(PPT讲稿)Randomized Algorithm for Motif Detection.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图及其应用.ppt
- 3D Reconstruction from Images:Image-based Street-side City Modeling.ppt
- 大连理工大学:《计算机网络》课程教学资源(PPT课件讲稿)Chapter 2 应用层 application layer.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 3 Process Description and Control 3.4 Process Control 3.5 Execution of the Operating System 3.6 Unix SVR4 Process Management 3.7 Linux Process management system calls.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第七章 图 Graph.ppt
- 《数据结构》课程教学资源:实践教学大纲.doc
- 《网络算法学》课程教学资源(PPT课件讲稿)第三章 实现原则.ppt
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第5章 多媒体设备介绍及选购.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 02 Network Classification.pptx
- 清华大学:无线网和移动网(PPT课件讲稿)Mobile and wireless network.pptx
- 《网上开店实务》课程教学资源(PPT讲稿)学习情境3 网店装修.ppt
- 北京大学:《项目成本管理》课程教学资源(PPT课件讲稿)项目范围计划(主讲:周立新).ppt
- 香港中文大学:Achieving Secure and Cooperative Wireless Networks with Trust Modeling and Game Theory.ppt
- MSCIT 5210/MSCBD 5002:Knowledge Discovery and Data Mining:Chapter 4:Data Warehousing, On-line Analytical Processing and Data Cube.ppt
- 《程序设计基础》课程PPT教学课件(C++)第3讲 C++程序控制结构.ppt
- 四川大学:《数据库技术》课程教学资源(PPT课件讲稿)数据库设计.ppt
- 云计算 Cloud Computing(PPT讲稿)MapReduce进阶.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第7章 用函数实现模块化程序设计.pptx
- 中国科学技术大学:云计算及安全(PPT讲稿)Cloud Computing & Cloud Security.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)数字图像处理基础 Basics of Digital Image Processing.pptx
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)图像压缩编码 Image Compression.pptx
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第3章 计算机的算术运算.pptx
- Analysis of Algorithms(PPT讲稿)Data Structures and Data Management.ppt
- 《C语言程序设计》课程电子教案(PPT课件讲稿)第七章 数组.ppt
- 《计算机网络与因特网 Computer Networks and Internets》课程教学资源(PPT课件讲稿)第二讲 互联网应用软件.ppt
- 《计算机操作系统》课程教学资源(PPT课件讲稿)第四章 存储器管理.ppt
- 《单片机应用技术》课程PPT教学课件(C语言版)第10章 单片机测控接口.ppt
- 中国科技大学计算机系:《黑客反向工程》课程教学资源(PPT课件讲稿)黑客反向工程导论(陈凯明).ppt
- 香港科技大学:Record Linkage for Big Data.pptx
- 沈阳理工大学:《计算机网络》课程教学资源(PPT课件讲稿)第2章 IP技术.ppt