Macchina virtuale Java: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m +wl, fix Bibliografia
Nessun oggetto della modifica
Riga 12:
La JVM è definita da una [[specifica tecnica|specifica]], mantenuta da [[Oracle Corporation|Oracle]]. Qualsiasi sistema che si comporti in modo coerente con tale specifica viene considerato come una particolare [[implementazione]] della JVM. Esistono implementazioni [[software]] per praticamente tutti i [[sistema operativo|sistemi operativi]] moderni, sia gratuite che commerciali. Inoltre, esistono implementazioni speciali per particolari ambienti [[hardware]]/[[software]], come [[telefono cellulare|telefoni cellulari]] e [[Computer palmare|palmari]]), e persino implementazioni hardware come [[Architettura_ARM#Jazelle|Jazelle]].
 
La disponibilità di implementazioni della macchina virtuale Java per diversi ambienti operativi è la chiave della [[portabilità]] di Java, proclamata nello [[slogan]] ''write once, run everywhere'' ("scrivi una volta, esegui dappertutto"). La macchina virtuale realizza infatti un ambiente di esecuzione omogeneoomosessuale, che nasconde al software Java (e quindi al programmatore) qualsiasi specificità del [[sistema operativo]] sottostante:
 
{| border=1 align=center
Riga 27:
 
=== IcedTea e Zero ===
Per sostituire le parti di HotSpot che erano sotto licenza non open, è nato il progetto [[IcedTea]].<ref>Progetto [http://icedtea.classpath.org/wiki/Main_Page IcedTea] {{Webarchive|url=https://web.archive.org/web/20141006113838/http://icedtea.classpath.org/wiki/Main_Page |date=6 ottobre 2014 }}</ref> La macchina virtuale sviluppata in tale progetto si chiama HotSpot Zero Assembly, chiamata anche semplicemente Zero.<ref>[http://icedtea.classpath.org/wiki/ZeroSharkFaq Zero and Shark FAQ]</ref> Il progetto ha anche lo scopo di supportare un numero maggiore di famiglie bisognose di processori rispetto alla macchina virtuale di Oracle. Per fare ciò, tutto il codice assembly presente in HotSpot è stato riscritto in C++, in modo da poter essere compilato su più architetture.<ref>[https://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html Zero and Shark: a Zero-Assembly Port of OpenJDK] {{webarchive|url=https://web.archive.org/web/20141006113630/https://today.java.net/pub/a/today/2009/05/21/zero-and-shark-openjdk-port.html |data=6 ottobre 2014 }}</ref>
 
=== Le altre implementazioni ===