Occlum 是一个内存安全的、支持多进程的 library OS,特别适用于 Intel SGX。

前言

大家好,我是老马。

sofastack 其实出来很久了,第一次应该是在 2022 年左右开始关注,但是一直没有深入研究。

最近想学习一下 SOFA 对于生态的设计和思考。

sofaboot 系列

SOFABoot-00-sofaboot 概览

SOFABoot-01-蚂蚁金服开源的 sofaboot 是什么黑科技?

SOFABoot-02-模块化隔离方案

SOFABoot-03-sofaboot 介绍

SOFABoot-04-快速开始

SOFABoot-05-依赖管理

SOFABoot-06-健康检查

SOFABoot-07-版本查看

SOFABoot-08-启动加速

SOFABoot-09-模块隔离

SOFABoot-10-聊一聊 sofatboot 的十个问题

Occlum

最新动态: 我们的论文《Occlum:英特尔SGX单个飞地内安全高效的多任务处理》已被ASPLOS'20接收。该研究论文重点阐述了Occlum采用单地址空间架构的优势,并描述了一种新颖的飞地内隔离机制以补充这一设计。

论文可在ACM数字图书馆Arxiv查阅。

Occlum是一个专为英特尔SGX设计的内存安全多进程库操作系统(LibOS)。

作为LibOS,它能让传统应用程序 在SGX上运行而几乎无需修改源代码,从而透明地保护用户工作负载的机密性与完整性。

Occlum具备以下显著特性:

  • 高效多任务处理。 Occlum提供轻量级 LibOS进程:所有LibOS进程共享同一个SGX飞地,相较于重量级的单飞地LibOS进程,Occlum的轻量级LibOS进程启动速度快达1000倍 ,IPC性能快达3倍 。此外,Occlum还提供可选的PKU(用户空间保护密钥)功能,以增强LibOS与用户空间进程间的故障隔离(按需启用)。
  • 多文件系统支持。 Occlum支持多种文件系统类型,如只读哈希FS (完整性保护)、可写加密FS (机密性保护)、非受信主机FS(便于LibOS与宿主机OS间数据交换)。
  • 内存安全。 Occlum是首个 采用内存安全编程语言(Rust)编写的SGX LibOS,极大减少了底层内存安全漏洞的可能性,更值得托管安全关键型应用。
  • 易用性。 Occlum提供用户友好的构建与命令行工具。在SGX飞地内运行应用程序,仅需数条Shell命令即可完成(参见下一章节)。

自0.30.0版本起,Occlum引入EDMM作为可选功能。借助EDMM,Occlum配置更灵活,飞地加载时间显著缩短。详情请参阅edmm_config_guide

Occlum文档

官方文档请访问https://occlum.readthedocs.io

以下为快速链接:

当前实现状态如何?

Occlum正处于积极开发阶段。当前重点在于实现更多系统调用及生产环境所需功能,包括裸金属服务器与公有云(阿里云、Azure等)虚拟机支持。

此外,专用分支1.0.0-preview用于下一代Occlum开发。

内部工作原理?

Occlum的高层架构如下图所示:

项目命名由来?

Occlum之名源自J.K.罗琳在《哈利·波特》系列中创造的咒语Occlumency(大脑封闭术)。在《哈利·波特与凤凰社》中,该咒语被描述为:

一种抵御外部入侵的心灵魔法防御术。虽属冷门分支,却极为实用......正确使用大脑封闭术,可助你屏蔽他人窥探或影响。

Occlum对程序而言亦有异曲同工之妙:

一种抵御外部入侵的程序魔法防御术。虽属前沿技术分支,却极为实用......正确使用Occlum,可助你守护程序免受访问或干扰。

当然,Occlum需运行于支持SGX的英特尔x86 CPU上方能施展其"魔法"。

小结

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

相关推荐
文心快码BaiduComate15 小时前
有奖征集|解锁Comate超能力:一文玩转Comate Skills
前端·后端
StackNoOverflow15 小时前
Spring Boot 核心知识点总结
java·spring boot·后端
世界哪有真情15 小时前
使用 Arthas 精准排查 SpringBoot 多模块项目中未使用的类(安全清理无用代码)
java·后端
EasyCVR15 小时前
国标GB28181/RTSP/ONVIF/RTMP视频监控平台EasyCVR视频质量诊断花屏/蓝屏/画面模糊/冻结检测
网络·数据库·音视频
Coovally AI模型快速验证15 小时前
检测+跟踪一体化!4.39M参数、8.3W功耗,轻量化模型让无人机在露天矿实时巡检
算法·yolo·无人机·智能巡检·智慧矿山
玛卡巴卡ldf15 小时前
【LeetCode 手撕算法】(矩阵)73-矩阵置零、54-螺旋矩阵(贪吃蛇)、48-旋转图像
java·数据结构·算法·leetcode·力扣
C^h15 小时前
RTthread中的内存池理解
linux·数据库·c++·算法·嵌入式
深藏功yu名15 小时前
Day25(高阶篇):RAG检索与重排序算法精研|从原理到参数调优,彻底攻克检索瓶颈
人工智能·算法·ai·自然语言处理·排序算法·agent
司南-704915 小时前
claude初探- 国内镜像安装linux版claude
linux·运维·服务器·人工智能·后端
wangchunting15 小时前
Spring Boot 概述
java·spring boot·后端