1.汽车领域hypervisor
2.KVM与VMware哪个好?如何选择更好的源码 Hypervisor
3.linux虚拟化之kvm(一个150行的x86虚拟机代码)
4.ESXi、PVE、源码unRaid对比
5.免费高性能虚拟化Mac的源码开源软件VirtualBuddy
6.SeaBIOS(2) - 硬件架构
汽车领域hypervisor
面向未来的汽车架构,使用hypervisor实现车联网自动驾驶等技术,源码可以减少ECU个数,源码实现资源隔离和分配。源码熊猫闯关游戏源码汽车ARM架构算力问题和实时性要求下,源码选择xen hypervisor而非KVM,源码使用virtio标准处理IO。源码汽车领域的源码hypervisor有Xen、Opensynergy、源码ACRN、源码Global、源码Mentor、源码QNX、源码Redbend等,QNX hypervisor较为量产。汽车产品的虚拟化一般指的是硬件虚拟化技术,其开销较小,CPU负载不超过2%,DDR小于MB,EMMC小于MB。hypervisor技术代码量在3万行以内,Xen的代码量较大。使用hypervisor可以降低成本,通过在单个SOC上运行多个不同安全级别的操作系统实现降本需求,满足车内屏幕数量的增加。智能座舱中运行四个系统,如仪表、信息娱乐系统、L0-L2级的ADAS、以及HUD系统,可能需要运行三个或四个不同系统。VIRTIO标准在汽车嵌入式环境中提供硬件接口标准,支持块存储、SCSI、网络、交易平台 源码控制台、加密、GPU、熵、输入、socket、文件服务器、声音等设备类型。标准制定工作在OASIS标准设置组中进行,支持多种操作系统,如Linux、Blackberry的QNX,以及Android。hypervisor硬件支持、安全关键性、overhead、实时性能是Tier1和OEM在选择时需考虑的因素。ACRN hypervisor是针对IOT网络开源的type 1 hypervisor项目,定义了设备管理程序参考堆栈、体系结构和虚拟设备仿真参考框架。在构建时考虑了实时性和安全性,并经过优化。ACRN支持Linux和Android作为用户虚拟机,服务虚拟机在后台运行,用户虚拟机作为post-launched的虚拟机运行。ACRN hypervisor架构利用英特尔虚拟化技术(Intel VT),运行在VMM模式和访客模式中。VMM模式下,服务VM以系统最高的虚拟机优先级运行,用户VM在访客模式中运行。启动顺序从第三方引导加载程序开始,预启动VM和服务VM的引导选项定义在源代码中。ACRN hypervisor支持设备直通和VIRTIO框架架构,提供简单、高效、标准和可扩展的漫源码虚拟设备接口,包括前端和后端驱动程序、直接交互方式、批处理操作、标准的virtqueue机制、可扩展的feature bits等。VIRTIO设备在现有总线上运行,鼓励批量操作和延迟通知以实现高性能I/O,所有设备共享一个标准的环形缓冲区和描述符机制。
KVM与VMware哪个好?如何选择更好的 Hypervisor
KVM与VMware是两种流行的虚拟机管理程序,它们各有优势与适用场景。KVM(Kernel-based Virtual Machine)是一种基于内核的虚拟化解决方案,尤其适用于Linux环境。它内置于Linux内核中,允许运行多个Linux或Windows虚拟机,每个虚拟机都拥有独立的虚拟硬件,如网卡、磁盘和图形适配器。KVM作为开源软件,具有高度的可定制性与互操作性,易于部署与使用,尤其适合企业级虚拟化需求,能够轻松增强、检查与修改源代码,满足特定的定制需求。此外,KVM的性能与扩展性在特定应用负载下具有竞争力,能够支持企业工作负载,且成本较低,总拥有成本相对较低。
VMware,作为一家提供云计算与硬件虚拟化解决方案的公司,提供了ESXi与vSphere等虚拟化平台。这些平台允许企业对基础设施进行现代化改造,有效控制与交付新旧应用程序。VMware ESXi直接安装在物理服务器上,有助于企业巩固硬件基础。交友 源码VMware vSphere需要其控制堆栈进行管理,提供了不同级别的许可权限,能够支持大规模虚拟机的配置与创建。VMware在可扩展性、性能与成熟度方面具有显著优势,尤其是在大型企业级应用中,能够支持复杂的工作负载与高效管理。
选择合适的虚拟机管理程序时,需要考虑多个因素。可扩展性方面,KVM能够轻松扩展以应对增加的负载需求,尤其适用于私有云与数据中心环境。VMware提供了强大的可扩展性,但需注意可能涉及的许可成本与协议限制。性能方面,两者均属于第一类管理程序,性能优于第二类管理程序。KVM在SPECvirt_sc基准测试中表现出接近本机速度的性能,而ESXi在启动与创建服务器时速度相对较慢。成本方面,KVM作为开源软件,无需购买许可证,总拥有成本较低。而VMware则需要购买各种产品与服务的许可证,且这些许可证通常被锁定在企业许可协议中。
在成熟度方面,KVM与ESXi均能支持企业级工作负载,提供稳定可靠的虚拟化解决方案。整合性方面,ESXi依赖于VMware的管理平台,增加了硬件需求与额外的产品依赖。KVM作为开源产品,能够与任何现有基础设施以及多种Windows与Linux平台无缝集成,提供更高的互操作性与灵活性。
支持方面,KVM需要依赖开源社区与内部IT组织的脱源码支持,而VMware提供企业级支持,作为ELA的一部分。在总体评价中,KVM被认为在支持企业工作负载、物理与虚拟基础架构的管理方面表现出色,具有较低的运营费用与总拥有成本优势。此外,KVM还具备出色的性能、无供应商锁定、跨平台互操作性、Linux操作系统本身的丰富功能以及迁移至单一虚拟化平台的简单性等优点。
综上所述,KVM与VMware各有优势,企业应根据自身需求、预算、技术栈与支持需求等因素综合考虑,选择最合适的虚拟机管理程序。在特定场景下,KVM因其开源性、成本效益与功能特性,可能被认为是更好的选择,尤其适合希望在多种硬件或软件平台上创建、暂停、停止、启动与模板化虚拟机的环境。
linux虚拟化之kvm(一个行的x虚拟机代码)
Linux虚拟化技术中,KVM(Kernel-based Virtual Machine)作为一种典型的Type2 Hypervisor,其运作模式主要在宿主操作系统(Host OS)层面上。虽然存在关于其分类的争议,但本文倾向于将其视为混合型解决方案,KVM在用户空间进行部分虚拟化处理,优化了CPU和内存管理,如QEMU中所示。KVM的核心在于一个行的x虚拟机代码示例,它展示了虚拟机的配置和运行过程。
首先,理解虚拟化,即在物理机上模拟多台VM,每个都能运行独立的OS。Type1(如QNX hypervisor)直接在硬件上运行,代码简洁,对资源需求少,适合安全性要求高的场景,如自动驾驶。相比之下,Type2(如Vmware或QEMU)依赖宿主OS,性能和安全性受宿主影响。
KVM技术示例代码涉及创建虚拟机,包括分配内存、创建VCPU、设置寄存器等步骤。在X架构中,代码从0地址开始执行,通过IO操作控制虚拟机行为,直至遇到hlt指令结束。这个简化的KVM示例来源于《QEMU/KVM源码解析与应用》等资料,是学习KVM的基础介绍。
ESXi、PVE、unRaid对比
在虚拟机软路由和NAS领域尝试了几个月后,我体验了ESXi、PVE和unRaid这三大主流虚拟系统,尽管起初的选择让人纠结,但实践中它们各有千秋。
ESXi,作为VMware vSphere Hypervisor的核心组件,原本基于Linux,后来发展为不依赖源码的ESXi。它的商业特性明显,界面友好,但硬件兼容性有限,主要针对服务器,扩展性不足。
PVE,即Proxmox Virtual Environment,基于Debian Linux,使用KVM内核,硬件兼容性极佳。虽然界面功能相对简单,操作多依赖命令行,但其扩展性几乎无限,适合技术爱好者。
unRaid则是个独特的NAS系统,基于Slackware Linux,同样基于KVM。其磁盘阵列管理独具特色,灵活性高,提供了丰富的插件、Docker支持和虚拟机功能,但对U盘引导有一定要求。
在安装上,ESXi和PVE通过官网iso镜像安装,unRaid需要U盘引导,官网提供了工具或zip包选择。系统占用资源方面,ESXi占用较大,PVE较为节省,unRaid则介于两者之间。
在创建虚拟机时,ESXi和PVE操作相对直观,unRaid则需要先配置阵列。硬盘直通方面,ESXi和PVE需要命令行操作,unRaid则简化了界面流程。PCI硬件直通和显卡直通,unRaid提供了更为便捷的解决方案。
在稳定性方面,长期运行下三者表现相似,但unRaid可能需要更多管理,特别是阵列相关设置。ESXi稳定性最高,PVE和unRaid对新手来说可能稍有挑战。
在性能和授权方面,ESXi对CPU性能损耗低,PVE和unRaid损耗稍大,但差距不大。ESXi需要付费授权,PVE免费但有提示,unRaid则针对U盘注册有不同价格选项。
Docker方面,unRaid支持且有界面,PVE需要额外安装,ESXi则不支持。unRaid的磁盘阵列和NAS功能使其在特定场景中颇具吸引力。
总结来说,ESXi适合初学者和对硬件要求高的人,PVE适合Linux开发者和喜欢折腾的用户,而unRaid则适合需要NAS功能且有一定技术基础的家庭用户,特别是对于家庭娱乐和媒体库应用来说,unRaid的特色功能使其更具吸引力。
免费高性能虚拟化Mac的开源软件VirtualBuddy
最新Mac改用ARM芯片后,市面上虚拟化软件如VMware和VirtualBox无法完美虚拟化macOS。VirtualBuddy则为Apple Silicon用户提供了完美的macOS虚拟化解决方案。支持macOS 及以上版本,同时兼容Ubuntu,但不支持Windows。
VirtualBuddy基于MacOS的Hypervisor.framework开发,使用Swift语言编写,具备多项特性。软件开源,用户可在GitHub(github.com/insidegui/Vi...)获取源代码,自行编译或下载已编译版本。推荐下载最新版1.4.1(github.com/insidegui/Vi...),安装步骤简单,下载VirtualBuddy_v1.4.1-.dmg后安装即可。
VirtualBuddy在安装后支持常用软件,如企业微信、钉钉和Xcode等,性能表现不错,未出现明显卡顿、延迟问题。此外,软件内置GuestApp,提供剪贴板共享和文件共享功能,启动虚拟机后,通过Finder侧边栏选择Guest磁盘,双击VirtualBuddyGuest应用图标即可使用。
对于Mac开发者,VirtualBuddy能在多个macOS版本(尤其是测试版)上高效测试应用程序,提供彻底隔离环境,且性能损失较小。作为替代虚拟化软件的优质选择,VirtualBuddy在Mac虚拟化领域展现出其独特价值。
SeaBIOS(2) - 硬件架构
每个BIOS设计时都会针对一套特定的硬件架构,考虑其需求与操作,因硬件资源的多样性,BIOS难以涵盖所有情况。SeaBIOS也不例外,它基于奔腾时代的PC架构,以Intel FX PMC和PIIX芯片组为支撑。
FX PMC作为北桥芯片,连接主板的高速设备,提供处理器的Host总线接口,连接内存DRAM,以及PCI总线接口,构建PCI设备树,涵盖PIIX南桥芯片。
PIIX4南桥芯片连接低速设备,如IDE控制器、DMA控制器、硬盘、USB控制器、SMBus总线控制器,以及ISA总线,用于连接其他低速设备。
由于支持的硬件平台iFX + PIIX过于老旧,已无法满足Intel不断推出的新型芯片组和功能,如PCIe、AHCI。后来,SeaBIOS引入Intel Q芯片组,支持PCIe,以Q MCH作为北桥芯片,ICH 9作为南桥芯片。此平台是Intel在年推出的。
即便QMCH + ICH9的架构已有十多年历史,PMC + PIIX架构更为老旧,但许多虚拟机仍在使用。原因是更新硬件架构的必要性不大,Hypervisor模拟硬件功能而非其内部机制、架构和物理特性。硬件功能与接口保持稳定多年,如PCI接口,模拟时无需大幅改动代码。
理解SeaBIOS的硬件架构对于深入理解其源码至关重要,因为其中包含配置和操作特定芯片组的代码。不理解目标硬件架构,很难解释代码功能。