Networking in MirageOS

Fabian Bonk, Chair Of Network Architectures
2019
MirageOS is a modern library operating system written in the functional, memory-safe OCaml programming language. Users of MirageOS write application code in OCaml and link against various libraries provided by Mi-rageOS. These include a complete network stack (Ethernet, IP, TCP, UDP, TLS) written in pure OCaml as well as a number of backends for receiving and transmitting packets. We introduce some of MirageOS' techniques for handling raw memory. We detail two of the various networking backends
more » ... networking backends offered by MirageOS as well as a library used for safe abstraction over raw memory. We additionally suggest possible performance improvements in MirageOS. Finally we compare MirageOS with ixy.ml, a small userspace driver for ixgbe-compatible NICs written entirely in OCaml.
doi:10.2313/net-2019-06-1_10 fatcat:cishjud4vzgp3mj3aze65o2qua