Xen杂烩-1


前言

 最近项目上有虚拟化需求,想着熟悉一下开源虚拟化框架。网上搜索了一通,开源的Type1型虚拟化框架Xen映入眼帘,同时ARM也官方支持Xen,你懂得(不懂拉倒,我也不懂),那就先熟悉一下吧。


一、Xen优势

网上搜索了一堆,Xen的资料还真是乱。东扯西扯的就下面几个优势:

  • 半虚拟化(Paravirtualized) peripheral sharing

                - Displays

                - Audio interfaces

                - Touchscreens, keyboards, mice

                - Network interfaces

                - Disk drives

                - USB

  • IMG GPU virtualization with up to eight guests supported
  • ARM TrustZone virtualization access supported with OP-TEE
  • Real-time scheduler support (RTDS, ARINC653-航空基的哦)
  • Full Android on Xen support
  • HALs for PV peripherals
  • OPTEE gatekeeper/keymaster
  • Sensors/GNSS/Vehicle data via VIS
  • Full open source support
  • Functional safety support - IEC 61508 route 3s

车载需求

下面的表格是Genivi依据车载场景对Xen的能力提出的挑战:

Compute RequirementsXen Project
Static resource partitioning and flexible on-demand resource allocation (CPU, RAM, GPU and IO)Core functionality, multiple schedulers, GPU/co-processor sharing, memory ballooning, etc.
Memory/IO bus bandwidth allocation and rebalancing

WIP: Effort by several parties to enable Hard RT support on Xen

Peripherals Requirements Xen Project
GPU and displays shall be shared between execution environments supporting both fixed(each one talks to its own display or to a specified area on a single display) and flexible configurations (shape, z-order, position and assignment of surfaces from different execution environments may change at run time)Via GPU sharing (and WIP coprocessor sharing), PV Drivers (PV DRM)
Inputs shall be routed to one or multiple execution environments depending on current mode, display configuration (for touchscreens), active application (for jog dials & buttons), etc.Via PV Drivers (PV KBDFRONT)
 Audio shall be shared between execution environments. Sound complex mixing policies for multiple audio streams and routing of dynamic source/sink devices (BT profiles, USB,speakers or microphones, etc.) shall be supported.Via PV Drivers (PV SOUND)
Network shall be shared between execution environments. Virtual networks with different security characteristics shall be supported (e.g., traffic filtering and security mechanisms)

Via PV Drivers & Disaggregation 

Xen Security Modules

Storage shall support static or shared allocation, together with routing of dynamic storage devices (USB mass storage)

Via PV Drivers

Security Requirements Xen Project
Root of Trust and Secure boot shall be supported for all execution environments. x86: TPM 2.0, Intel TXT, AMD SVMx86: TPM 2.0, Intel TXT, AMD SVM
Arm: supported with OPTEE
 Trusted Computing (discrete TPM, Arm TrustZone or similar) shall be available and configurable for all execution environments.

x86: in Xen; some extras in OpenXT

Arm: OPTEE (WIP: up streaming)

Hardware isolation shall be supported (cache, interrupts, IOMMUs, firewalls, etc.)Core functionality (except firewalls)
Safety Requirements Xen Project
System monitoring shall be supported to attest and verify that the system is correctly
running.
Can be implemented through VMI in Hypervisor, agents outside or
through a hybrid
Restart shall be possible for each execution environment in case of failure. Core Functionality
 Redundancy shall be supported for the highest level of fault tolerance with fall-back solutions available to react in case of failure.WIP: This has to be analysed in
scope of "safety certification"
initiative, as well as "dom0-less" Xen and "minimal" Kbuild
Real time support shall be guaranteed together with predictive reaction time. 

Different scheduler options with
different trade-offs.

WIP: Benchmarks with recommendations and Hard RT support

Performance and Power Consumption Requirements Xen Project
Virtualization performance overhead shall be minimal: 1-2% on CPU/memory benchmarks, up to 5% on GPU benchmarks.Arm: fulfils requirements
x86: not verified
Predictability shall be guaranteed. Minimal performance requirements shall be met in any condition (unexpected events, system overload, etc.).different scheduler options with
different trade-offs. Benchmarks with
recommendations in progress.
Possibly some code changes will be
up streamed.
Execution environments fast boot: Less than 2 seconds for safety critical applications, less than 5 seconds for Instrument Cluster, and 10 seconds for IVI. Hibernate and Suspend to RAM shall be supported.Arm: Proven by both GlobalLogic
and EPAM
Execution environments startup order shall be predictable.Core functionality
Advanced power management shall be implemented with flexible policies for each execution
environment.
Arm: Partially implemented (not yet up-streamed). Further work by EPAM, XILINX and Aggios planned

