gpt4 book ai didi

linux - TrustZone 内存分区

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:19 26 4
gpt4 key购买 nike

我正在阅读有关 ARM Trustzone 的信息 link .我知道使用 TrustZone,可以将内存划分为安全区域和非安全区域。供应商可以使用它来运行安全的操作系统。

我很好奇的是这个分区支持的粒度是多少?是否只是可以有一个标记为“安全”的内存块,并且每个操作系统只能有一个这样的内存块? TrustZone 是否具有为单个进程划分内存的能力?

假设我有一个 Linux 应用程序的 .so 文件(假设示例)。进程 A 中的相同代码是否可以在虚拟地址 0x1000 到 0x2000 中标记为安全,而进程 B 中的相同代码可以在虚拟地址 0x5000 到 0x6000 中标记为安全?

最佳答案

TrustZone 分区发生在物理 内存级别,因此您问题的进程级部分并不真正适用。请注意,作为非安全操作系统的 Linux 甚至无法看到安全内存,因此为无法访问的地址创建虚拟映射几乎没有用处;然而,安全操作系统确实能够通过其页表条目中的 NS 位映射安全和非安全物理地址。

至于物理分区如何进行,这取决于实现。 TZC-380您的链接指的是支持 2-16 个区域,最小 32KB 粒度;它的继任者 TZC-400有 9 个区域,一直到 4KB 粒度。其他实现可能仍然不同,尽管低于 4KB 的粒度不太可能,因为这对于 MMU 打开的 CPU 来说几乎无法使用。此外,系统中通常有一些东西将仅硬连线到安全内存映射(例如 TZC 的编程接口(interface)),并且通常包括一些专用的安全 SRAM。

关于linux - TrustZone 内存分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32556499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com