跳转至主要内容
支持知识库

如何创建具有英特尔® Software Guard Extensions (英特尔® SGX) SGX2 特性的隔区,以便动态分配内存?

内容类型: 产品信息和文件   |   文章 ID: 000088648   |   上次审核日期: 2024 年 07 月 31 日

说明

无法确定如何编写使用来自英特尔® Software Guard Extensions (英特尔® SGX) SGX2 的动态内存管理功能的隔区。

解决方法

英特尔® Software Guard Extensions (英特尔® SGX) SGX2 指令在英特尔® SGX执行三个基本功能来动态分配内存:扩展堆、扩展堆栈、创建线程。这些功能在英特尔 SGX驱动程序、可信运行时和非可信运行时中实现。为了利用这些功能,安全区程序员必须执行的唯一显式操作是在安全区配置文件中设置以下参数:

  • StackMinSize, StackMaxSize:设置安全区可用的最小和最大堆栈大小。
  • HeapMinSize, HeapMaxSize:设置安全区可用的最小和最大堆大小。
  • TCSNum, TCSMaxNum, TCSMinPool: 用于确定安全区初始化后会创建多少线程,以及安全区运行时可以动态创建多少线程。

适用于您的操作系统的英特尔® SGX开发人员参考指南包含有关这些参数的更多详细信息。

除此之外,您可以像往常一样编写隔区代码并分配内存。英特尔® SGX驱动程序、可信运行时和不可信运行时根据需要在后台处理动态内存分配。

安全区内动态内存分配的软件支持英特尔® Software Guard Extensions实施 (英特尔® SGX) SGX2 动态内存管理章节进一步解释了英特尔® SGX SDK 如何实施动态内存管理功能。

其他信息:

英特尔® Software Guard Extensions隔区内动态内存分配的软件支持

《英特尔® SGX Linux* 开发人员参考》位于最新版本的 英特尔® Software Guard Extensions SDK for Linux* 的文档文件夹中。

《Windows* 英特尔® SGX开发人员参考》随 英特尔® SGX SDK for Windows* 安装包一起分发。

免责声明

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。