JSLinux rewritten to be human readable, hand deobfuscated and annotated.
Go to file
Anselm Levskaya e3133b25ad cleaning dirs 2011-12-20 20:35:30 -08:00
cpux86-ta.js added readme and added the transformation scripts 2011-12-20 20:31:17 -08:00
cpux86-ta.original.js moved files 2011-12-16 21:38:46 -08:00
index.html added readme and added the transformation scripts 2011-12-20 20:31:17 -08:00
js-change-symbol.el added readme and added the transformation scripts 2011-12-20 20:31:17 -08:00
jslinux.js moved files 2011-12-16 21:38:46 -08:00
linuxstart-20110820.tar.gz more notes 2011-12-17 04:22:50 -08:00
linuxstart.bin moved files 2011-12-16 21:38:46 -08:00
readme.md readme fix 2011-12-20 20:33:08 -08:00
reify.js added readme and added the transformation scripts 2011-12-20 20:31:17 -08:00
root.bin moved files 2011-12-16 21:38:46 -08:00
term.js moved files 2011-12-16 21:38:46 -08:00
vmlinux-2.6.20.bin moved files 2011-12-16 21:38:46 -08:00

readme.md

De-obfuscated JSLinux

I wanted to understand how the amazing JsLinux worked. However, Mr Bellard seems to have applied a decidedly french proclivity towards obfuscatory algorithmic prose, replete with two-letter variable names and the like... ;)

So in order to better understand the code, I started transforming all the symbols and commenting it up, which isn't all that hard a thing to do given that it's been built to imitate a very well-specified piece of hardware.

Stats

It's still absolutely ungainly, but not nearly so ungainly as the original. About a third to a half of the variables/function names have been redescribed.

I highly recommend, by the way, the excellent JSShaper library for transforming large javascript code bases. The hacks I made from it are in this repo.

Caveat Coder

This is an artistic reinterpretation of Fabrice Bellard's original code. There's no alteration in the acutal algorithmic content. I do check that that it still runs. I can't guarantee anything else.