Fork of the Occlum, contains additional features that are used by DeTEE
Go to file
2019-02-16 16:23:30 +08:00
deps Use my forked xmas-elf as a submodule 2019-02-16 16:23:30 +08:00
src Use my forked xmas-elf as a submodule 2019-02-16 16:23:30 +08:00
test Use my forked xmas-elf as a submodule 2019-02-16 16:23:30 +08:00
.gitignore Add write syscall and prints Hello World 2018-07-01 15:57:41 +08:00
.gitmodules Use my forked xmas-elf as a submodule 2019-02-16 16:23:30 +08:00
Makefile Use my forked xmas-elf as a submodule 2019-02-16 16:23:30 +08:00
README.md Load and run a Hello World program 2019-02-16 16:23:30 +08:00
TODO.md Add write syscall and prints Hello World 2018-07-01 15:57:41 +08:00

Rusgx

Rusgx is a single-address-space library OS for Intel SGX. It is written in Rust programming language for memory safety. This project is still work-in-progress.

How to build

Prerequisite

Rusgx depends on Rust SGX SDK. So, make sure Rust SGX SDk can be built properly. We have tested with Rust SGX SDK 1.1, Rust nightly-2018-08-25 and Intel SGX SDK 2.2 on Ubuntu 16.04.

Compile

The first time to compile the project, there are some dependencies must be first downloaded. To do this, run the following commands

cd path/to/rusgx
make init

Then, compile the project with the following commands

cd src/
make

How to use

The long-term goal is to integrate a dynamic loader into the library OS so that a single instance of Rusgx can run unmodified executables in multiple software-isolated processes. For now, we don't have to a dynamic loader; so, the temporary solution is to statically link the library OS and the executable together. Another related but different issue is the lack of the fully-fleged C standard library. We now use SGX SDK's tlibc, as it does not depend on syscalls and hence is easy to integrate. We plan to use musl libc in the future.

Run all tests

Build and run all tests with the following commands

cd test/
make
make test

Write new program or test

Add a C file, say try.c, in /test. To compile the program, run

make try

To run the program, run

make test-try