4 ms·
Yes, the video is pretty amazing - Gary in 2014 managed to predict pretty much everything that's happening with WASM nowadays: the push for safe execution of so
by phoe-krk 4y ago
Yes, the video is pretty amazing - Gary in 2014 managed to predict pretty much everything that's happening with WASM nowadays: the push for safe execution of software compiled in unsafe languages, a common VMesque instruction set, web browsers implementing it first and pushing the frontier in this regard, and now kernels also starting to be capable of running that in order to avoid the cost of switching rings.
What we're yet to see is this last point becoming the default, so execution of user programs kind-of makes a circle by returning to kernel mode, except now a trusted WASM-to-native compiler/runtime is responsible for ensuring system safety. Might happen in the next few years.
- jamal-kumar 4y agoI was playing around with server-side wasm by way of OpenCL compiled to that and interfaced via Deno. It felt pretty cool until I realized wasm is 32-bit and this limits memory to 4GB for whatever process you've compiled in it. Unfortunately this obliterated it as an option for our use case. The idea is still really interesting, though. It's almost like micro-containerization. I was reading this and it's what sold me on attempting it: https://www.techtarget.com/searchitoperations/news/252527414/Server-side-WebAssembly-prepares-for-takeoff-in-2023 https://www.techtarget.com/searchitoperations/news/252527414...
- lukevp 4y agowasm doesn’t have threads right now, so I wonder if you couldn’t just make multiple wasm processes and implement message passing between them to get around this limitation? I imagine if you’re building something where 4 gigs of Ram is a limitation, it would also benefit from using multiple CPU cores and you’d have to do multi-process for that anyway.
- cube2222 4y agoThis actually seems to be experimentally supported by some runtimes, like wasmtime[0]. [0]: https://github.com/bytecodealliance/wasmtime/pull/3153 https://github.com/bytecodealliance/wasmtime/pull/3153
- miloignis 4y agoThe Memory64 proposal is coming along, with experimental support in Firefox, Chrome, Wasmtime, Node.js, and Deno. ([0] has the status of the current proposals with a supported matrix) Hopefully it'll get fully supported soon! [0] https://webassembly.org/roadmap/ https://webassembly.org/roadmap/
- magicalhippo 4y agoReminds me of Singularity OS[1], where all programs were verified bytecode, allowing them to share address space with all the benefits that has. [1]: https://en.wikipedia.org/wiki/Singularity_%28operating_system%29 https://en.wikipedia.org/wiki/Singularity_%28operating_syste...
- phoe-krk 4y agoAlso the Common Lisp OS Mezzano[0] runs like that. It runs Doom and Quake by means of lowering C to LLVM-IR which is then lowered to a subset of CL which is then compiled by the trusted native Mezzano compiler. [0] https://github.com/froggey/Mezzano/ https://github.com/froggey/Mezzano/