JSLinux - Emulador x86 JavaScript que permite ejecutar Linux en un navegador web


Fabrice Bellard, el creador del primer compresor de archivos ejecutables (EXE) para MSDOS, LZEXE, conversor de audio y vídeo FFMPEG, el emulador QEMU y también quien logró un record mundial para calcular por medio de una computadora 2,700 billones de dígitos del número PI en el 2009, ahora nos presenta su último proyecto que demuestra nuevamente lo talentoso que es.Linux-in-JavaScript

JSLinux - utilizando los motores de JavaScript de los navegadores web modernos, tales como Firefox 4 y Chrome 11, ha logrado crear un emulador de PC en JavaScript que se ejecuta en esos navegadores. Y como demostración puso un enlace a un emulador de Linux 2.6.20 denominado JSLinux.

 

Bellard escribió el emulador utilizando únicamente JavaScript y dice que funciona adecuadamente tanto en Firefox 4 como en Google Chrome 11. Menciona además que lo hizo como diversión, además comenta que eso le ayuda a aprender escribir código optimizado para estos motores de Javascript modernos. Al ejecutarlo en Firefox es mucho más veloz que en Chrome, todavía falta investigarse del porque.

Ahora que Google Chrome OS utiliza Linux para colocar el navegador Chrome y funcionar como un Sistema Operativo para la nube, Bellard con esto demuestra que se puede hacer lo contrario, emular una PC de arquitectura x86 en Javascript para poder ejecutar Linux dentro del navegador.

Una vez que el sistema operativo arranca, encontraremos una archivo denominado hello.c en raíz. Esta es una aplicación tradicional Hola Mundo escrito en C.

Compiling-in-Linux-Javascript

En la imagen de arriba se muestra cómo compilé ese archivo utilizando TinyCCompiler que también fue creado por Bellard.

También se puede utilizar el editor vi y esto fue lo que logré Lengua fuera:

probando-linux

Alcances

Entonces, ¿existe un uso práctico al ejecutar Linux en un navegador web?, a pesar de que Fabrice Bellard diga que lo hizo por diversión, los alcances van más lejos, aparte de utilizarlo para poder medir el rendimiento de los motores JavaScript, esto abre una nueva manera de distribuir aplicaciones ya existentes a la web, y al ser orientada a la web por naturalez, es multiplataforma.

Google ha estado trabajando en una manera de compilar y ejecutar aplicaciones C/C++ que sean multiplataforma con su proyecto denominado Native Client. Sin embargo es un proyecto que se apega mucho al Sistema Operativo ChromeOS, con el cual trata de alcanzar más público al ofrecer más aplicaciones.

Pero, las aplicaciones que ejecutamos mayormente no son orientadas a la web. Y el poder emular una 486 en JavaScript ofrece una manera de ejecutar no únicamente aplicaciones C/C++ en el navegador, sino cualquier aplicación que haya sido hecha para el x86 (siempre en cuando no requiera mucho poder de procesamiento).

Imagine el poder ejecutar una copia de FreeDOS y poder ejecutar aquellos videojuegos para PC de antaño.

Por el momento JSLinux es un hack genial que tiene un uso práctico limitado, y no nos sorprendamos cuando veamos más novedades con esta tecnología. 

Fuente: Javascript Emulator Lets Linux Run in a Browser Tab