一、结合虚拟化技术分析Linux系统的一般执行过程

1.Linux系统的一般执行过程

最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程

  • 1)正在运行的用户态进程X

  • 2)发生中断——save cs:eip/esp/eflags(current) to kernel stack,then load cs:eip(entry of a specific ISR) and ss:esp(point to kernel stack).

  • 3)SAVE_ALL //保存现场

  • 4)中断处理过程中或中断返回前调用了schedule(),其中的switch_to做了关键的进程上下文切换

  • 5)标号1之后开始运行用户态进程Y(这里Y曾经通过以上步骤被切换出去过因此可以从标号1继续执行)

  • 6)restore_all //恢复现场

  • 7)iret - pop cs:eip/ss:esp/eflags from kernel stack

  • 8)继续运行用户态进程Y

当然还有几个特殊的情况:

  • 1)通过中断处理过程中的调度时机,用户态进程与内核线程之间互相切换和内核线程之间互相切换,与最一般的情况非常类似,只是内核线程运行过程中发生中断没有进程用户态和内核态的转换;
  • 2)内核线程主动调用schedule(),只有进程上下文的切换,没有发生中断上下文的切换,与最一般的情况略简略;
  • 3)创建子进程的系统调用在子进程中的执行起点及返回用户态,如fork;
  • 4)加载一个新的可执行程序后返回到用户态的情况,如execve;

2.虚拟化技术在linux执行过程中的应用

虚拟机技术在linux执行过程中起着非常重要的作用,其中主要涉及到虚拟机管理器以及虚拟机中断。

(1)虚拟机管理器

虚拟机管理器(VMM)是一种软件程序,用于实现虚拟化技术,将物理服务器分割为多个虚拟服务器,并控制它们的运行。下面是虚拟机管理器的一些功能:硬件资源管理、虚拟机配置、虚拟机监控、虚拟机间通信、安全性和隔离性。

(2)虚拟机中断

物理外设产生虚拟中断流程:

  • 外设中断信号(Hypervisor已经将其配置成虚拟中断)到达GIC;

  • GIC Distributor将该物理IRQ发送至CPU;

  • CPU trap到Hyp模式,此时将会退出Guest OS的运行,并返回到Host OS;

  • Host OS将响应该物理中断,也就是Host OS驱动响应外设中断信号;

  • Hypervisor往List Register写入虚拟中断,Virtual CPU interface将virtual irq信号发送至vCPU;

  • CPU将处理该异常,Guest OS会从Virtual CPU Interface读取中断状态进行响应;

虚拟外设产生虚拟中断流程:

  • Qemu模拟外设,通过irqfd来触发Hypervisor进行中断注入;

  • Hypervisor往List Register写入虚拟中断,Virtual CPU interface将virtual irq信号发送至vCPU;

  • CPU将处理该异常,Guest OS会从Virtual CPU Interface读取中断状态进行响应;

  • irqfd提供了一种机制用于注入虚拟中断,而这个中断源可以来自虚拟外设;

  • irqfd是基于eventfd的机制来实现的,用于用户态与内核态,以及内核态之间的事件通知;

  • 事件源可以是虚拟设备,比如VFIO框架等。

二、 课程总结

我是一名跨专业的学生,之前对linux的了解可能仅仅停留在纸面上,仅仅是会用一些简单的指令,通过这两个月的linux操作系统课程的学习,我对linux系统的执行过程又有了深入的理解,也学会了如何用qemu调试linux内核,面对一堆很复杂的源码也有头绪可以一步一步的读下去了。通过阅读源码以及和老师上课以及ppt上知识点结合的方式,我逐渐明白了linux系统设计的巧妙之处,明白了各个功能是如何分工协作的,这也让我对于一个大型工程项目有了一个更宏观的认识,也让我对于linux的学习更加感兴趣了,即使课程结束了我也会不断的了解更多的新知识,也会用到在这门课上学到的各种学习方法,这也正是课程的意义所在。

