Rodzaje JVM

0

Cześć, Czytałem skiążke dot. javy i kilka razy pojawiła się pewnego rodzaju informacja, że "to zależy od implementacji maszyny wirtualnej javy".

Jak należt to rozumieć ?

Czy należy przez to rozumieć, że isntieją określone wymogi które musi spełniać JVM i każdy może sam takową napisać w dowolnym języku ?

Przecież jeżeli pobieram jave ze strony oracle to mam jvm od oracle. Jakie inne są jeszcze JVM ?

Proszę o wytłumaczenie, bo mam wątpliwości co do tego

0

"Wirtualna maszyna Javy nie jest nazwą konkretnego produktu. Dostępna publicznie specyfikacja pozwala różnym producentom oprogramowania na tworzenie własnych maszyn wirtualnych pracujących pod kontrolą różnych środowisk i urządzeń. Firma Oracle Corporation, twórca i właściciel znaku towarowego Java, udostępnia swoją maszynę wirtualną, ale inne firmy także mogą używać go w swoich produktach pod warunkiem, że ściśle przestrzegają oficjalnej specyfikacji i dodatkowych regulacji. Począwszy od Javy 7, wzorcową implementacją JVM jest OpenJDK będąca otwartym oprogramowaniem"

Wikipedia
http://pl.wikipedia.org/wiki/Wirtualna_maszyna_Javy

0

Poza JVMami dedykowanymi pod konkretne architektury czy wymagania sprzętowo-systemowe. Sama "maszyna wirtualna javy (SE)" jest implementowana przez kilka firm. Poza maszyną Oracle Hot Spot masz chociażby JRockit robiony przez Oracle (licencja komercyjna), OpenJVM czyli część OpenJDK wpieranego przez.... tak Oracle... Własne maszyny dostarcza też np. IBM.

Skąd to się wzięło? Ano stąd, że JVM to tan naprawdę specyfikacja, a nie sama implementacja. W dodatku jest to specyfikacja otwarta zarówno w rozumieniu źródeł (licencji) jak i implementacyjnym - wiele elementów ma określony tylko ogólny interfejs np. GC, które może zostać zaimplementowane na wiele różnych sposobów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1