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

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

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)switch_to 调用了 __switch_to_asm 做了关键的进程上下文切换,之后开始运行进程 Y 。这里进程 Y 曾经通过上述步骤被切换出去,所以可以从 switch_to 下一行代码继续执行

6)恢复现场,RESTORE_ALL

7)iret - pop cs:eip/ss:esp/eflags from kernel stack ,从 Y 进程的内核堆栈中弹出对应的压栈内容。完成了中断上下文的切换,从进程 Y 的内核态返回到进程 Y 的用户态

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

Linux执行过程中的几种特殊情况

1)通过中断处理过程中的调度时机,用户态进程与内核级线程之间互相切换和内核级线程之间互相切换与一般的情况类似,只是内核级线程运行过程中发生中断没有进程用户态和内核态的转换

2)内核级线程主动调用 schedule 函数,只有进程上下文的切换,没有发生中断上下文的切换,与最一般的情况相比更加简单

3)创建子进程的系统调用,如 fork。在子进程中的执行起点是 ret_from_fork,返回用户态

4)加载一个新的可执行程序后返回到用户态的情况,如 execve。内部修改了中断上下文,不是iret 返回的那个默认中断保存信息

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

虚拟机技术在 Linux 系统执行过程中起着非常重要的作用,主要涉及到虚拟机管理器和虚拟机中断

虚拟机管理器是一种软件程序,用于实现虚拟化技术,将物理服务器分割为多个虚拟服务器,并控制它们的运行。实现了硬件资源管理、虚拟机配置、虚拟机监控、虚拟机间通信,确保了虚拟机之间的安全性与隔离性。通过虚拟机管理器的支持,用户可以实现资源的高效利用、快速部署和灵活运维,提高了系统的可用性和可维护性

虚拟化中断主要分为物理中断和虚拟中断两个部分。
物理中断过程是指硬件设备向 CPU 发送中断请求的过程。当硬件设备发生某些事件(如输入/输出完成、错误等)时,会向CPU发送中断信号,然后CPU会停止正在执行的程序,并保存当前的上下文信息。之后,CPU会查找中断处理程序,并跳转到该处理程序的入口点执行。由于现代计算机系统常常运行多个虚拟机,因此物理中断还需要将中断请求映射到相应的虚拟机
虚拟中断过程是指在虚拟机内部进行的中断处理过程。通过虚拟化技术,虚拟机能够响应物理中断的请求。当虚拟机收到中断请求后,它会暂停正在执行的进程,并将虚拟CPU切换到中断处理程序。实际上,虚拟中断是由虚拟机监控程序接收到物理中断信号后,将中断转换成虚拟中断,并在虚拟机内部引发中断事件。根据不同的虚拟化技术,虚拟机监控程序可能会使用不同的方法来模拟和处理虚拟中断
在整个中断过程中,虚拟化技术起到了重要的作用。它在保证虚拟机之间的相互隔离的同时,也需要让虚拟机能够响应物理设备的中断请求并实现对应的中断处理。为此,虚拟化技术实现了一系列复杂的机制,如MMU虚拟化、I/O虚拟化、中断虚拟化等。这些机制的目标是尽量减少中断处理时间,提高系统性能和响应速度

二、课程中的收获

在完成了 Linux 操作系统分析的课程之后,我从中获得的收获主要分为两个部分

首先是熟悉了 Linux 系统的相关命令,了解了 Linux 系统的基本原理。按照课程要求循序渐进,编译 Linux 系统内核、构建根文件系统、通过模拟环境启动内核、进行基本的 gdb 调试,对VsCode 的使用也有了更深入的了解,利用 VsCode 来调试内核。通过具体实践,我了解了 Linux 操作系统的发展历程,形成了对 Linux 操作系统整体上的认识

其次是简单学习了汇编语言的相关知识,对 Linux 系统中三个重要板块:中断与异常、文件系统管理、进程管理有了更为深入的理解,了解了 Linux 系统下函数执行过程中栈和寄存器的具体变化、系统中断和异常实现的具体过程

总而言之,这门课程对于今后深入学习 Linux 系统打下了一个良好的基础,也为操作系统的学习提供了有效的方法论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值