Enclave、线程和进程之间的关系是什么?
SGX支持多线程还是多进程?
如果我调用"fork“在enclave中创建一个新进程,会发生什么?
发布于 2017-10-24 21:17:53
Enclave,线程和进程之间的关系是什么?
enclave可以被认为是过程的一部分。进程可以将enclave页面添加到其内存中。初始化enclave之后,进程可以通过发出EENTER 1来执行enclave代码。当enclave调用返回时,它通过EEXIT将执行返回到非enclave(不受信任)内存。
线程是执行进程的可能的多个线程中的一个。
SGX支持多线程还是多进程?
您不能在同一enclave中运行多个进程,但您可以在同一enclave中运行多个线程。每个线程都必须有自己的线程控制结构( to ),这是SGX2所支持的。使用SGX2扩展(目前还不受任何CPU支持),还可以在enclave初始化后添加和删除to页面,从而允许enclave动态调整线程的数量。
如果我调用"fork“在enclave中创建一个新进程,会发生什么?
fork是系统调用,这是enclave中的非法指令,因此将导致异常3。
来源:https://software.intel.com/sites/default/files/managed/7c/f1/332831-sdm-vol-3d.pdf中的以下章节
1 36.3 Enclave生命周期
2 38.8 TCS
3 38.6.1非法指令
https://stackoverflow.com/questions/46872957
复制相似问题