ID bài viết: 000088045 Loại nội dung: Thông tin sản phẩm & Tài liệu Lần duyệt cuối: 19/10/2021

Bộ nhớ Heap được khởi tạo như thế nào trong quá trình tạo Enclave?

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Tóm tắt

Quy trình phân bổ bộ nhớ heap cho một vùng Intel® Software Guard Extensions (Intel® SGX)

Mô tả

Không thể xác định cách bộ nhớ heap lớn hơn bộ nhớ đệm ẩn trang (EPC) có sẵn được phân bổ cho các vùng tách rời khi tạo.

Độ phân giải

Intel® Software Guard Extensions (Intel® SGX) sử dụng lệnh bộ xử lý EADD để thêm bộ nhớ, bao gồm heap, vào vùng tách rời. Để EADD một trang heap, phải có sẵn trang Enclave Page Cache (EPC) miễn phí. Nếu một trang miễn phí đã tồn tại, nó sẽ được EADD sử dụng ngay lập tức. Nếu EPC đã đầy, một trang hiện đang sử dụng sẽ được phân trang và giải phóng. Đó là bây giờ trang miễn phí có thể được sử dụng cho trang heap. Trang này nằm trong EPC vì đây là trang mới được giải phóng. Trong cả hai trường hợp, không có trang nào được hoán đổi. Khi EADD thực tế xảy ra, trang sẽ có mặt trong EPC — không cần phân trang hoặc hoán đổi.

Theo mã:

  1. Đầu tiên, signtool SGX xác định bố cục vùng tách rời. Nó đặt thông tin bố cục trong siêu dữ liệu. Đây là nơi heap được thêm vào và đặt thành chỉ EADD: manage_metadata # L775
  2. Trong quá trình tải vùng kín, bộ nạp Hệ thống thời gian chạy không đáng tin cậy (uRTS) lặp qua các mục bố cục và thêm một cách thích hợp: loader.cpp#L382
  3. Mỗi trang tách rời được thêm vào bằng cách gọi trình điều khiển, gọi EADD: loader.cpp#L311

Các sản phẩm liên quan

Bài viết này áp dụng cho 1 sản phẩm

Hiện tất cả

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.