optee堆Virtualization(hypervisor)的支持
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)的支持相关推荐
- Ehcache 3.0发布,修补了API并支持非堆存储
Terracotta发布了分布式缓存技术Ehcache的3.0版本,支持了一些重要的新特性.首先,它的API进行了重构,现在使用了Java的泛型.性能也有所提升,同时还增加了对javax.cache ...
- 【QNX Hypervisor 2.2 用户手册】1.2 支持的架构、硬件和访客OS
一.支持的硬件架构 当前发行的hypervisor支持下面的架构: ARM 基于ARMv8硬件的AArch64架构 X86 基于x86硬件的x86-64架构 二.CPU权限级别 CPU权限级别控制着当 ...
- linux 虚拟化之rhev Hypervisor 安装
rhev hypervisor 必须要安装在真实物理机上,不能装在虚拟机上 rhev hypervisor 会重新配置物理机硬盘,上面的原有数据会全部损坏,所以如果硬盘有数据要先备份下来 每台hype ...
- Hypervisor 简介
单词解释 Hypervisor:超级监督者,管理程序 虚拟化技术 概念 一种运行在基础物理服务器和操作系统之间的中间软件层,可以访问服务器上包括磁盘和内存在内的所有物理设备.Hypervisor协调着 ...
- 【笔记】Armv8-A virtualization
0.目录 文章目录 0.目录 1.概述 1.1 Before you begin 2.虚拟化介绍 2.1 虚拟化为什么重要 2.2 hypervisors的两种类型 2.3 全虚拟化和半虚拟化 2.4 ...
- OPTEE TA介绍
前言 本文主要介绍OPTEE的TA(Trusted Applications),翻译自官方文档:Trusted Applications - OP-TEE documentation document ...
- Mastering KVM Virtualization:第一章 了解Linux虚拟化
本章为读者提供了Linux虚拟化中流行技术的深刻见解,以及相较于其他同类技术的优势特点.本书共有14章,囊括了KVM虚拟化中的各个方面,从KVM的内部构造开始,并包括了诸如软件定义网络(SDN),性能 ...
- 0x17.基础数据结构 - 二叉堆
目录 一.二叉堆 二.例题 0.AcWing 145. 超市 AcWing 146. 序列(POJ 2442) 三.HuffmanHuffmanHuffman树 1.AcWing 148. 合并果子 ...
- 如何分析堆外内存使用情况_堆上与堆外的内存使用情况
如何分析堆外内存使用情况 总览 最近有人问我在Java中使用堆内存的好处和智慧. 面临相同选择的其他人可能会对这些答案感兴趣. 堆外内存没什么特别的. 线程堆栈,应用程序代码,NIO缓冲区都在堆外. ...
最新文章
- hdu 5385 The path
- Java并发编程—如何取消定时任务
- mysql虚拟列(Generated Columns)及JSON字段类型的使用
- 工业串口服务器如何使用
- vb的VSFlexGrid控件
- Spring Boot —— YAML配置文件
- 蓝桥杯 ADV-110 算法提高 温度转换
- springcloud 服务调用的两种方式
- windows如何设定定时关机和取消定时
- 高斯分布matlab程序,生成高斯分布的matlab程序
- idea 配置maven插件
- 社区网格员计算机考试考什么,网格员考试内容是什么,网格员考试科目有哪些...
- 孤儿进程/僵尸进程/守护进程
- 处理安卓机不支持backdrop-filter毛玻璃效果样式
- Android数据持久化存储(一)
- Linux块设备驱动(一) _驱动模型
- DDR的VTT有源端接和无源端接(slua886a笔记)
- 灰度值为负?问题可能出在这里
- 导出DNS服务器上的记录
- 如何正确的看待人工智能?只有编程基础的人可以学吗?
热门文章
- 配电技术——配电线路系统电气设备详解
- 数据中心建设流程附带建设标准(推荐收藏)
- 使用DCIM软件确保数据中心符合DCOI
- ibmmq 通道命令_IBM MQ 使用指南
- 单片机彩灯移动实验_单片机课程设计彩灯实验.doc
- Python之fastparquet:fastparquet的简介、安装、使用方法之详细攻略
- TF之LSTM:利用LSTM算法对Boston(波士顿房价)数据集【13+1,506】进行回归预测(房价预测)
- Algorithm:C++语言实现之SimHash和倒排索引算法相关(抽屉原理、倒排索、建立查找树、处理Hash冲突、Hash查找)
- Excel:利用Excel内置功能实现对某列表格按照条件进行升降序排列
- pyhanlp 文本聚类