Skip to content

A library OS for Linux multi-process applications, with Intel SGX support

License

Notifications You must be signed in to change notification settings

igor-davidyuk/gramine

 
 

Repository files navigation

Gramine Library OS with Intel SGX Support

Documentation Status

A Linux-compatible Library OS for Multi-Process Applications

NOTE: We recently transitioned our buildsystem to Meson, and the build procedures were changed. See Building instructions for an up-to-date build tutorial.

What is Gramine?

Gramine (formerly called Graphene) is a lightweight library OS, designed to run a single application with minimal host requirements. Gramine can run applications in an isolated environment with benefits comparable to running a complete OS in a virtual machine -- including guest customization, ease of porting to different OSes, and process migration.

Gramine supports native, unmodified Linux binaries on any platform. Currently, Gramine runs on Linux and Intel SGX enclaves on Linux platforms.

In untrusted cloud and edge deployments, there is a strong desire to shield the whole application from rest of the infrastructure. Gramine supports this “lift and shift” paradigm for bringing unmodified applications into Confidential Computing with Intel SGX. Gramine can protect applications from a malicious system stack with minimal porting effort.

Gramine is a growing project and we have a growing contributor and maintainer community. The code and overall direction of the project are determined by a diverse group of contributors, from universities, small and large companies, as well as individuals. Our goal is to continue this growth in both contributions and community adoption.

Note that the Gramine project was formerly known as Graphene. However, the name "Graphene" was deemed too common, could be impossible to trademark, and collided with several other software projects. Thus, a new name "Gramine" was chosen.

Gramine 1.0 release

Gramine has evolved a lot since our last major release. Over the last few months, we have made significant updates to provide a stable version that supports deploying key workloads with Intel SGX. We’ve rewritten major subsystems, done a significant update to the build and packaging scripts, extended test coverage, and improved the CI/CD process. We’ve reviewed and hardened specific security aspects of Gramine, and increased stability for long-running and heavy workloads.

We recently published our first production-ready release - Gramine 1.0. This version was tested on various configurations and heavy workloads, we also ensured that all risky configurations are clearly warned about to prevent insecure deployments. More details (including a list of all breaking changes) are available on the v1.0 release page.

Gramine documentation

The official Gramine documentation can be found at https://gramine.readthedocs.io. Below are quick links to some of the most important pages:

Getting help

For any questions, please send an email to gramine-users@googlegroups.com (public archive).

For bug reports, post an issue on our GitHub repository: https://github.com/gramineproject/gramine/issues.

Reporting security issues

Please report security issues to gramine-security@googlegroups.com.

Acknowledgments

Gramine Project benefits from generous help of fosshost.org: they lend us a VPS, which we use as toolserver and package hosting.

About

A library OS for Linux multi-process applications, with Intel SGX support

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 88.4%
  • Python 6.1%
  • Meson 1.7%
  • Makefile 1.4%
  • Assembly 1.3%
  • Shell 0.6%
  • Other 0.5%