【发布时间】:2018-01-02 17:42:34
【问题描述】:
我试图了解在 arm 中在受信任(安全)和非安全模式之间来回切换的成本。
当从不安全的世界转移到安全的世界时,究竟需要发生什么?我知道需要设置 ns 位(基于一些特殊指令?),需要刷新和更新页表(?),刷新和更新处理器缓存。还有什么需要发生的吗?
处理器缓存:它们是分段和共享的缓存,还是每个模式都使用整个缓存?这决定了转换的成本。
RAM:这必须是“分区的”并由两种模式使用。所以寻址只是“分区”的偏移量。是这样吗?
从用户空间到内核模式切换或用户空间中的进程到进程切换有什么不同?
从非安全模式转移到安全模式是否会比常规进程上下文切换更昂贵?
有没有文章可以解释到底发生了什么?
编辑:根据下面的回复,我希望了解当进程在 arm 处理器上从非安全模式切换到安全模式(信任区域)时究竟会发生什么。
【问题讨论】:
-
您能否将您的问题缩小到一个特定的问题,从而增加获得答案的机会?
-
@Tony,我希望了解当进程在 arm 处理器上从非安全模式切换到安全模式(信任区域)时究竟会发生什么。您在寻找更多细节吗?
-
现在好多了,具体的架构不知道。但是当您触发系统调用时,它会在当前进程的上下文中以特权模式执行。没有切换。
标签: security operating-system arm context-switch trust-zone