当前位置: 首页 > 软件库 > 服务器软件 > 虚拟机 >

Bao

轻量级嵌入式虚拟机管理程序
授权协议 GPLv2
开发语言 C/C++
所属分类 服务器软件、 虚拟机
软件类型 开源软件
地区 不详
投 递 者 陶沛
操作系统 嵌入式
开源组织
适用人群 未知
 软件概览

Bao 是一个轻量级、开源的嵌入式虚拟机管理程序,旨在提供强大的隔离和实时保证。Bao 提供了分区管理程序架构的最小的实现。

Bao 主要针对混合临界系统而设计,非常注重隔离以实现故障遏制和实时行为。它的实现仅包括一个小的特权软件层,利用 ISA 虚拟化支持来实现静态分区管理程序架构:资源在 VM 实例化时被静态分区和分配;使用两阶段翻译静态分配内存;IO 仅为直通;虚拟中断直接映射到物理中断;它实现了虚拟 CPU 到物理 CPU 的 1-1 映射,无需调度程序。

Bao 没有外部依赖性,它包含一个小得多的 TCB。

支持的平台

支持的平台的完整列表如下所示:

Armv8-A

  • Xilinx Zynq UltraScale+ MPSoC ZCU102
  • Xilinx Zynq UltraScale+ MPSoC ZCU104
  • Ultra96 Zynq UltraScale+ ZU3EG
  • NXP MCIMX8QM-CPU
  • NVIDIA Jetson TX2
  • 96Boards HiKey 960
  • 树莓派 4
  • QEMU 虚拟机

RISC-V

  • QEMU virt (rv64)

下载并设置工具链

为目标架构下载最新的编译工具链:

a) 对于 Armv8-A,使用 aarch64-none-elf-工具链。

从 Arm 开发人员的网站下载它。

b) 对于 RISC-V,使用 riscv64-unknown-elf-工具链。

从 SiFive 的 Freedom Tools GitHub 仓库下载它。

安装工具链。然后,使用参考工具链前缀路径设置 CROSS_COMPILE 环境变量:

export CROSS_COMPILE=/path/to/toolchain/install/dir/bin/your-toolchain-prefix-

搭建基础环境

克隆这个 repo 并 cd 到它:

git clone https://github.com/bao-project/bao-demos
cd bao-demos

根据目标平台和演示, 使用附录 I 中的 ID设置 PLATFORM 和 DEMO 环境变量。

export PLATFORM=zcu102
export DEMO=linux+freertos
  • 1. Abstract 虚拟化技术是混合关键性嵌入式系统的关键支持技术,KVM或Xen等开源虚拟机管理程序设计之初并非为实时嵌入式平台量身定制,而是依赖于Linux。Bao 是一个轻量级的开源嵌入式管理程序,旨在提供强大的隔离和实时保证,与 Jailhouse 类似的是,它也利用了硬件虚拟化支持功能,与 Jailhouse 不同的是,它不依赖于 Linux。目前支

  • BaoBao Loves Reading Time Limit: 1 Second      Memory Limit: 65536 KB BaoBao is a good student who loves reading, but compared with his huge bookshelf containing lots and lots of books, his reading de

  • 题目描述 BaoBao is a good student who loves reading, but compared with his huge bookshelf containing lots and lots of books, his reading desk, which can only hold at most books, is surprisingly small. Tod

 相关资料
  • 熟悉使用 Vagrant 管理虚拟机的流程。 查看状态 如果你已经登录到了虚拟机上,先退出来。在命令行下看到下面提示符就表示你已经登录到虚拟机上了: [[email protected] ~]$ 输入命令: exit 应该会返回: logout Connection to 127.0.0.1 closed. 现在你的位置应该是在项目的根目录下面,先查看一下虚拟机的状态: vagrant st

  • null 解压缩算法的重要指标是数据的大小加上算法的大小(因为它们将驻留在相同的有限内存中)。 可用于解压的RAM很少;可以将单个字形的数据解压缩到RAM中,但不能更多。 为了使事情变得更加困难,算法必须在32位微控制器(ARM Cortex-M core)上非常快,因为字形在被绘制到显示器上时需要解压缩。每八位元组十个或二十个机器循环是可以的,一百个肯定太多了。 为了使事情变得更容易,完整的数据

  • In 1974 computers were oppressive devices in far-off air-conditioned places. Now you can be oppressed in your own living room. — Ted Nelson 虽然能够在云中部署虚拟机是一个创举,但若能将虚拟机运行在你自己的桌面系统中有时甚至是更方便的, 尤其对于测试来说更是如此

  • Java 虚拟机屏蔽了与具体操作系统平台相关的信息,使得 Java 语言编译程序只需生成在 Java 虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。

  • 我正在尝试在谷歌云平台上拥有多个、地理上多样化的VM实例。我想让他们都运行相同的定制服务,随着时间的推移可能需要补丁。我该如何使这些分布式滚动成为可能? 多谢了。

  • 本文向大家介绍虚拟化技术概述 虚拟机安装与管理手册,包括了虚拟化技术概述 虚拟机安装与管理手册的使用技巧和注意事项,需要的朋友参考一下 概述:虚拟化技术的介绍(kvm,qemu),虚拟机的安装,虚拟机的管理(virt-manger,virsh等)。 1.为什么要有虚拟化技术? 如果你的主要操作系统是windows但是又需要在Linux上工作,像VMware(需要付费。。。)或者virtualbox

  • 有什么想法吗?

  • 1、虚拟内存的基本概念 上一节所讨论的各种内存管理策略都是为了同时将多个进程保存在内存中以便允许多道程序设计。他们都具有以下两个共同特征: 1)一次性:作业必须一次性全部装入内存后,方可运行。这会导致两种情况发生:1当作业很大,不能全部被装入内存时,将使该作业无法运行;2当大量作业要求运行时,由于内存不足以容纳所有作业,只能使少数作业先运行,导致系统难以运行多道程序。 2)驻留性:作业被装入内存后