Віртуальна машина Java (JVM)

Матеріал з Словник з інформатики
Перейти до: навігація, пошук

Віртуальна машина – це програмне забезпечення, засноване на поняттях і ідеї щодо уявного комп'ютера, який має логічний набір команд, і команд, що визначають операції цього комп'ютера. Це можна сказати, невелика операційна система. Вона формує необхідний рівень абстракції, де досягається незалежність від платформи, використовуваного обладнання.

Середовище Java складається з п'яти елементів:

■ Мова Java;

■ Визначення байт-коду;

■ Бібліотеки класу Java / Sun;

■ Віртуальна машина Java;

■ Структура файлу class.

З усіх цих п'яти елементів, елементи, які привели до успіху Java:

■ визначення байт-коду;

■ структура файлу class;

■ і Віртуальна машина Java.

Віртуальна машина Java – основний компонент Java платформи. JVM доступна для всіх основних сучасних платформ, тому про програми, що скомпільовані у Java байт-код теоретично можна сказати «Написано один раз, працює скрізь» (англ. "Write once, run anywhere").

Найпопулярніші з існуючих віртуальних машин Java:

HotSpot – основна Java-машина, яка входить в офіційні Java Runtime Environment і JDK, на даний момент розробляється Oracle;

Apache Harmony – вільна реалізація віртуальної машини Java від Apache, доступна під їх же ліцензією;

CACAO – віртуальна Java-машина, розроблена в Віденському технічному університеті;

Dalvik - реєстрова реалізація Java-машини, є основною частиною платформи Android.

JVM використовує байт-код Java, який як правило, але не завжди генерується з вихідних кодів мови програмування Java; віртуальну машину також застосовують для виконання коду, згенерованого з інших мов програмування. Наприклад, вихідний код Ada можна скомпілювати у Java байт-код.

Коли код виконується за допомогою JVM, то існує один спеціальний реєстр, який використовується як лічильник, вказуючи виконуються в даний час команди. Якщо необхідно, команди змінюють програму, змінюють потік виконання, інакше потік послідовний і переходить від однієї команди до іншої.

У 1996 р компанія Sun випустила першу версію документа «Блакитна книга JVM», в якому описана специфікація віртуальної машини Java, що є дефакто галузевим стандартом платформи Java. Завдяки цьому документу з'явилися альтернативні реалізації JVM, є «розробками з чистого аркуша» (англ. Clean room design). Як приклад можна привести Kaffe.

Починаючи з версії J2SE 5.0 зміни в специфікації JVM виробляються відповідно до формалізованими побажаннями зацікавлених сторін. Процес внесення змін до специфікації JVM називається Java Community Process.

Віртуальная Машина Java надає від платформи незалежний спосіб виконання коду, завдяки абстрагування від відмінностей в операційних системах і архітектурі ЦПУ. Середовища розробки Java доступна для безлічі різних комбінацій апаратного і програмного забезпечення. Програмісти можуть сконцентрувати свої зусилля на написанні ПО, і їм не потрібно переживати про те, як або де воно буде запущено. Ідея використання віртуальних машин не нова, але на сьогоднішній день віртуальна машина Java - сама використовувана. Завдяки JVM, мрія про створення програм за принципом «Напиши одного разу – запускай скрізь» (Write Once – Run Anywhere (WORA)) стала реальністю.