ECALL的Swtich和Switchless简介
生活随笔
收集整理的這篇文章主要介紹了
ECALL的Swtich和Switchless简介
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux SGX倉庫:https://github.com/intel/linux-sgx
如下是我的分析。
根據ECALL的真正執行者是誰,可以將ECALL執行模式分為Switch模式(線程切換上下文進入Enclave執行代碼)和Switchless模式(不可信線程將ECALL交由長期駐留Enclave的線程代理執行)。
ECALL Switch模式調用
如下圖所示,不可信線程切換上下文進入Enclave完成ECALL代碼的真正執行。
當從不可信世界調用Enclave函數時,會將Enclave函數從虛擬地址轉換為物理地址,同時需要提交一個PAGEINFO,說明申請調用Enclave函數對應EP的細節,EPCM會檢查這個物理地址對應的虛擬地址是否匹配,檢查是否是對應的EnclaveID(細節上是SECS是否匹配),讀寫執行權限是否匹配,頁類型是否匹配,匹配才允許開始執行Enclave函數。
ECALL Switchless模式調用
如下圖所示,不可信線程會將Ecall任務放到Ecall任務池中,發信號通知TWorker線程提取任務并執行。
?
總結
以上是生活随笔為你收集整理的ECALL的Swtich和Switchless简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery的模板字符串循环内容时绑定o
- 下一篇: Java毕业作品设计:音乐管理系统(网页