Interview
What is an Operating System? with Anil Madhavapeddy
- The Mirage project is expected to evolve into the default system programming method as its signatures integrate into the standard community.
- A formal specification for OCaml is emerging with a projected completion window of five to ten years.
- OCaml 5.0 is anticipated to compile nearly all existing code from the past 25 years with a minimal performance penalty, though the release date remains contingent on community testing and bug reports.
- OCaml 5.0 will introduce multi-core parallelism via the Domains interface while maintaining an invisible transition to ensure backwards compatibility and prevent ecosystem fragmentation.
- The language is expected to adopt a cleaner memory model than C++ and Java to avoid data race issues that can spread across a program, with data races constrained in space and time.
- Data races in OCaml will be limited to specific execution contexts, preventing them from propagating to the rest of the program or across multiple executions.
- OCaml 5.1 is planned to enable direct expression of concurrency, allowing multiple threads of control to be interleaved naturally.
- The runtime parts of the effect system will be proposed for OCaml 5.1.
- Future versions, likely OCaml 5.2, will expose the effect system into the core language using effect handlers and type defect handlers.
- The
eioeffect stack is expected to be pure direct style code with performance competitive with or exceeding Rust and Go, potentially faster than Go by a significant margin. - System abstractions will be rebuilt in direct style code using the effect system to create more "Mirage-y" implementations that internalize a decade of learnings regarding portability and drivers.
- The
eiostack will invisibly manage low-level OS subsystems such asio_uring, Grand Central Dispatch, and IOCP within the OCaml runtime. - Application-specific scheduling logic will be expressible in OCaml to optimize performance beyond kernel capabilities.
- Fibers within the effect system will be migratable between cores, allowing them to be resumed on different cores via OCaml code.
- Extending OCaml with Rust-style features is expected to be more feasible than rewriting entire codebases in Rust or other new languages.
- Large bodies of code with established semantics are expected to be transformable into other languages and future semantic models.
- Millions of sensors are planned for global deployment in climate change projects using Mirage OS on RISC-V hardware.
- The German government's Robo team plans to deploy secure VPN tunnels and lightweight overlay networks using unikernels.
- The reach of unikernels in critical internet infrastructure is predicted to expand in the coming years.
- The Mirage journey will continue across various pads and use cases as the technology adapts to new contexts.