Enclave,线程和进程之间的关系是什么?
SGX支持多线程还是多进程?
如果我打电话给“分叉”在飞地内创建新进程会怎样?
答案 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非法指示