2023-2024-1 20232828《Linux内核原理与分析》第十周作业

阅读学习教材「庖丁解牛Linux 分析 」第10,11章,有问题优先使用chatgpt等AI工具。或者到蓝墨云班课中提问,24小时内回复,鼓励解答别人问题,提问前请阅读「如何提问」。

教材深入学习关注豆列「Linux内核及安全」。

在本周日晚12:00前发学习博客(标题 学号《Linux内核原理与分析》第十周作业),重点是遇到的问题和解决方案内容涵盖教材学习和视频,格式用Markdown。不按时交作业会扣分。

第十章总结

KVM(Kernel-based Virtual Machine)

  • 基本概念:KVM 是一种基于 Linux 内核的开源虚拟化解决方案,允许将 Linux 内核转变为一个类型 1 的超级管理程序(Hypervisor)。通过 KVM,可以在单个物理主机上运行多个隔离的虚拟环境,即虚拟机。
  • 硬件辅助虚拟化:KVM 利用现代处理器中的硬件虚拟化技术(如 Intel VT 和 AMD-V),提供高效的虚拟化解决方案。
  • KVM 内核模块:KVM 通过内核模块(kvm.ko 和 kvm-intel.ko 或 kvm-amd.ko)实现,负责虚拟机的创建、执行和管理。

KVM API

  • 概述:KVM API 是一套内核级别的编程接口,用于与 KVM 交互。它允许用户空间应用程序创建和管理虚拟机,包括分配资源、设置虚拟硬件和控制虚拟机的执行。
  • 使用方式:通过标准的系统调用接口与 KVM API 交互,主要通过 /dev/kvm 设备进行。
  • 功能:包括虚拟机创建和销毁、虚拟 CPU 和内存的管理、虚拟设备的配置等。

QEMU-KVM

  • QEMU 与 KVM 的结合:QEMU 原本是一个独立的模拟器,可以在没有硬件辅助的情况下进行完全的系统仿真。与 KVM 结合后,QEMU 用于模拟硬件,并利用 KVM 提供的硬件辅助虚拟化功能,大大提高了性能。
  • 角色:在 KVM/QEMU 组合中,QEMU 负责模拟虚拟硬件(如硬盘、网络接口等),而 KVM 负责 CPU 和内存的虚拟化。
  • 用户空间工具:QEMU 也作为用户空间工具,提供了虚拟机的图形界面,使得管理虚拟机更为便捷。
    虚拟机技术
  • 虚拟机的定义:虚拟机是在软件中创建的计算机的仿真,它模拟硬件系统并允许用户在上面运行操作系统和应用程序。

虚拟化类型:

  • 完全虚拟化:提供与真实硬件相同的接口,不需修改客户操作系统。
    半虚拟化:客户操作系统需要修改以在虚拟化环境中运行。
  • 操作系统级虚拟化:例如 Docker,提供轻量级的隔离环境而非完整的虚拟机。

应用场景:

  • 资源优化与共享:在同一硬件上有效分配资源给多个虚拟机。
  • 测试与开发:提供一致、可控的环境用于软件测试和开发。
  • 灾难恢复与数据备份:简化和加快备份及恢复过程。
    KVM 结合了 Linux 内核的高效和灵活性,通过其 API 提供了强大的虚拟化管理能力,而 QEMU-KVM 的结合则进一步提高了虚拟机的性能和易用性。这些技术的应用非常广泛,从云计算和大型数据中心到小型企业和个人开发者,都在不同程度上依赖于虚拟化技术来优化资源使用、提高系统安全性和灵活性。

第十一章总结

Linux 容器技术基本原理

  • 基于 Linux 内核特性:容器技术主要依赖于 Linux 内核的两个重要特性:namespaces 和 cgroups。
  • namespaces:提供隔离的环境。不同的 namespaces 隔离不同的系统资源,比如 PID(进程)、network(网络)、mount(文件系统挂载点)等,确保容器内的进程只能看到容器内的资源。
  • cgroups(Control Groups):控制和限制容器可使用的资源量,如 CPU、内存、磁盘 I/O 等,防止任何一个容器占用过多资源而影响其他容器或宿主系统。

创建容器的基本过程

  • 镜像获取:容器是基于镜像创建的。镜像包含了运行应用所需的所有文件、库、依赖和配置文件。
  • 创建新的 namespace:为容器创建新的 namespace,实现操作系统级别的隔离。
  • 资源分配:通过 cgroups 分配必要的资源(如 CPU 时间、内存等)。
  • 启动进程:在隔离的环境中启动容器的主进程(通常是容器内的第一个进程)。

Docker:主流的容器平台

  • Docker:广泛使用的开源容器化平台,使开发、运行应用程序变得简单。

  • 创建容器
    编写 Dockerfile:定义创建镜像的步骤。
    构建镜像:使用 docker build 命令根据 Dockerfile 构建镜像。
    运行容器:使用 docker run 命令从镜像启动一个或多个容器。

  • 特点
    镜像版本管理:Docker Hub 提供了大量预构建的镜像。
    易于使用:简洁的命令行工具和 API。
    可移植性:容器可以在任何安装了 Docker 的机器上运行。

iSula:轻量级容器技术

  • iSula:华为开发的轻量级容器引擎,主要用于云计算和边缘计算场景。

  • 特点:
    高性能:针对高性能计算和低延迟通信优化。
    安全:提供安全隔离和加密功能。
    轻量级:适用于资源受限的环境。

总结

Linux 容器技术通过利用 Linux 内核的 namespaces 和 cgroups 功能,提供了一种高效、轻量级的方式来隔离和管理应用程序。Docker 作为最流行的容器平台之一,提供了易于使用的工具和广泛的社区支持。而 iSula 则作为一个轻量级、高性能的容器引擎,适用于对性能和安全性有更高要求的场景。这些技术在提高应用的可移植性、简化部署流程和优化资源利用方面发挥着关键作用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值