LINUX课程总结

您所在的位置:网站首页 linux进程管理实验报告心得 LINUX课程总结

LINUX课程总结

2023-06-08 14:53| 来源: 网络整理| 查看: 265

一、Linux虚拟化技术分析

虚拟化主要是指通过软件实现的方案,常见的体系结构是一个直接在物理主机上运行虚拟机管理程序的虚拟化系统。在 x86平台虚拟化技术中,这个虚拟机管理程序通常被称为虚拟机监控器,又称为Hypervisor。它是运行在物理机和虚拟机之间的一个软件层,物理机被称为主机,虚拟机被称为客户机,中间软件层即Hypervisor。

虚拟机技术是云计算最核心的技术,而 KVM是当前最主流的虚拟机技术之一。虚拟机技术主要包括 CPU 的虚拟化、内存的虚拟化和 I/O 的虚拟化,典型的虚拟机实现有传统的 QEMU 虚拟机实现和轻量化的 StratoVirt 虚拟机实现。

CPU 的虚拟化在实现上可以分为全虚拟化、半虚拟化和硬件辅助虚拟化。其中全虚拟化和半虚拟化都是软件实现,也就是 VMM是纯软件实现。全虚拟化实现方式在客户虚拟机执行特权指令时需要通过 VMM 进行异常捕获、二进制翻译 BT和模拟执行;半虚拟化实现方式需要修改客户虚拟机操作系统的特权指令,改为通过 Hypercall 调用 VMM 来处理特权指令,无需异常捕获与模拟执行。硬件辅助虚拟化的实现方式是 VMM 与 Inter-VT、AMD-V 等硬件辅助虚拟化技术相配合提供在性能和运行环境上都更加逼真的虚拟机环境。

内存虚拟化是将 Guest 上的虚拟内存地址 GVA转换为 Guest 上的物理内存地址 GPA,进一步再转换为 Host 上的物理内存地址 HPA。 没有硬件辅助虚拟化之前,VMM 为每个 Guest 维护一份影子页表,通过软件维护 GVA、GPA 到 HPA 的映射,由于内存访问与更新频繁导致影子页表的维护复杂,运行开销大影响虚拟机的性能。 硬件辅助内存虚拟化技术是 CPU 引入硬件辅助内存虚拟化页表,作为 CPU 内存管理单元 MMU 的扩展,通过硬件来实现 GVA、GPA 到 HPA 的转换。首先 Guest 通过页表寄存器将 GVA 转换为 GPA,然后查询硬件辅助内存虚拟化页表将 GPA 转换为 HPA。 CPU 还使用 TLB 缓存虚拟地址到物理地址的映射,地址转换时 CPU 先根据 GPA 查找 TLB,如果未找到映射的 HPA,将根据页表中的映射填充 TLB,再进行地址转换,从而通过高速缓存 TLB 加速内存虚拟化的地址转换。

在虚拟化环境中,Guest 的 I/O 操作需要经过特殊处理才能在底层 I/O 设备上执行。KVM 支持多种 I/O 虚拟化技术,比如全虚拟化的设备模拟与半虚拟化的 virtio 驱动都是通过软件实现的 I/O 虚拟化;比如设备直通 PCI Pass-through、设备共享 SR-IOV、数据平面开发工具集 DPDK与存储性能开发工具集 SPDK等硬件辅助 I/O 虚拟化技术。

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

1.启动虚拟化管理程序:在物理计算机上,虚拟化管理程序(例如KVM、Xen等)会被启动。这个管理程序负责创建和管理虚拟机,它提供了对硬件资源的访问和分配。

2.创建虚拟机:虚拟化管理程序根据用户的需求,创建一个或多个虚拟机。每个虚拟机都是一个独立的操作系统实例,其中运行着一个或多个Linux系统。

3.分配硬件资源:虚拟化管理程序将物理计算机的硬件资源,如CPU、内存、磁盘和网络接口等,分配给每个虚拟机。这些资源可以是静态分配的(固定资源量)或动态分配的(根据需要动态调整)。

4.启动虚拟机:每个虚拟机都会被启动,这意味着它的操作系统内核开始执行。在Linux系统中,引导加载程序(bootloader)负责加载内核和必要的初始文件系统。

5.初始化内核:Linux内核启动后,它会进行一系列初始化步骤,包括初始化设备驱动程序、设置内存管理、建立系统调用接口、创建进程管理结构等。

6.用户空间初始化:在Linux系统中,内核初始化完成后,会启动第一个用户空间进程,通常是init或systemd。该进程负责初始化系统的各种服务、设备和用户环境。

7.用户进程执行:一旦用户空间初始化完成,Linux系统就进入正常的运行状态。用户可以启动各种进程和应用程序,这些进程在虚拟机中执行,与物理机上的其他虚拟机和进程相互隔离。

8.系统调用和中断处理:当用户进程需要访问特权操作或需要硬件资源时,它会通过系统调用接口向内核发出请求。内核会处理这些请求,并执行相应的操作。同时,内核还会处理来自硬件的中断请求。

9.虚拟化技术支持:虚拟化管理程序在后台负责监控和管理虚拟机的运行。它可以提供虚拟机的迁移、快照、资源调整和故障恢复等功能,以确保虚拟机的稳定和高可用性。

10。虚拟机间通信:在虚拟化环境中,不同虚拟机之间可能需要进行通信和数据交换。虚拟化管理程序提供了不同虚拟机之间的网络连接和数据传输机制,例如虚拟网络设备、虚拟交换机等。Linux系统可以利用这些机制进行网络通信。

11.资源调度和管理:虚拟化管理程序负责监控和管理虚拟机的资源使用情况。它可以根据需要调整虚拟机的资源分配,例如分配更多的CPU核心、调整内存大小等。这样可以实现对Linux系统执行环境的灵活管理和优化。

12.安全和隔离:虚拟化技术提供了强大的安全和隔离机制,以确保每个Linux系统在虚拟化环境中运行时相互隔离。这意味着一个Linux系统的故障或安全问题不会影响其他系统的稳定性和安全性。  

三、 课程总结

     在Linux操作系统分析这门课程的学习过程中,我了解到了Linux操作系统的组成和架构,包括内核、Shell、文件系统等等。由于本人是跨考生,在学这门课之前,仅仅了解一些Linux常用指令,这么课让我认识了Linux操作系统的底层构成,进程的创建终止以及进程调度机制等等,同时学习了编译内核,构建根文件系统,通过qemu模拟环境启动内核,使用gdb断点调试内核程序,阅读内核源码,对Linux操作系统有了一个更全面、更深层次的认识,也对我今后的对Linux的学习打下了一个良好的基础。  



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3