二、Xen框架

        下图是Xen的框架模型,可以简单的分为三层:

  1. 底层为物理硬件,包括IO设备,内存,CPU等硬件;
  2. 中间层为Xen Hypervisor,也就是通常所说的VMM(Virtual Machine Manager),主要负责内存管理,CPU管理,中断处理以及人物调度等核心工作;
  3. 上层为Xen创建的虚拟机,包括特权虚拟机Dom0和非特权虚拟机DomU。

需要注意的

底层的IO设备不是由Xen Hypervisor管理,而是由Dom0中的内核进行管理的。

        从下图较为详细的拆解中可以看到,Xen Hypervisor控制所有的系统资源:

  • 内存管理模块
  • 中断控制器驱动
  • 系统时钟驱动
  • 虚拟机调度器
  • 特权寄存器模块

但对Linux生态依赖比较严重的设备驱动和工具链,Xen将其放置于Dom0中,简化系统的实现并提高兼容性。

Domain0是Xen创建的一个拥有特殊权限的虚拟机:

  • 它拥有大部分设备的访问权限,除非Xen做保留
  • 它能够访问Xen提供的所有hypercall API,用于支持工具链
  • 可以访问其它虚拟机的镜像和配置文件
  • 可以创建和删除其它虚拟机
  • 拥有重启和关闭整个物理主机的权限

    下图是Xen基于内核空间的Backend Driver实现的IO虚拟化。这种方式将DomU内核空间运行的Frontend Driver接收到的Guest OS的IO请求,通过环形缓冲提供给位于Dom0 Kernel中的Backend Driver,也就是所说的后半段,后半段与运行在内核空间的驱动程序交互完成底层IO硬件的访问。

下图是TI J6系统上Xen的框图:

三、Xen性能

1. NXP i.MX8

  1. Boot times:Xen 0.8 sec, dom0 5.1 sec
  2. Interrupt Latency:2.3 µsec
  3. Context Switch Overhead: ~0% to 0.6%

2.TI J6

  • u-boot loads Xen device tree configuration and Dom0 kernel

               - cold start to Xen start is less than 100ms

               - domain configuration, memory map, IRQ map passed to Xen trough device tree

  • Xen boot time on J6 is 300ms

                - all printouts are disabled

                - RAM wipeout is disabled

  • Dom0 kernel boots in 800ms

总结

先简单介绍一下行业内针对Xen做出的一些总结,接下来介绍Xen的启动过程。

