Emulador de PC escrito en Javascript

Selection_001.png

Hace unos meses Fabrice Bellard nos deleitó, una vez más, con un emulador de PC escrito en javascript. El emulador emulaba, valga la redundancia los siguientes componentes:

  • CPU compatible 32 bit x86
  • Controlador de interrupciones programable 8259
  • Temporizador de interrupciones programable 8254
  • 16450 UART
  • Reloj de tiempo real
Como demostración, el autor compiló un núcleo de Linux 2.6.20 y lo usó para poner en funcionamiento dicho emulador. Aquí podéis ver el emulador en acción. Impresionante como puedes ver, pero el sistema es volátil, es decir, que cuando salgas del mismo lo que hayas hecho se pierde.
Kevin van der Vlist le ha dado un vuelta de tuerca a este emulador y basándose en el mismo, ha añadido soporte de persistencia. Añadiendo al kernel un dispositivo de bloques y aprovechando la nueva API de almacenamiento local que nos ofrece HTML5, a través del emulador expone dicho dispositivo de datos al kernel de Linux emulando los mismos puertos de E/S (I/O) usados por la disquetera, es decir, lo que grabemos dentro del Linux se almacena en el almacenamiento local de nuestro navegador.

Además esta nueva versión arranca la, actualmente, última versión de Linux 3.0.4.

Desde aquí puedes ver está versión en acción. Y aquí tienes los fuentes del proyecto.

Visto en slashdot

El nombre de usuario es root, sin clave