Linux操作系统分析--课程总结报告相关推荐

  1. Linux操作系统分析-课程总结报告

    一.结合虚拟化技术分析Linux系统的一般执行过程 a. 一个 Linux 系统在虚拟化技术中的一般执行过程: 用户登录:当用户登录到 Linux 系统时,系统会创建一个用户会话. 系统启动:Linu ...

  2. Linux操作系统分析——课程总结报告

    一.Linux系统的启动过程 1.POST开机自检 linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如CPU.内存.主板.硬盘.CMOS芯片等,如果出现致命故障则停机, ...

  3. linux操作系统分析 课程,“Linux操作系统”课程分析与项目化改造

    摘要:性能卓越的开源系统Linux在当今社会具有极其重要的教育资源价值.本文通过引入中小企业转平台项目中的真实案例,重新整合设计出既能体现职业岗位真实工作任务,又能涵盖培养技能所需知识模块的综合项目, ...

  4. linux操作系统分析 课程,《Linux操作系统》课程的现状与分析

    第卷第期 安 徽 水利 水 电职 业技 术 学 院 学报 年 月 上() <操 作 系统 >课 程 的现状 与分 析 李俊娇 , 冉 兆昶 , 甘琳瑛 (蚌埠经济技术职业学 院 ,安徽 蚌 ...

  5. linux网卡配子接口,Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) Autumn 2010....

    Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010 11/23/09 Linux 操作系统分析 2/92 主要内容  进程描述符  进程切换  ...

  6. Linux操作系统分析------期末总结、感谢老师、祝我们越来越好

    王雪 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.博客目录: 1.第一 ...

  7. linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析

    linux操作系统分析实验-基于mykernel的时间片轮转多道程序实现与分析 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.co ...

  8. 【Linux操作系统分析】设备驱动处理流程

    1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...

  9. Linux操作系统分析 | 深入理解系统调用

    Linux操作系统分析 | 深入理解系统调用 实验要求 1.找一个系统调用,系统调用号为学号最后2位相同的系统调用 2.通过汇编指令触发该系统调用 3.通过gdb跟踪该系统调用的内核处理过程 4.重点 ...

最新文章

  1. WCF服务重构实录(上)
  2. ballerina 学习二十九 数据库操作
  3. 拉肚子,不能吃东西的痛苦
  4. checked_delete问题: Beyond the C++ STL: an introduction to boostdeleter::do_it
  5. 从零开始的C++网络编程
  6. Python--简单的目录扫描脚本
  7. java8 list切片_java中怎么从一个数组中截取一定长度的元素放到新数组中
  8. MariaDB日志审计 帮你揪出内个干坏事儿的小子
  9. redisTemplate批量写入数据
  10. java程序片的元素符号_UML 中的 基本画图元素及符号
  11. 技术图文:基于“科比投篮”数据集学Pandas
  12. mysql节点是什么意思_数据库节点是什么意思
  13. S3C2440原理图导读
  14. 阿里国际站P4P直通车玩法
  15. 解决pip下载速度过慢及超时等其它的报错的方法适于多种操作系统(详细)
  16. Excel选中单元格光标一直闪
  17. freemarker导出excel时office报错而wps不会
  18. Permission denied(publickey) 解决办法
  19. 难倒刘强东的奥数题,京东智能供应链解开了
  20. 用Java写一个集合竞价抓涨停的策略

热门文章

  1. 如何将Delphi7 下Bookmark的运用方便地移植到Delphi XE 下
  2. Delphi XE post中文乱码问题处理
  3. 新浪博客插入代码(块)及代码高亮…
  4. 自动控制原理3.6---线性系统的稳态误差计算
  5. 计算机辅助设计实训报告范文,计算机辅助设计实习报告.doc
  6. SQL2005 分五个版本区别详解
  7. 大众点评最新字体解密19年7月
  8. 关于漏洞扫描器AWVS的安装和破解
  9. MFC实战篇——图片旋转、控件PictureControl 清除显示、伪彩、直方图显示、为按钮添加背景图标、设置程序图标
  10. crm客户关系管理系统大约多少钱?