У тебя VM - нативная программа, которая в зависимости от содержания выплевываемого в неё кода, производит какие-то действия, часть из которых - системные вызовы, такие как получение памяти, файловый ввод/вывод и т.п.
Так-то сама VM - обычная нативная программа, написанная на любом ЯПе
Эта инфа - основы. Почитай немного про устройство вообще нативных программ, а потом ещё про разные реализации виртуальных машин для разных языков