[译] ARMv8-A的基础知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[译] ARMv8-A的基础知识相关的知识,希望对你有一定的参考价值。

参考技术A 在ARMv8-A中,程序会运行在四个异常级别中的一个。 在64位执行状态下,异常级别决定了执行权限级别,类似于ARMv7-A中定义的权限级别。

异常级别的概念是ARMv8-A架构的基础。 所有操作都在定义的异常级别进行,一个寄存器可以存在一个或多个异常级别。 在一个异常级别更改寄存器中的某个位可以在另一个异常级别有不同的效果。

异常级别提供了软件执行权限的逻辑分离,该软件执行权限适用于ARMv8-A体系结构的所有操作状态。 系统软件确定异常级别,从而确定运行软件的权限级别。 异常级别与计算机科学中常见的分层的保护域(hierarchical protection domains)类似,并且支持这一概念。

通常在每个异常级别运行的软件类型是:

如果一个异常级别(ELn)比另一个异常级别的n更大,则n更大的异常级别更高,被认为是处于较高的异常级别。 反之n值更小的则异常级别更低。

一般来说,一个软件(如应用程序,操作系统的内核或hypervisor)占用一个异常级别。 一个例外是内核管理程序,比如KVM,在EL2和EL1上都有运行。

ARMv8-A还提供了两个安全状态。 ARM®体系结构参考手册使用术语安全(Secure )和非安全(Non-secure)来指代这些系统安全状态。 这里,非安全状态被称为普通世界(Normal world)。 非安全状态并不表示任何安全漏洞,而是指正常操作,因此与普通世界相同。 “世界”(‘world’ )这个词是用来强调安全世界和这个设备能够拥有的其他状态之间的关系。

操作系统(OS)在普通世界中运行,与在同一硬件上运行在安全世界中的可信操作系统并行运行。 ARMTrustZone®技术使系统能够在普通世界和安全世界之间进行区分。 这可以防止某些软件攻击和硬件攻击。 安全监视器(Secure monitor )充当普通世界和安全世界之间移动的网关。 ARMv8-A体系结构中的安全监视器比起所有其他软件有着更高的异常级别。

ARMv8-A还为虚拟化提供硬件支持。 在普通世界中,虚拟化使得多个操作系统能够在同一个系统上共存和操作。 这意味着管理程序(hypervisor )或虚拟机管理器(VMM)可以在系统上运行并托管多个客户机操作系统。 然后每个客户操作系统在虚拟机上运行。 每个操作系统并没有意识到它与其他客户操作系统共享系统时间。

这意味着普通世界由以下部分组成:

安全世界有以下组件:

https://developer.arm.com/products/architecture/a-profile/docs/100878/latest/fundamentals-of-armv8-a

以上是关于[译] ARMv8-A的基础知识的主要内容,如果未能解决你的问题,请参考以下文章

[译]Golang 知识点总结

译:Android的一些基础问题

[译] 我做基础架构学到的42件事

[译]Javascript基础

ubuntu下编译小知识点

mDNS故障排查(译)