Enclave,线程和流程之间的关系是什么?

时间:2017-10-22 10:21:14

标签: intel tee sgx

Enclave,线程和进程之间的关系是什么?

SGX支持多线程还是多进程?

如果我打电话给“分叉”在飞地内创建新进程会怎样?

1 个答案:

答案 0 :(得分:2)

  

Enclave,线程和进程之间的关系是什么?

飞地可以被视为一个过程的一部分。进程可以将包围区页面添加到其内存中。在初始化安全区之后,该过程可以通过发出EENTER [1]来执行安全区代码。当安全区调用返回时,它通过EEXIT将执行返回到非包围(不可信)内存。

一个线程可能是多个进程执行线程之一。

  

SGX支持多线程还是多进程?

您不能在同一个飞地中运行多个进程,但可以在同一个飞地中运行多个线程。每个线程必须有自己的线程控制结构(TCS),SGX [2]支持它。使用SGX2扩展(任何CPU都不支持),也可以在安全区初始化后添加和删除TCS页面,从而允许安全区动态调整线程数量。

  

如果我打电话给“分叉”在飞地内创建新进程会怎样?

fork是一个系统调用,它是一个飞地中的非法指令,因此会导致异常[3]。

资料来源:https://software.intel.com/sites/default/files/managed/7c/f1/332831-sdm-vol-3d.pdf中的以下章节:

[1] 36.3飞地生命周期

[2] 38.8 TCS

[3] 38.6.1非法指示