Hello everyone, my name is Masashi Yuximura from NTT in Japan and today I will present
a high-speed Linux application execution in the browser with binary translation.
So today the browser has become a computing platform, games, rendering video processing
and even LMS can run in the browser.
So can any program run in the browser?
Yes, so the answer is no, and it is very difficult.
This will be because the browser MS is security and portability and access to OS features
and the device is dimmed.
So what if we could run any native application in the browser?
Yes, so today there are many efforts to put powerful software to WebAssembly, such
as post-to-deskware, FPV, and live-office.
So native browser converges and combines native level of performance with WebRAM, portability
and security.
So, however, as mentioned earlier, it is very difficult to run any native application
in the browser.
So, to address this program, there are projects such as BV-86 and Konata Wazun that
both CPU and Mertas to WebAssembly.
This approach works functionally about CPU, migration, code this CPU, performance, degradation.
In some cases, applications have become at tens of times slower.
So, this performance limitation is a key problem, really, others.
So, concerning that, we propose a RFCOM on LT-Binary Transurator, a from the next applications
to WebAssembly.
Instead of emulating the CPU at runtime, RFCOM translates native binaries ahead of time.
Because of this, RFCOM can achieve a much better power mass than CPU emulating base approaches.
Currently, RFCOM supports the AX application, it is converting.
So, next, I will show a demo, and in this demo, we are going to bash BV-box on the
device in the browser.
So, this, for BV-box applications, convert it to Wazun with RFCOM, so we can see that, thank you.
This is a demo page on the WebAssembly, so you can try the demo on your own now.
So, first, you can see that BV-box is executed on the browser, so this is a Google
Bash on the browser, yes, of Ant, we can run some commands, for example, you name,
so there is a PSA-UX, yes, and with PSA, we can see that, to processes running in the browser,
but this commands come from BV-box, okay, so next, we run Python, we start the Python
report, yeah, okay, so, okay, so, you can see that the binary information is a head
trash, a main column, commit number, yes, so this shows that the sheet Python source code
is not modified, and build sheet Python as re-acceptifications and component it into Wazun, yes,
so if I modify the sheet Python source code, this message will be a head-shrush, main dirty
column, commit number, yes, so, yeah, sheet Python runs in the browser without code changes,
yes, so, I try to execute Python, for example, link, see W, and PID, yeah, okay, that
is correct, yeah, so, and quit, okay, okay, so, and we can make a fire with BV-accomand, yeah, so, for
example, print, okay, and save the fire, yeah, so, and the content is, print how they
compile some, yes, so, if I try to execute this Python, yeah, they're out for this correct,
okay, so, thank you, thank you, okay, so, I think this is the end of the demo, so, let's go back
to the slide, okay, okay, so, and next, let me show the benchmark results, we compare three
approaches, and the first is a source library generated by M script N, and the second is the
applications running on the own content wasn't with QMU, and the source is the applications
translated using LFCOMP, okay, so, we tested three benchmark programs, the first is prime
number, calculation, and the second is a neural network that trains on the M list data set,
and the third is, in fact, a floating point benchmark test, so, and this graph shows the
power months ratio, and the first approach is set to 100%. Yeah, so, as you can see, the
content wasn't as much lower power months, but FCOMP achieves about 60 to 90% over the source
of the approach, this means FCOMP has smaller power months loss, okay, so, two supports,
real reaction applications, LFCOMP must emulate the X system course in the browser, so, this
is the most challenging parts of LFCOMP, yes, and many system course are sufficient to
call the library, library function of M script N, for example, open, read, write, link
out, try and get it, and so on, so, however, some system course implementation is not
convenient, yes, so in particular process management, such as forcons, execvoy is essential,
okay, so, and now, and of course support forcons execvoy, but I do the time constraints,
And I will skip the implementation details here.
Yes, so like this, a four-keys executed, the executable is executed.
And also, that idea is that each Linux process is represented
as a web worker managed by JavaScript, JavaScript, based on it.
Yeah, that is like a main key.
OK, so this is a feature work for us.
We plan to improve the overall function hierarchy.
Yes, so we still need to add more system core implementation.
At the moment, we support only statically linked applications.
And we would like to support the comparisons of Linux shared objects,
as well as in addition, and the implementation of machine core.
Translation is still in progress and support for X8664,
is not concrete yet.
That is a very hard work.
Yeah, so on seconds, we plan to put the board restors.
Yes, so we are considering improving the Python environment and putting a C or B.
Yes, so if we have any good ideas, let me know.
Yes, so we also welcome any issues or a full request for AirCom.
So please check the repository.
That is all.
Thank you.