WebAssembly is an assembly language for a conceptual machine, not a physical one. This is why it can be run across a variety of different machine architectures. WebAssembly needs a system interface for a conceptual operating system, not any single operating system. This way, it can be run across all different OSs. WASI is a system interface for the WebAssembly platform that will be a true companion to WebAssembly and uphold the key principles of portability and security.