The First Billion Real Deployments of Unikernels / Feb 2020
Part 2 of my distinguished lecture series at St Andrews, discussing how unikernels had reached real-world deployment at scale. This talk explored actual deployments reaching billions of users, demonstrating that unikernel technology had moved beyond academic research into production systems. I covered lessons learned from deploying MirageOS in embedded systems and cloud infrastructure, and the future potential for unikernels in mainstream computing.
Rebuilding Operating Systems with Functional Principles / Feb 2020
Delivered the distinguished seminar series at St Andrews on rebuilding Operating Systems with functional principles. Part 1 of the lecture series explored how functional programming concepts could be applied to systems design, using MirageOS as a case study. I discussed how immutability, type safety, and composability from functional languages could help build more secure and reliable operating systems, moving away from the complexity and vulnerabilities of traditional OS architectures.
MirageOS 4: the dawn of practical build systems for exotic targets / Aug 2019
Paper on the MirageOS 4 build system at OCaml Workshop with Lucas Pluvinage, Romain Calascibetta and Rudi Grinberg. MirageOS 4 introduced practical build systems for exotic targets like embedded devices and specialized hypervisor backends. The work integrated with dune, OCaml's modern build system, making it much easier to configure and build unikernels for different deployment targets - a major step toward making unikernel development accessible to more developers.
Programming Unikernels in the Large via Functor Driven Development / May 2019
Preprint on programming unikernels with ML modules, exploring functor-driven development with Gabriel Radanne, Thomas Gazagnaire, Jeremy Yallop, Richard Mortier and others. The paper tackled the configuration matrix problem - realistic unikernel applications depend on hundreds of libraries, each with different requirements across heterogeneous platforms. We showed how OCaml's module system, particularly functors, could cleanly separate configuration from application logic, enabling modular composition and leveraging link-time optimization for efficiency.
Unikernels: the rise of the library hypervisor in MirageOS / Oct 2016
DockerCon talk on unikernels and MirageOS, explaining the integration work we had done to deliver Docker for Desktop using library hypervisor technology. I spoke about how unikernels could work alongside containers, with MirageOS providing the underlying virtualization infrastructure. This talk came after our acquisition by Docker and showed how functional programming and systems research could have real-world impact on tools used by millions of developers.
Ian Eyberg, Joshua Bernstein, Anil Madhavapeddy at OSCON in Austin / Jun 2016
Interviewed by The New Stack at OSCON in Austin, Texas alongside Ian Eyberg and Joshua Bernstein. We discussed unikernels and Docker with Alex Williams, exploring how unikernel technology was maturing and the different approaches being taken by the community. The interview covered the acquisition of Unikernel Systems by Docker and what it meant for bringing unikernels to mainstream development workflows.
Unikernel Systems is now part of Docker / Jan 2016
Announced that Unikernel Systems is now part of Docker, marking a significant milestone for bringing unikernel technology to mainstream developers. This acquisition meant that our research on MirageOS and library operating systems would directly influence tools used by millions of developers worldwide. The team would work on integrating unikernels into Docker for Mac and Windows, demonstrating how academic systems research could have real commercial impact.
Immutable Distributed Infrastructure with Unikernels / Sep 2015
Invited talk at NetPL on Immutable Distributed Infrastructure with Unikernels at NetPL 2015. The talk explored how combining unikernels with immutable infrastructure concepts through Irmin's distributed storage could revolutionize how we build cloud systems. I discussed how MirageOS and Irmin together provided version control and branch consistency for entire distributed systems, enabling new approaches to deployment, rollback, and system management.
Unikernels: Functional Infrastructure with Mirage OS / May 2015
Talk at Esper on functional programming with unikernels to a packed room at their OCaml meetup in California. I covered how MirageOS enables building functional infrastructure by compiling OCaml applications directly into specialized unikernels. The talk demonstrated the integration possibilities with Docker and explored how Irmin's distributed storage capabilities could revolutionize how we build cloud services.
Jitsu: Just-In-Time Summoning of Unikernels / May 2015
NSDI 2015 talk on Jitsu at USENIX NSDI in Oakland, presenting our system for just-in-time summoning of unikernels. Jitsu addressed network latency by rapidly instantiating local services near users on resource-constrained ARM devices. The system used DNS-triggered launches to boot unikernels in milliseconds, masking boot latency through clever shared memory channels. We demonstrated that lightweight, memory-safe unikernels could provide secure multi-tenant isolation on embedded devices while being highly responsive and power-efficient.
Jitsu: Just-In-Time Summoning of Unikernels / May 2015
Paper on spinning up low-latency unikernels per-connection at NSDI 2015, one of the top systems conferences. Jitsu demonstrated that MirageOS unikernels could boot fast enough (milliseconds) to be instantiated on-demand in response to network traffic, masking boot latency through DNS tricks. Working with Thomas Leonard, Magnus Skjegstad and a large team, we showed this was practical even on resource-constrained ARM devices, enabling secure multi-tenant edge computing years before it became mainstream. The paper won acclaim for demonstrating compelling performance while maintaining type-1 hypervisor isolation guarantees.
Delivered keynote at BOB 2015 on MirageOS / Jan 2015
I hopped over to Berlin to give the keynote at BOB 2015 on functional operating systems. The talk focused on how we can apply functional programming principles to build unikernels with MirageOS, compiling OCaml applications directly into specialized virtual machine images that run on the Xen hypervisor. This represents a radical rethinking of the traditional OS stack, eliminating much of the bloat and attack surface of conventional operating systems. If you're in the region, I highly recommend attending BOB as a superbly organised conference with a diverse and interesting crowd of functional programmers.
Codemesh 2014: Nymote: Git Your Own Cloud Here / Dec 2014
Gave Codemesh 2014 talk on Nymote, exploring personal data management with unikernels and self-hosting. The talk focused on how individuals could "git their own cloud" by running secure, lightweight services for managing personal data using MirageOS and Irmin. This was part of our broader vision for giving people control over their own data through easy-to-deploy unikernel applications, moving away from dependence on centralized cloud providers.
Jitsu: Just-in-Time Summoning of Unikernels (new directions in operating systems) / Nov 2014
New Directions in Operating Systems talk on Jitsu at a workshop in London. Jitsu demonstrated just-in-time summoning of unikernels - the ability to boot MirageOS unikernels in milliseconds in response to network requests. This was a breakthrough for unikernel practicality, showing that you could have the security and efficiency benefits of unikernels without sacrificing responsiveness. The system worked by keeping unikernels in a suspended state and waking them up on demand, dramatically reducing the overhead compared to traditional VMs. It was a fun piece of work that combined DNS tricks with hypervisor optimizations to create something that felt almost magical in its speed.
MirageOS 2.0: branch consistency for Xen Stub Domains / Oct 2014
At the Xen Summit speaking about branch consistency for Xen Stub Domains, explaining how MirageOS 2.0 could leverage Irmin for distributed systems. The talk demonstrated how combining Irmin's branch-consistent storage with MirageOS could build reliable stub domains for Xen hosts. This work showed how functional data structures and version control concepts could be applied to building more reliable virtualization infrastructure.
Haskell Symposium 2014 Keynote on functional OS design / Sep 2014
Gave Haskell Symposium 2014 Keynote on functional OS design, somewhat nervously talking to a room full of Haskellers about OCaml modules. The keynote explored how functional programming principles could be applied to operating systems design, using MirageOS as a concrete example. I discussed the benefits of OCaml's module system for building composable OS components and how type-driven development could improve systems security and reliability.
Irminsule: a branch-consistent distributed library database / Sep 2014
Paper at the OCaml Workshop introducing Irmin (then called Irminsule), a branch-consistent distributed library database that brings Git-like operations to application data. This work with Thomas Gazagnaire and collaborators introduced mergeable persistent data structures that could be used to build eventually-consistent distributed systems. Irmin has since become a foundational component of MirageOS and other distributed OCaml applications.
FLOSS Weekly 302: Open Mirage / Jul 2014
Appeared on FLOSS Weekly 302 about Open Mirage, where Randal Schwartz and Simon Phipps interviewed me about the MirageOS project. We discussed how unikernels bring functional programming principles to systems programming, the benefits of using OCaml for building secure network services, and the open source community growing around the project. It was a great opportunity to introduce MirageOS to a broader open source audience.
MirageOS v2.0: a recap of new features (via MirageOS) / Jul 2014
This is a big release for us; after the first version came out earlier in the year, we added in support for ARM devices, a new storage subsystem called Irmin and even a pure OCaml TLS stack.
MirageOS v1.2 released and the runup to 2.0 (via MirageOS) / Jul 2014
I announce a point release of MirageOS 1.x, and the exciting run up to the major MirageOS 2.0 release which has lots of new features. The number of Mirage users is growing steadily!
SE Radio Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language / May 2014
Appeared on SE Radio Episode 204 about Mirage and OCaml, talking with Robert Blumen on the Software Engineering Radio podcast. We discussed the Mirage cloud operating system architecture, how OCaml's type system and functional features made it ideal for systems programming, and the practical benefits of unikernels for cloud deployment. The conversation covered both the technical foundations and real-world applications of our work.
MirageOS and XAPI project update at XenSummit / Nov 2013
MirageOS and XAPI project update at XenSummit, announcing the MirageOS 1.0 release. This was a major milestone for the project, showing how MirageOS had matured into a usable system for building unikernels. I discussed the integration work with Xen's XAPI toolstack and how MirageOS could be used to build secure, specialized virtual machines for cloud infrastructure.
Unikernels: Rise of the Virtual Library Operating System / Nov 2013
Article on the Communications of the ACM on unikernels is published, co-authored with Dave Scott. This was a significant milestone in bringing unikernels to a broader computer science audience through ACM Queue. The article explained how library operating systems could revolutionize cloud computing by replacing traditional OS virtualization with lightweight, specialized virtual machines. We discussed how unikernels could address security, performance, and resource efficiency challenges in multi-tenant cloud environments.
Mirage Developer Preview 1 screencast / Jul 2013
Mirage Developer Preview 1 screencast, showing developers how to get started with MirageOS. The screencast walked through initializing and building both Unix and Xen kernels from the same OCaml codebase. This was an important milestone in making MirageOS accessible to developers, demonstrating the workflow for creating unikernels and the power of portable functional code that could target multiple backends.
Unikernels: library operating systems for the cloud / Mar 2013
The first paper on unikernels is published at ASPLOS 2013. This landmark paper introduced unikernels as a new approach to cloud computing, where applications are compile-time specialized into standalone kernels sealed against modification. Working with