Ad

demikernel: Kernel-Bypass LibOS Architecture

Demikernel provides a uniform system call API for kernel-bypass I/O devices like RDMA and DPDK. It enables user-level networking and system functionality without kernel involvement.
Screenshot of microsoft/demikernel homepage

Demikernel introduces a novel LibOS (Library Operating System) architecture designed for efficient kernel-bypass I/O. It aims to simplify development for heterogeneous I/O technologies by offering a consistent system call interface. The core problem addressed is the fragmentation and complexity of programming for different I/O methods, allowing developers to focus on application logic rather than low-level device drivers.

Demikernel distinguishes itself through its unified API, enabling code reusability across DPDK, RDMA, and other kernel-bypass solutions. Its lightweight design minimizes overhead, and the modular structure facilitates easy integration with existing systems. The project offers a clear path for developing high-performance networking applications.

  • DPDK LibOS: Provides a system call interface for DPDK networking stack.
  • RDMA LibOS: Offers a unified API for RDMA devices and operations.
  • Cross-Platform: Supports Linux and Windows environments with tailored implementations.
  • Extensible: Designed with a modular architecture for easy extension with new I/O technologies.
  • User-Level Networking: Enables user-space development of networking applications.
  • Simplified I/O: Abstracting device access for easier application development.
  • Man pages: Detailed documentation on API usage and functionality.

Demikernel is an active research project with ongoing development and maintenance. Recent commits indicate continuous improvements and bug fixes. Documentation is comprehensive, covering setup, building, testing, and API usage. While a prototype, the project demonstrates viable concepts and actively solicits community feedback to improve its reliability and usability.

Demikernel benefits developers working with high-performance I/O devices who seek a simplified and consistent programming model. It addresses use cases requiring low-latency networking and efficient data transfer, offering an alternative to kernel-level drivers and complex system configurations. By abstracting I/O complexities, it enhances developer productivity and enables new application possibilities.

Summarize:
Share:
Stars
1,231
Forks
146
Issues
96
Created
7 years ago
Commit
5 months ago
License
MIT
Archived
No
Updated 3 days ago

Similar Repositories