1 stable release
1.5.13 | Sep 20, 2024 |
---|---|
0.0.1 |
|
#368 in Unix APIs
1.5MB
30K
SLoC
Contains (Zip file, 175KB) Demikernel - Architecture.vsdx, (Zip file, 41KB) Demikernel - Socket States.vsdx
Demikernel
Demikernel is a library operating system (LibOS) architecture designed for use with kernel-bypass I/O devices. This architecture offers a uniform system call API across kernel-bypass technologies (e.g., RDMA, DPDK) and OS functionality (e.g., a user-level networking stack for DPDK).
To read more about the motivation behind the Demikernel, check out this blog post.
To get details about the system, read our paper in SOSP '21.
To read more about Demikernel check out https://aka.ms/demikernel.
Codename for LibOSes
catloop
- TCP Socket Loopback LibOScatmem
- Shared Memory LibOScatnap
- Linux Sockets/Windows Winsock LibOScatnip
- DPDK LibOScatpowder
- Linux Raw Sockets/Windows XDP LibOS
Documentation
- For instructions on development environment setup, see doc/setup.md.
- For instructions on building, see doc/building.md.
- For instructions on testing and running, doc/testing.md.
- For instructions for running on CloudLab, see doc/cloudlab.md.
- For documentation on the API, see documents in man.
- For instructions on how to contribute to this project, see CONTRIBUTING.
Usage Statement
This project is a prototype. As such, we provide no guarantees that it will work and you are assuming any risks with using the code. We welcome comments and feedback. Please send any questions or comments to one of the following maintainers of the project:
- Irene Zhang - irene.zhang@microsoft.com
- Anand Bonde - abonde@microsoft.com
- Pedro Henrique Penna - ppenna@microsoft.com
By sending feedback, you are consenting that it may be used in the further development of this project.
Trademark Notice
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.
Dependencies
~13–55MB
~851K SLoC