操作系统第1课.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* */152 第一章、绪论 主要内容 Linux简介 一些预备知识 操作系统基本概念 堆栈 内核态 vs 用户态 虚拟内存 分析和实验验证环境 VMware; virtualbox SourceInsight 相关工具介绍:GNU Tools等 * */152 VMware 模拟x86硬件平台 可以在Windows、Linux等平台上运行 VMWare模拟出来的硬件包括: 主板、内存、硬盘(IDE和SCSI)、DVD/CD-ROM、软驱、网卡、声卡、串口、并口和USB口。 上述硬件是固定型号的,与Host OS的实际硬件无关 可以直接从ISO文件上安装 在一个VMware上安装的的操作系统形成的虚拟机,可以拷贝到其他装有VMware的机器上 * */152 virtualbox / Windows和Kubuntu下都可以安装 Kubuntu下安装的是virtualbox-ose (Open Source Edition) * xlanchen:Linux OS Analysis */152 * */152 SourceInsight 源代码阅读和编辑工具 拥有内置的对C/C++,?C#和Java等程序的分析。 能分析源代码并动态维护符号数据库,能自动显示有用的上下文信息。 到/上可以下载到它的试用版,试用期估计在30天左右 * xlanchen:Linux OS Analysis */152 当前源码文件 当前文件的 符号表 当前所看的符号上下文 当前所看符号的调用关系 所有文件列表 Project相关信息 按目录,文件列表 文件类型配置信息 符号表 符号类型分类 * */152 作业1: C语言中堆栈的作用是什么? 为什么要有内核态与用户态的区别? * * * * * * * * * * Linux OS Analysis */152 第一章、绪论 主要内容 Linux简介 一些预备知识 操作系统基本概念 堆栈 内核态 vs 用户态 虚拟内存 分析和实验验证环境 VMware ; virtualbox SourceInsight 相关工具介绍:GNU Tools等 * Linux OS Analysis */152 操作系统的基本概念 任何计算机系统都包含一个基本的程序集合,称为操作系统。 内核(进程管理,进程调度,进程间通讯机制,内存管理,中断异常处理,文件系统,I/O系统,网络部分) 其他程序(例如函数库,shell程序等等) 操作系统的目的 与硬件交互,管理所有的硬件资源 为用户程序(应用程序)提供一个良好的执行环境 * Linux OS Analysis */152 一个典型的Linux操作系统的结构 用户应用程序 System call 对硬件资源的管理 Shell,lib Kernel implementation * */152 最简单也是最复杂的操作 在控制台下输入ls命令 Shell程序分析输入参数,确定这是ls命令 调用系统调用fork生成一个shell本身的拷贝 什么是系统调用? 为什么我们敲击键盘就会在终端上显示? fork是什么? 为什么要调用fork? 中断的概念,终端控制台设备驱动的概念 保护模式和实模式,内存保护,内核态用户态相关问题 进程的描述,进程的创建。COW技术 系统调用是怎么实现的? 软中断、异常的概念。陷阱门,系统门 调用exec系统调用将ls的可执行文件装入内存 内存管理模块,进程的地址空间,分页机制,文件系统 从系统调用返回 如何做到正确的返回? 堆栈的维护,寄存器的保存与恢复 Shell和ls都得以执行 进程的调度,运行队列等待队列的维护 什么是shell? 终端解释程序 * */152 一些基本但很重要的概念 堆栈 内核态 vs 用户态 虚拟内存 * */152 堆栈 堆栈是C语言程序运行时必须的一个记录调用路径和参数的空间 函数调用框架 传递参数 保存返回地址 提供局部变量空间 等等 C语言编译器对堆栈的使用有一套的规则 了解堆栈存在的目的和编译器对堆栈使用的规则是理解操作系统一些关键性代码的基础 以x86体系结构为例 * */152 堆栈寄存器和堆栈操作 堆栈相关的寄存器 esp,堆栈指针(stack pointer) ebp,基址指针(base pointer) 堆栈操作 push 栈顶地址减少4个字节(32位) pop 栈顶地址增加4个字节 ebp在C语言中用作记录当前函数调用基址 esp ebp 高地址 低地址 esp * */152 利用堆栈实现函数调用和返回 其他关键寄存器 cs : eip:总是指向下一条的指令地址 顺序执行:总是指向地址连续的下一条指令 跳转/分支:执行这样的指令的时候,cs : eip的值会根据程序需要被修改 call:将当

文档评论(0)

JuanHuang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档