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

文章介绍了Linux系统的一般执行过程,包括用户态进程间的切换,以及内核线程的交互。同时,探讨了虚拟化技术在Linux中的应用,如虚拟机管理器的职责和虚拟中断的处理流程,特别是物理和虚拟外设如何触发中断。作者通过学习深化了对Linux操作系统的理解,并表示会对相关知识保持持续学习。

一、结合虚拟化技术分析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的学习更加感兴趣了,即使课程结束了我也会不断的了解更多的新知识,也会用到在这门课上学到的各种学习方法,这也正是课程的意义所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值