1、一些概念的介绍

optee提供虚拟化的支持, 可以在多个VMs上的optee os上跑TAs. 一个VM不能影响到另外一个VM;

启用虚拟化支持之后,optee将依赖hypervisor,因为只有hypervisor才知道当前使用哪个VM的optee.
hypervisor负责创建和销毁VMs,而且在大多数场景下, hypervisor会开机two-state MMU,所有VMs看到的不是真实的物理地址,二十IPA(intermediate physical addresses)。
也就说optee只能完成VA到IPA的转换,而IPA到PA的转换需要到hypervisor中完成.

因此,hypervisor应该包含一个了解OP-TEE协议内部内容并能够进行转换的组件。我们将该组件称为"TEE mediator",目前只有XEN hypervisor拥有optee的TEE mediator。

打开CFG_VIRTUALIZATION后,optee将支持虚拟化,当然了这时需要有一个兼容的hypervisor组件,optee才能正常工作;

CFG_VIRT_GUEST_COUNT决定当前支持VMS的最大个数,安全内存就这么一点点,支持的VMs越多,那么每个guest os的可用内存就会越少

2、optee适配hypervisor需要做哪些事情

  • 创建optee VMs时,hypervisor需要调用OPTEE_SMC_VM_CREATED smc通知optee,其中a1参数是该guest os的VM ID
  • 当optee VMs销毁时,hypervisor要发送OPTEE_SMC_VM_DESTROYED smc到optee中,确保没有正在运行的线程.
  • 每一次到optee中的smc,都会跟上a7参数. 如果是hypervisor调用optee,该参数是HYP_CLNT_ID; 如果是optee返回hypervisor,该参数是VMs ID
  • Hypervisor应该为所有SMCs执行IPA<->PA地址转换。这包括a1-a6寄存器和内存中的命令缓冲区中的两个参数
  • Hypervisor应该锁定VM与OP-TEE共享的内存页。这意味着,hypervisor应该确保固定的页面将驻留在原始PA上,只要它与OP-TEE共享。而且它应该仍然属于共享它的VM。例如,hypervisor不应该交换此页面、将所有权转移到另一个VM、从VM地址空间取消映射等等。
  • hypervisor应该正确地处理OP-TEE协议,因此对于任何VM来说,它看起来都应该是直接使用OP-TEE的。

optee堆Virtualization(hypervisor)的支持相关推荐

  1. Ehcache 3.0发布,修补了API并支持非堆存储

    Terracotta发布了分布式缓存技术Ehcache的3.0版本,支持了一些重要的新特性.首先,它的API进行了重构,现在使用了Java的泛型.性能也有所提升,同时还增加了对javax.cache ...

  2. 【QNX Hypervisor 2.2 用户手册】1.2 支持的架构、硬件和访客OS

    一.支持的硬件架构 当前发行的hypervisor支持下面的架构: ARM 基于ARMv8硬件的AArch64架构 X86 基于x86硬件的x86-64架构 二.CPU权限级别 CPU权限级别控制着当 ...

  3. linux 虚拟化之rhev Hypervisor 安装

    rhev hypervisor 必须要安装在真实物理机上,不能装在虚拟机上 rhev hypervisor 会重新配置物理机硬盘,上面的原有数据会全部损坏,所以如果硬盘有数据要先备份下来 每台hype ...

  4. Hypervisor 简介

    单词解释 Hypervisor:超级监督者,管理程序 虚拟化技术 概念 一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备.Hypervisor协调着 ...

  5. 【笔记】Armv8-A virtualization

    0.目录 文章目录 0.目录 1.概述 1.1 Before you begin 2.虚拟化介绍 2.1 虚拟化为什么重要 2.2 hypervisors的两种类型 2.3 全虚拟化和半虚拟化 2.4 ...

  6. OPTEE TA介绍

    前言 本文主要介绍OPTEE的TA(Trusted Applications),翻译自官方文档:Trusted Applications - OP-TEE documentation document ...

  7. Mastering KVM Virtualization:第一章 了解Linux虚拟化

    本章为读者提供了Linux虚拟化中流行技术的深刻见解,以及相较于其他同类技术的优势特点.本书共有14章,囊括了KVM虚拟化中的各个方面,从KVM的内部构造开始,并包括了诸如软件定义网络(SDN),性能 ...

  8. 0x17.基础数据结构 - 二叉堆

    目录 一.二叉堆 二.例题 0.AcWing 145. 超市 AcWing 146. 序列(POJ 2442) 三.HuffmanHuffmanHuffman树 1.AcWing 148. 合并果子 ...

  9. 如何分析堆外内存使用情况_堆上与堆外的内存使用情况

    如何分析堆外内存使用情况 总览 最近有人问我在Java中使用堆内存的好处和智慧. 面临相同选择的其他人可能会对这些答案感兴趣. 堆外内存没什么特别的. 线程堆栈,应用程序代码,NIO缓冲区都在堆外. ...

最新文章

  1. hdu 5385 The path
  2. Java并发编程—如何取消定时任务
  3. mysql虚拟列(Generated Columns)及JSON字段类型的使用
  4. 工业串口服务器如何使用
  5. vb的VSFlexGrid控件
  6. Spring Boot —— YAML配置文件
  7. 蓝桥杯 ADV-110 算法提高 温度转换
  8. springcloud 服务调用的两种方式
  9. windows如何设定定时关机和取消定时
  10. 高斯分布matlab程序,生成高斯分布的matlab程序
  11. idea 配置maven插件
  12. 社区网格员计算机考试考什么,网格员考试内容是什么,网格员考试科目有哪些...
  13. 孤儿进程/僵尸进程/守护进程
  14. 处理安卓机不支持backdrop-filter毛玻璃效果样式
  15. Android数据持久化存储(一)
  16. Linux块设备驱动(一) _驱动模型
  17. DDR的VTT有源端接和无源端接(slua886a笔记)
  18. 灰度值为负?问题可能出在这里
  19. 导出DNS服务器上的记录
  20. 如何正确的看待人工智能?只有编程基础的人可以学吗?

热门文章

  1. 配电技术——配电线路系统电气设备详解
  2. 数据中心建设流程附带建设标准(推荐收藏)
  3. 使用DCIM软件确保数据中心符合DCOI
  4. ibmmq 通道命令_IBM MQ 使用指南
  5. 单片机彩灯移动实验_单片机课程设计彩灯实验.doc
  6. Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
  7. TF之LSTM:利用LSTM算法对Boston(波士顿房价)数据集【13+1,506】进行回归预测(房价预测)
  8. Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
  9. Excel:利用Excel内置功能实现对某列表格按照条件进行升降序排列
  10. pyhanlp 文本聚类