Реклама

Linux из Java без JNI: от FFM и /dev/kvm до интерактивной консоли

#Linux #Java #Обычно #Foreign #Function
Linux из Java без JNI: от FFM и /dev/kvm до интерактивной консоли

Да, направление здесь немного непривычное: обычно Java запускают в Linux, а здесь я решил попробовать запустить Linux из Java. Обычно Java и KVM находятся довольно далеко друг от друга: с одной стороны JVM и управляемая память, с другой /dev/kvm , ioctl , регистры vCPU и физическая память guest ОС. В этой статье разберём, как связать эти два мира через Foreign Function & Memory API без JNI. На примере panama-kvm пройдём путь от первого вызова KVM API до загрузки Linux, настройки памяти, обработки VM exits и интерактивной консоли внутри гостевой системы. Запустить VM из Java

Да, направление здесь немного непривычное: обычно Java запускают в Linux, а здесь я решил попробовать запустить Linux из Java.

Причём не через QEMU, не через готовую обёртку над каким‑нибудь hypervisor API и без собственной JNI‑библиотеки. Host‑приложение написано на Java 25, с Linux KVM оно общается через Foreign Function & Memory API.

И в какой‑то момент всё это действительно дошло до такого:

/ # ls