smali

smali

четверг, 5 сентября 2013 г.

Inside JVM. Step 2. (EN)

Decided to dig into JVM byte code again .
Took a quick look at jvm spec, javap, reJ, ClassEditor.

Next steps - to build a very simple java based jvm.
In educational purposes.
Even not a one jvm, but a series of jvm when next one is more difficult then previous one and includes presentations.

When the project will be ready - we could play with something more interesting based on it.
The main thing - the maximum simplicity and clarity.
OS - Windows.
Minimum dependencies on external libraries.

However, the main goal - to make a cool hands-on course on jvm internals.
To learn out jvm internal (at least that what I want).
Plus - to help everyone interested in the topic.

We could start with the parser of Class files.
Then make a small set of simple processing of the + stack.
Then add the object creation and the heap.
And so on.
Actually we could ctreate a high level plan before starting implementation.

And vice versa - the code and presentation will will explain one another.
And then maybe we could write a book based on the project.

Here are examples of a similar projects / articles (but not exactly what I want).

Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine

small java jvm
http://igormaznitsa.com/projects/mjvm/index.html

Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine

How to create your own virtual machine - Part 2
http://www.codeproject.com/Articles/61924/How-to-create-your-own-virtual-machine-Part-2

companion to the book Inside the Java Virtual Machine
http://web.informatik.uni-bonn.de/IV/martini/Lehre/Veranstaltungen/SS00/InformatikII/JavaSimulation/index.html

Is there a desire to give some suggestions?
Is there a desire to participate in a "project"?

[Inside JVM. Step 2.] Давайте напишем jvm.

Решил снова покопать байт код.
Пока пролистал jvm spec, javap, reJ, ClassEditor.

Дальше хочется построить простейшую jvm на java.
В учебных целях.
Вернее даже не одну jvm, а серию итераций jvm с постепенным усложнением и с поясняющими презентациями.

Когда проект будет готов - можно будет на  его основе "играться" с чем-то более интересным.
Главное - максимальная простота и наглядность.
ОС - Windows.
Минимум зависимостей от сторонних библиотек.

Однако основная цель - сделать классный практический курс по jvm internals.
Чтоб разобраться самому (по крайней мере я о себе).
Плюс - помочь всем, кого интересует тема.

Начать можно с парсера .class файлов.
Затем сделать простейшую обработку небольшого набора команд + стек.
Затем добавить создание объектов и heap.
И так далее.

И наоборот - код и работающие примерчики будут пояснять презентации )
А потом возможно можно будет написать книжку на основе проекта.

Вот примеры похожего (но всё же не совсем то).

Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine

small java jvm
http://igormaznitsa.com/projects/mjvm/index.html

Home Made Java Virtual Machine
http://www.codeproject.com/Articles/24029/Home-Made-Java-Virtual-Machine

How to create your own virtual machine -- Part 2
http://www.codeproject.com/Articles/61924/How-to-create-your-own-virtual-machine-Part-2

companion to the book Inside the Java Virtual Machine
http://web.informatik.uni-bonn.de/IV/martini/Lehre/Veranstaltungen/SS00/InformatikII/JavaSimulation/index.html

Есть желание подсказать куда лучше копать?
Есть желание поучаствовать в "проекте"?