ARMv8-A编程指导之ARMv8基础(1)
2022/2/2 9:42:33
本文主要是介绍ARMv8-A编程指导之ARMv8基础(1),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在ARMv8中,执行发生在四个异常级别的其中一个。在AArch64中,异常级别决定特权级别,这些特权级别以相同方式被定义在ARMv7中。异常级别决定特权级别,因此执行在ELn相对应于特权PLn。类似的,有更大值n的异常级别高于其他的有更高的异常界别。一个小于其他的异常级别被描述为一个低异常级别。
异常级别提供了应用于跨ARMv8架构的所有操作状态的软件执行的逻辑分离。它类似于支持概念,在计算科学中的分级保护域。
下列为软件运行在每个异常级别的典型例子:
EL0: 通常为用户应用
EL1: 操作系统内核,通常被描述为特权级别
EL2: hypervisor
EL3: 底层firmware,包括安全monitor
通常,一组软件,如应用,操作系统内核,或hypervisor,占一个异常级别。一个异常级别为在内核中的hypervisor,如KVM,它可同时执行在EL2和EL1。
ARMv8-A提供两个安全状态,安全和非安全。非安全状态也为normal world。它使能OS可并行执行一个trusted OS运行在相同的硬件上,并提供应对某些软件攻击和硬件攻击的保护。ARM trustzone技术使系统在normal和secure world之间被分区。对于ARMv7-A架构,安全monitor行为如一个网关在normal和secure world之间移动。
ARMv8-A也提供虚拟化的支持,虽然仅在normal world。这意味着hypervisor或虚拟机管理器VMM代码可运行在系统和host*guest操作系统上。基本上guest操作系统运行在虚拟机上。每个OS没有意识到它在系统中是与其他guest操作系统来共享时间。
Normal Wolrd(对应于非安全状态)具有如下特权部分:
(1)Guest OS kernel
该内核包含运行在非安全EL1的Linux和Windows。当运行在hypervisor之下时,OS内核可以作为guest或host,这依赖于hypervisor模式。
(2)Hypervisor
运行在EL2,通常为非安全状态。当hypervisor使能或存在时,hypervisor为OS内核提供虚拟化服务。
secure world具有如下特权部分:
(1)secure firmware
在应用处理器上,firmware必须时运行在启动时的第一件事。它提供几个服务,包括platform初始化,trusted OS的安装,和secure monitor调用的路由。
(2)Trusted OS
Trusted OS提供对normal world的安全服务和提供执行在安全或trusted应用的实时环境。
在ARMv8-A架构中的secure monitor在更高的异常级别并高于其他级别。它提供了软件特权的逻辑模式。
上图显示了EL2的安全版本时不能用的。
3.1 执行状态
ARMv8架构定义了两种执行状态:AArch64和AArch32。每个状态用于描述使用64位宽通用寄存器或32位宽通用寄存器的执行。当ARMv8 AArch32保留ARMv7定义的特权,在AArch64中,特权级别由异常级别决定。因此,执行在ELn于特权PLn相关。
当在AArch64状态,处理器执行在A64指令集。当在AArch32状态,处理器能执行在A32(称为ARM早期的架构版本)指令集。
下列图显示在AArch64和AArch32的异常级别的组织。
在AArch64:
在AArch32:
在AArch32状态,Trusted OS执行在安全EL3,在AArch64状态它主要执行在安全EL1。
这篇关于ARMv8-A编程指导之ARMv8基础(1)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-0601-电商商品中心解密:仅凭SKU真的足够吗?
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能