A JIT Smalltalk VM implemented in itself

Javier Burroni & Gerardo Richarte

Slides pdf OpenOffice.org


As a result of our VM security research, which we presented last year here at ESUG, we had done almost a complete implementation of a Smalltalk JIT (in Smalltalk), so we decided to move forward, freezing nativized code generated by our JIT into an executable file.

To achieve this, we had to understand the objects formats, memory spaces and semi-spaces, GC and how to interact with the OS. In the process, we kept implementing everything in Smalltalk, with the utopian goal of, some day, finishing a whole VM.

In this talk we will show you some problems we had to deal with, how far we've got and, explaining you how we are already using our code as functional parts of a preexisting Smalltalk environment, we'll try to convince you why we are not after an Utopia, and why we expect to have a JIT Smalltalk VM written and compiled with itself in the near future.

Bio for Javier Burroni

In the last 10 years Javier Burroni has worked as part of a team developing information security products, specializing in low level and cross operating system topics, as well as VM implementation and interoperability problems. He has spoken about security and networking at international conferences, and published papers on this subjects.

Through all this time he always used Smalltalk to test his ideas and implement all that crossed his mind during his studies. In this last year, he's finally had the chance to use Smalltalk professionally, and has been dedicated to understand how the different parts of JIT Smalltalk VMs works.

Bio for Gerardo Richarte

In the last 19 years Gerardo 'gera' Richarte has been dedicated to computer security. He has spoken in different conferences including BlackHat, CanSecWest and PacSec among others, and taught assembly language and exploit writing classes for private, public and military students. For the last 14 years he's been part of Core Security Technologies, where he was a Sr. Security Consulting, Sr. Security Software Engineer and Reverse-Engineer, Expert Exploit Writer, and has been working in the last years, as researcher and technical leader. During all these years he's published some papers, advisories and open source tools as a humble thank you to the community that has given so much to him.

Gerardo 'richie' Richarte started Smalltalking and Squeaking in 1998 at Leandro Caniglia's MathMorphs class, where he was one of the main creators and implementors of the MorphicWrappers, as well as some other MathMorphs components. In the early days of Squeak he was an active member of the list, where he contributed a few bits of code. Being a member of the original 2001 SqueakNOS team, he awakened the project almost 5 years latter to bring it back to its second incarnation, and get an ESUG award in 2009. Today, he's now officially Smalltalking, and spending a big portion of his time reading and writing assembly, bytecode, and other low level stuff, both inside and outside Smalltalk.