JS/Linux, il kernel nel browser

JS/Linux, il kernel nel browser

Grazie a JavaScript e al lavoro di un celebre hacker francese, ora Linux è in grado di funzionare - con limitazioni significative - anche all'interno di un browser web sufficientemente moderno. E non mancano le sorprese
Grazie a JavaScript e al lavoro di un celebre hacker francese, ora Linux è in grado di funzionare - con limitazioni significative - anche all'interno di un browser web sufficientemente moderno. E non mancano le sorprese

Fabrice Bellard ha colpito ancora: il coder extraordinaire già autore dell’emulatore x86 QEMU , dopo aver realizzato il seminale LZEXE e aver fondato l’altrettanto seminale progetto FFmpeg , è tornato alla ribalta con il primo emulatore PC in grado di girare all’interno di un semplice browser web.

JS/Linux trae vantaggio dalle ultime implementazioni dello standard JavaScript, e in particolare dalla possibilità di leggere e scrivere dati in formato binario direttamente all’interno del codice JS: dal “peso” di soli 90 Kbyte, JS/Linux emula una CPU x86 a 32bit priva di unità a virgola mobile (FPU, già in passato noto come coprocessore matematico), un controller di interrupt programmabile (8259), un timer di interrupt programmabile (8254) e una porta seriale UART 16450.

Bellard ha sopperito alla mancanza di emulazione della FPU utilizzando la versione 2.6.20 del kernel Linux dotata di un simulatore software del componente. Stando così le cose, l’hacker equipara la capacità computazionale del suo web-emulatore a quella di uno storico processore Intel 80486SX : abbastanza per farci girare una vecchia release del Pinguino o (eventualmente) altrettanto decrepiti giochi per MS-DOS.

I 90 Kilobyte di JS/Linux – che tra l’altro includono anche un compilatore C e un clone Emacs – potrebbero infine servire come benchmark avanzato per gli engine JavaScript dei browser web, nel qual caso le sorprese nei risultati sono già clamorose : stando ai test di Bellard, il web-emulatore di CPU x86 risulta due volte più lento con l’engine V8 di Google Chrome rispetto all’engine Jaeger Monkey di Firefox.

Alfonso Maruccia

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il 18 mag 2011
Link copiato negli appunti