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

一、inux系统的一般执行过程(结合虚拟化)

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
     

2、在Linux的一般执行过程中,有以下几个环节用到了虚拟化技术

  1. 虚拟内存分配:在程序执行之前,Linux会为程序分配虚拟内存空间,这个虚拟内存空间可以比物理内存更大,可以让程序访问更多的内存空间。虚拟内存是通过页表映射实现的,它可以提高系统的内存利用率,并且可以防止程序之间相互干扰。
  2. 进程管理:在程序执行时,Linux会为程序创建一个进程,并为进程分配虚拟内存空间、栈空间、堆空间等。进程之间是相互隔离的,每个进程拥有独立的虚拟内存空间和系统资源,可以防止程序之间相互干扰。
  3. 文件系统:Linux的文件系统是通过虚拟文件系统(VFS)实现的,它可以将不同的文件系统抽象为统一的文件系统接口。虚拟文件系统可以让用户在不同的文件系统中访问文件和目录,例如EXT4、NTFS等。
  4. 虚拟化技术:在Linux系统中,常用的虚拟化技术包括KVM、Xen和Docker等。KVM是一种基于硬件虚拟化的全虚拟化技术,它可以在Linux系统上运行多个虚拟机。Xen是一种基于半虚拟化的虚拟化技术,它可以在Linux系统上运行多个虚拟机,每个虚拟机需要对操作系统进行修改。Docker是一种基于容器的虚拟化技术,它可以在Linux系统上运行多个容器,每个容器都运行在独立的命名空间中,可以共享操作系统内核。
     

二、课程中的收获

        作为一名跨专业学生,通过两个月linux课程的学习,对linux系统有了进一步深入的了解,学会了使用qemu调试linux内核,熟悉了linux常用操作与命令,通过内核源代码和知识点结合的学习方式,了解了Linux系统的结构和设计原理,以及系统各个功能之间是如何分工协作的,通过自己动手运行和调试内核,我深刻体会到了一个操作系统是如何运作起来的,这门课的干货很多,对于我今后对linux的学习与深入打下了一个良好的基础,也让我对linux内核源码有了更加浓厚的兴趣。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值