- Un artículo sobre el proyecto del autor en Hackweek 22 de SUSE, donde construyó un unikernel que ejecuta WebAssembly.
- El autor eligió este proyecto por varias razones, entre ellas los beneficios potenciales de combinar unikernels y WebAssembly.
- Desde la perspectiva de los desarrolladores de aplicaciones, portar o escribir una aplicación para un unikernel puede ser difícil, ya que la aplicación y sus dependencias deben ser compatibles con el unikernel de destino.
- Los mantenedores de unikernels también tienen dificultades para garantizar que cualquier aplicación se ejecute sin problemas en su plataforma, debido a primitivas del sistema desconocidas que las aplicaciones de usuario podrían aprovechar.
- Sin embargo, al apuntar a la plataforma WebAssembly, las aplicaciones cuentan con un conjunto claro de funciones que deben ser proporcionadas por el runtime de WebAssembly.
- El autor usó el proyecto RustyHermit, un unikernel escrito en Rust, como base para la aplicación unikernel.
- El autor también enfrentó dificultades relacionadas con el runtime de WebAssembly, ya que Wasmtime, su runtime preferido, no podía construirse sobre RustyHermit. Finalmente encontró y utilizó wasmi, un runtime de WebAssembly escrito completamente en Rust.
- El autor también analiza el uso de la propuesta WebAssembly Component Model en Spiderlightning, que permite ofrecer capacidades al invitado de WebAssembly y hace posible que el host utilice las capacidades proporcionadas por el invitado de WebAssembly.
- El autor tuvo que ampliar
wit-bindgen, una herramienta CLI que genera código host/guest a partir de archivos .wit, para que fuera compatible con el runtime de WebAssembly wasmi.
- El autor cierra la publicación con una grabación de la aplicación unikernel ejecutando la demo
http-server de Spiderlightning, y promete hablar sobre Rust async, Redis y algunos errores en la siguiente parte del recorrido.
1 comentarios
Comentarios en Hacker News