### 回答1: PSPICE 17.2 是一种用于电子电路仿真和分析的软件工具。下面是一份简单的 PSpice 17.2 使用初级教程: 1. 安装和启动:首先,你需要下载并安装 PSpice 17.2 软件。安装完成后,双击图标启动软件。 2. 创建电路:在软件界面上,选择“文件”>“新建”,然后在电路编辑器中创建你的电路。你可以从元件库中选择组件,并将其拖放到画布上。连接元件的引脚以构建电路。 3. 设置元件参数:双击元件以打开元件参数设置对话框。在对话框中,设置元件的值、名称和其他参数。对于电阻、电容等基本元件,可以直接输入数值。 4. 设置仿真配置:选择“仿真”>“设置和校验”,然后在仿真设置对话框中选择仿真的类型和参数。你可以选择直流分析、交流分析、暂态分析等。设置仿真参数后,点击“确定”。 5. 运行仿真:选择“仿真”>“运行”来启动仿真。在仿真过程中,软件将模拟电路的响应,并将结果输出到仿真波形窗口中。 6. 查看仿真结果:在仿真波形窗口中,你可以查看各个元件的电流、电压等参数随时间变化的波形。你还可以对波形进行放大、缩小、平移等操作,以更详细地分析电路的性能。 7. 保存和导出结果:在仿真过程中,你可以选择将结果保存为文件或导出为其他格式,如图像文件或数据文件。 以上是 PSpice 17.2 使用初级教程的基本步骤。随着实践的深入,你可以进一步了解复杂电路的建模和分析方法,并尝试更高级的功能和技术。 ### 回答2: PSPICE 17.2是一款电子电路仿真软件,用于对电路进行分析和验证。以下是PSPICE 17.2的使用初级教程: 1. 下载和安装:在官方网站上下载PSPICE 17.2并进行安装。 2. 组件库:打开PSPICE软件后,点击“Capture CIS”图标,进入组件库界面。选择适当的电子元件,如电阻、电容、二极管等,将它们拖放到画布上。 3. 电路连接:在画布上拖放所需元件后,使用导线工具连接它们。点击导线图标,选择合适的连接方式,并将其拖动到适当的端口上。 4. 参数设定:双击元件,弹出元件属性对话框。在这里设置元件的数值,例如电阻的阻值、电容的电容值等。 5. 电源设置:在画布上点击右键,选择“Power Sources”,然后选择适当的电源,如直流电源或交流电源。设置电源的电压或电流数值。 6. 仿真设置:点击画布上方的“PSpice”选项,选择“Edit Simulation Profile”打开仿真配置对话框。在仿真配置中,设置仿真参数,如仿真类型(直流、交流、脉冲等)、仿真时间等。 7. 仿真运行:在仿真配置对话框中点击“Run”按钮,开始进行电路仿真运行。仿真完成后,可以查看并分析仿真结果,如电流、电压、功率等。 8. 结果分析:通过菜单栏中的“PSpice>Probe”选项,打开特定信号的仿真结果。通过选择信号节点,可以显示该信号的波形、幅值和频谱等信息。 9. 数据输出:仿真结束后,可以通过“PSpice>Results”菜单栏选项,导出仿真结果到文本文件,以供后续分析。 10. 误差调整:如果仿真结果与预期不符,可以检查电路连接、元件参数等以找出问题。根据需要进行调整,重新运行仿真以验证改进效果。 以上就是PSPICE 17.2使用初级教程的简要介绍。在使用过程中,请参考软件的帮助文件和官方文档,以获取更详细的指导和解决方法。任何新的软件都需要不断的实践和尝试,希望这个教程能对你有所帮助。 ### 回答3: PSPICE 17.2是一款常用的电路仿真软件,用于电路设计和分析。下面是一个简要的PSPICE 17.2的初级教程: 1. 下载和安装:首先,从官方网站下载PSPICE 17.2,并按照安装向导进行安装。安装完成后,打开软件。 2. 创建新工程:在PSPICE 主界面上,点击“File”菜单,然后选择“New Project”来创建一个新的工程。给工程起一个适当的名字,并选择工程的存储位置。 3. 添加电路元件:在工程界面上,点击“Place”图标,然后选择不同的元件来构建你的电路。你可以从库中选择各种电子元件,如电阻、电容、电感等,并将它们拖放到工程界面上。 4. 连接元件:选择“Wire”图标,然后点击元件的引脚来连接它们。确保连接顺序正确,以保证电路的正确性。 5. 设置元件参数:对于每个添加的元件,你需要设置它们的参数。右键点击元件,选择“Edit Propertiess”,然后在弹出的窗口中输入适当的参数值。 6. 添加电源:在电路中添加电源,以提供电路所需的电能。选择“Place”图标,然后选择合适的电源元件并将其拖放到电路中。同样,设置电源的参数值。 7. 设置仿真配置:在工程界面上,点击“PSpice”菜单,然后选择“Edit Simulation Profile”来设置仿真配置参数。你可以选择仿真类型、仿真时间和仿真步长等。 8. 运行仿真:点击“PSpice”菜单,选择“Run”来运行仿真。PSPICE将自动运行仿真并显示结果。 9. 分析和优化:根据仿真结果,可以分析和优化电路的性能。你可以观察电流、电压和功率等参数,以评估电路的性能,并根据需要进行调整。 10. 保存和导出结果:在分析和优化完成后,可以保存你的工程并导出结果。点击“File”菜单,选择“Save Project”来保存工程,然后选择“Outut”菜单,选择“Export”来导出结果。 以上是PSPICE 17.2的初级教程的简要介绍。通过以上步骤,你可以开始使用PSPICE 17.2进行电路设计和仿真。在实践中不断探索和学习,你将成为一个熟练的PSPICE用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值