Lanzan un emulador de Linux en JavaScript con almacenamiento persistente

Seguro que alguno de vosotros recuerda este post que escribió mi compañero F. Manuel hablando de un emulador de Linux… pero que funcionaba en el navegador, al estar implementado en un emulador JavaScript de un procesador x86.

Pues lo que hoy os vengo a enseñar es un proyecto basado en aquel, un nuevo emulador de Linux que funciona en el navegador… pero que además soporta almacenamiento persistente. Es decir, aprovechando el LocalStorage de HTML5 permite guardar un pequeño disco donde almacenar datos que generemos mediante ese sistema operativo que funciona dentro de la ventana de nuestro explorador de Internet.

Un vistazo a…
LINUX y GNU: LINUX: QUÉ ES y CÓMO FUNCIONA

El emulador es capaz de ejecutar el kernel Linux 3.0.4 y mediante dos sencillos scripts (./init.sh y ./resume.sh) es posible inicializar por primera vez y luego cargar sin problemas el disco virtual, que quedará almacenado en nuestro navegador para poder utilizar los archivos cuando queramos.

De hecho es posible ejecutar vi y crear un pequeño fichero de texto para probar el almacenamiento. Recordad que para salir de vi guardando los cambios (siempre que lo abriéramos con algo como vi lalala.txt) es necesario utilizar el comando :wq. Me ha costado recordarlo, me malacostumbré al Ctrl+S de gEdit.

Reconozco que este tipo de proyectos tiene poco interés de cara al usuario, al menos de momento (nadie va a ponerse a utilizar Linux dentro de su navegador), pero pensad en las posibilidades: si es posible emular un procesador en uno de los modernos motores JavaScript que equipan nuestros navegadores, es posible hacer prácticamente de todo utilizando este lenguaje de programación. Y pensar que estuvo a punto de ser abandonado…

Por supuesto, el proyecto es software libre y su licencia es GPL, lo que permite consultar el código fuente, aunque sólo sea por curiosidad.

Vía | Eliax
Sitio oficial | JavaScript PC Emulator
En GenbetaDev | Introducción al almacenamiento de variables en el cliente con HTML5

Portada de Genbeta