在運行時管理指定位址空間額外保留記憶體的參數和函數
Linux* 的Intel® Software Guard Extensions (Intel® SGX) 開發人員參考 的 Enclave 配置預設值表中對保留記憶體參數的解釋含糊不清。
ReservedMemMaxSize |
進程的最大保留記憶體大小。必須對齊 4KB。 |
0x0000000 | ||
ReservedMemMinSize |
進程的最小保留記憶體大小。必須對齊 4KB。 |
0x0000000 | ||
ReservedMemInitSize |
進程的初始保留記憶體大小。必須對齊 4KB。 |
0x0000000 | ||
ReservedMemExecutable |
保留的記憶體是可執行的。
|
0:保留記憶體不可執行。 1:保留記憶體是可執行的。 |
Linux Intel SGX開發人員參考說明:
通過在指定 enclave 的設定檔中指定這些欄位來ReservedMemMinSize、 ReservedMemMaxSize 和 ReservedMemInitSize 區域。保留的記憶體區域將在載入時添加到指定位址空間的末尾,並且可以在運行時使用。ReservedMemExecutable可以通過將保留記憶體可執行檔設置為1來配置保留記憶體是否具有可執行許可權。
注意 |
在 Intel® SGX 2.0 平臺上,保留記憶體強制配置為 RW 許可權,儘管 ReservedMemExecutable 設置為 1。目前,保留記憶體用於支援 Intel® SGX DNNL 庫中的即時 (JIT) 使用。 |
可以在運行時使用保留記憶體函數分配和釋放保留記憶體。
保留記憶體功能
Intel® SGX SDK 允許使用者為特殊用途(如 JIT 支援)配置保留記憶體區域。記憶體可設定或變更為可執行。有關詳細資訊,請參閱指定位址空間配置檔。為了管理預留記憶體, sgx_tstdc 庫提供了以下函數來查詢記憶體資訊、分配和釋放記憶體以及更改記憶體保護:
- sgx_get_rsrv_mem_info
- sgx_alloc_rsrv_mem
- sgx_alloc_rsrv_mem_ex
- sgx_free_rsrv_mem
- sgx_tprotect_rsrv_mem
適用於 Linux Intel SGX 開發人員參考位於最新版本的 Intel® Software Guard Extensions SDK for Linux* 的文檔資料夾中。