16:30
-
16:45
-
16:45
Day 1
High-Speed Linux Application Execution in the Browser with Binary Translation
<p>A large number of Linux applications have been developed over the years. Reusing them allows developers to reduce development costs, leverage well-established and battle-tested applications, and gain significant benefits by porting them to WebAssembly (Wasm). Migrating Linux applications to the browser as Wasm offers several advantages, such as:
1. Developing browser-based applications by reusing existing Linux libraries
2. Protecting client privacy and reducing server load by moving server-side Linux applications into the browser
3. Building browser-based systems that rely on Linux applications that are traditionally difficult to port (e.g., shells, compilers)</p>
<p>In this session, I will introduce elfconv, a binary translator that directly converts existing Linux binaries into Wasm without requiring their source code and provides a layer for emulating Linux system calls. This enables Linux applications that depend on system calls unavailable in Wasm (e.g., fork/exec) to run inside the browser.
Furthermore, by performing ahead-of-time (AOT) translation, elfconv achieves dramatically lower overhead compared to CPU-emulator-based projects such as container2wasm and v86. Our evaluation on several benchmark tests shows that elfconv delivers approximately 30× to 70× higher performance.
At the moment, the system call emulation layer in particular is still under development, but I believe that as elfconv matures, it will greatly expand the potential of the browser.</p>
<p>elfconv: https://github.com/yomaytk/elfconv
container2wasm: https://github.com/container2wasm/container2wasm
v86: https://github.com/copy/v86</p>