Fork of the Occlum, contains additional features that are used by DeTEE
Go to file
2023-11-07 09:26:20 +08:00
.githooks Integrate cargo fmt into make format 2020-10-14 20:34:12 +08:00
.github Refine log output for demo test CI 2023-11-07 09:26:20 +08:00
demos [demos] Update readme of demo llm 2023-10-18 14:32:08 +08:00
deps Update rust-sgx-sdk and rust toolchains 2023-11-07 09:26:20 +08:00
docs [readthedoc] Add doc for occlum llm demo 2023-10-17 17:41:17 +08:00
etc Add init with aecs kms client support 2023-06-08 09:55:00 +08:00
example [example] Update example with init-ra way 2023-07-06 18:58:46 +08:00
src Add new fields for config file to enable EDMM 2023-11-07 09:26:20 +08:00
test Add new fields for config file to enable EDMM 2023-11-07 09:26:20 +08:00
tools Add new fields for config file to enable EDMM 2023-11-07 09:26:20 +08:00
.all-contributorsrc docs: update .all-contributorsrc 2019-02-26 21:15:11 +08:00
.astylerc Disable backup file when make format 2020-07-01 21:22:29 +08:00
.gitignore Ignore rust target directory 2023-11-07 09:26:20 +08:00
.gitmodules Upgrade dependencies for occlum_exec 2022-09-06 15:38:41 +08:00
.readthedocs.yaml [readthedoc] enable PDF format build 2023-10-19 09:27:53 +08:00
CODE_OF_CONDUCT.md Update COC of Occlum project 2022-07-03 18:59:10 -07:00
codecov.yml Add codecov ignore path 2021-10-08 10:03:40 +08:00
CONTRIBUTORS.md docs: update CONTRIBUTORS.md 2019-02-26 21:15:11 +08:00
LICENSE Modify the project license description 2023-03-15 16:08:41 +08:00
Makefile Disable DCAP for make submodule with hyper mode 2023-06-21 10:48:52 +08:00
README.md [docs] Refine the description on Occlum's PKU 2023-07-26 13:10:14 +08:00

Occlum logo

All Contributors Essential Test SGX Hardware Mode Test Demo Test

NEWS: Our paper Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX has been accepted by ASPLOS'20. This research paper highlights the advantages of the single-address-space architecture adopted by Occlum and describes a novel in-enclave isolation mechanism that complements this approach. The paper can be found on ACM Digital Library and Arxiv.

Occlum is a memory-safe, multi-process library OS (LibOS) for Intel SGX. As a LibOS, it enables legacy applications to run on SGX with little or even no modifications of source code, thus protecting the confidentiality and integrity of user workloads transparently.

Occlum has the following salient features:

  • Efficient multitasking. Occlum offers light-weight LibOS processes: they are light-weight in the sense that all LibOS processes share the same SGX enclave. Compared to the heavy-weight, per-enclave LibOS processes, Occlum's light-weight LibOS processes is up to 1,000X faster on startup and 3X faster on IPC. In addition, Occlum offers an optional PKU (Protection Keys for Userspace) feature to enhance fault isolation between Occlum's LibOS and userspace processes if needed.
  • Multiple file system support. Occlum supports various types of file systems, e.g., read-only hashed FS (for integrity protection), writable encrypted FS (for confidentiality protection), untrusted host FS (for convenient data exchange between the LibOS and the host OS).
  • Memory safety. Occlum is the first SGX LibOS written in a memory-safe programming language (Rust). Thus, Occlum is much less likely to contain low-level, memory-safety bugs and is more trustworthy to host security-critical applications.
  • Ease-of-use. Occlum provides user-friendly build and command-line tools. Running applications on Occlum inside SGX enclaves can be as simple as only typing several shell commands (see the next section).

Occlum Documentation

The official Occlum documentation can be found at https://occlum.readthedocs.io.

Some quick links are as below.

What is the Implementation Status?

Occlum is being actively developed. We now focus on implementing more system calls and additional features required in the production environment, including baremetal server and public cloud (Aliyun, Azure, ...) VM.

Also, a dedicated branch 1.0.0-preview is used for next generation Occlum development.

How about the Internal Working?

The high-level architecture of Occlum is summarized in the figure below:

Arch Overview

Why the Name?

The project name Occlum stems from the word Occlumency coined in Harry Potter series by J. K. Rowling. In Harry Potter and the Order of Phoenix, Occlumency is described as:

The magical defence of the mind against external penetration. An obscure branch of magic, but a highly useful one... Used properly, the power of Occlumency will help shield you from access or influence.

The same thing can be said for Occlum, not for the mind, but for the program:

The magical defence of the program against external penetration. An obscure branch of technology, but a highly useful one... Used properly, the power of Occlum will help shield your program from access or influence.

Of course, Occlum must be run on Intel x86 CPUs with SGX support to do its magic.

Contributors

Contributions of any kind are welcome! We will publish contributing guidelines and accept pull requests after the project gets more stable.

Thanks go to all these wonderful contributors to this project.

License

Occlum is released under BSD License. See the copyright information here.