quarta-feira, 18 de maio de 2011

Uma máquina Linux no seu navegador

O JavaScript é uma linguagem de programação client-side que pode fazer muito mais do que simples animações e processar dados de servidores. O hacker francês Fabrice Bellard, que acumula no currículo projetos como o FFmpeg e o emulador/virtualizador QEMU, mostrou o potencial da linguagem de script com um simples emulador, que executa um terminal Linux na janela do navegador. O JS/Linux emula um processador compatível com x86 em 32-bits, um controlador de interrupção programável, um temporizador de interrupção programável e uma porta serial, usando pouco mais de 90KB para fazê-lo. O PC emulado não possui um co-processador matemático e comandos MMX, o que o equipara com um processador 486 sem FPU. Essa máquina virtual pode, entretanto, ser usada para executar kernels mais antigos do Linux (2.6.20), que possuem um emulador de FPU.

O emulador em JavaScript pode ser usado na maioria dos navegadores modernos, como o Firefox 4 ou o Chrome 11. Seu código faz uso extenso de typed arrays, que só estão presentes nas implementações mais modernas. Esse novo recurso permite que dados binários sejam lidos e escritos diretamente na linguagem. Além de um kernel Linux, o JS/Linux também possui um clone do Emacs e um compilador C (Tiny C Compiler), que pode ser testado com um pequeno código-fonte presente no computador emulado.

Fonte: h-online, em inglês.
Créditos: Linux Magazine

Nenhum comentário: