《云原生机密计算最佳实践白皮书》——06运行时底座——Intel vSGX:Intel SGX虚拟化——Intel SGX虚拟机最佳实践(5) https://developer.aliyun.com/article/1231117?groupCode=aliyun_linux
步骤五:验证 SGX 功能示例一:启动 Enclave
Intel SGX SDK 中提供了 SGX 示例代码用于验证 SGX 功能,默认位于 opt/intel/sgxsdk/SampleCode 目录下。
本节演示其中的启动 Enclave 示例(SampleEnclave),效果为启动一个 Enclave,以验证是否可以正常使用安装的 SGX SDK。
• 安装编译工具
yum install -y gcc-c++
• 设置 SGX SDK 相关的环境变量。
source /opt/intel/sgxsdk/environment
• 编译示例代码 SampleEnclave
cd /opt/intel/sgxsdk/SampleCode/SampleEnclave && \ make
• 运行编译出的可执行文件。
./app
预期输出:
Checksum(0x0x7ffffc732e8d20, 100) = 0xfffffd4143 Info: executing thread synchronization, please wait... Info: SampleEnclave successfully returned. Enter a character before exit ...
步骤六:停止虚拟机
QEMU 停止虚拟机
在 SGX Guest 里输入exit 退出 Guest 虚拟机,然后 CTRL+C 终止 QEMU 进程。vrish 停止虚拟机
停止虚拟机
请在 Host 机器上,输入以下命令停止虚拟机。
# virsh shutdown vsgx Domain 'vsgx' is being shutdown
删除虚拟机
请在 Host 机器上,输入以下命令删除虚拟机。
# virsh undefifine vsgx Domain 'vsgx' has been undefifined
强制停止虚拟机
说明:仅限 shutdown 不工作时才使用 destroy。
virsh destroy vsgx