WASI: WebAssembly System Interface ... an abstraction of operating systems
-
imho, exceptionally articulate writing, and includes an interesting interview of the author: [^]
We started work on WASI, the WebAssembly System Interface. The goal of WASI is to create a very modular set of system interfaces. These include all of the low level kinds of interfaces that you'd expect from a system interface layer. It also includes some of the higher level ones too, like neural networks in crypto, and we expect many more of these higher level APIs to be added.
These interfaces need to follow capability based security principles to ensure that we maintain the integrity of the sandbox. For the most part, these interfaces also need to be portable across the major operating systems. Although we are ok with system specific interfaces for some narrowly scoped use cases. It was when we started trying to make this portability work that we started getting into some problems.
These problems started coming to light when we were thinking about a pretty core concept in many operating systems, the filesystem. A lot of code today depends on the filesystem. That code uses the filesystem for lots of different tasks. It's where you persist data. It's where you share data between two different programs running in different processes. It's where you put the code for executables. It's where configuration lives. It's where assets get stored.
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
-
imho, exceptionally articulate writing, and includes an interesting interview of the author: [^]
We started work on WASI, the WebAssembly System Interface. The goal of WASI is to create a very modular set of system interfaces. These include all of the low level kinds of interfaces that you'd expect from a system interface layer. It also includes some of the higher level ones too, like neural networks in crypto, and we expect many more of these higher level APIs to be added.
These interfaces need to follow capability based security principles to ensure that we maintain the integrity of the sandbox. For the most part, these interfaces also need to be portable across the major operating systems. Although we are ok with system specific interfaces for some narrowly scoped use cases. It was when we started trying to make this portability work that we started getting into some problems.
These problems started coming to light when we were thinking about a pretty core concept in many operating systems, the filesystem. A lot of code today depends on the filesystem. That code uses the filesystem for lots of different tasks. It's where you persist data. It's where you share data between two different programs running in different processes. It's where you put the code for executables. It's where configuration lives. It's where assets get stored.
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
very interesting thanks. Thumbs up from me.
Nick Polyak