(SIGCOMM 2014) • mTCP (NSDI 2014) • Arrakis (OSDI 2014) • IX (OSDI 2014) • StackMap (USENIX ATC 2016) • Atlas (SIGCOMM 2017) • ZygOS (SOSP 2017) • Shenango (NSDI 2019) • Shinjuku (NSDI 2019) • TAS (EuroSys 2019) • Caladan (OSDI 2020) • Demikernel (SOSP 2021) 427 into a single library for both devices (e.g., RDMAxSPDK). We implemented the bulk of our library OS code in Rust. We initially prototyped several libOSes in C++; however, we found that Rust performs competitively with C++ and achieves ns-scale latencies while offering additional benefits. First, Rust enforces memory safety through language fea- tures and its compiler. Though our libOSes use unsafe code to bind to C/C++ kernel-bypass libraries and applications, User-space Software Kernel-space Software I/O Hardware I/O Device ??? libFuture ??? DPDK User I/O Buf. Mgmt libRDMA RDMA User I/O Buf. Mgmt Net. Trans. OS Kernel Control Path Demikernel Datapath Architecture App libPOSIX libDPDK SPDK User I/O Buf. Mgmt libSPDK Future Demikernel PDPIX Datapath API Figure 3. Demikernel kernel-bypass architecture. Demikernel ac- commodates heterogenous kernel-bypass devices, including poten- tial future hardware, with a flexible library OS-based datapath ar- chitecture.We include a libOS that goes through the OS kernel for 提案:異なるタイプのデバイスへ 共通のインターフェースからアクセス可能にする Irene Zhang, Amanda Raybuck, Pratyush Patel, Kirk Olynyk, Jacob Nelson, Omar S. Navarro Leija, Ashlie Martinez, Jing Liu, Anna Kornfeld Simpson, Sujay Jayakar, Pedro Henrique Penna, Max Demoulin, Piali Choudhury, and Anirudh Badam. 2021. The Demikernel Datapath OS Architecture for Microsecond-Scale Datacenter Systems. In Proceedings of the ACM Sigops 28th Symposium on Operating Systems Principles (SOSP ʼ21), 195-211.(https://doi.org/10.1145/3477132.3483569)