Java-virtuaalikone

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 14.5.2021 tarkistetusta versiosta . tarkastukset vaativat 7 muokkausta .
JVM
Kehittäjä Sun Microsystems
Bittinen syvyys 32 (64 Java 9:n kanssa)
Esitetty 1994
Versiot 18.0.1.1 [1]
Tyyppi Pinoamiskone, jossa on oma muistikäyttö
Tavujärjestys suurpäämies
Rekisterit
yleinen tarkoitus Operandipino kullekin menetelmälle (enintään 65535 operandia) ja menetelmän paikalliset muuttujat (jopa 65535)

Java Virtual Machine ( lyhennetty Java VM , JVM ) - Java- virtuaalikone - Java -suoritusjärjestelmän pääosa ,ns. Java Runtime Environment ( JRE ). Java Virtual Machine suorittaa Java - tavukoodin , jonka Java- kääntäjä ( javac ) on aiemmin luonut Java-ohjelman lähdekoodista . JVM:ää voidaan käyttää myös muilla ohjelmointikielillä kirjoitettujen ohjelmien suorittamiseen . Esimerkiksi Ada - lähdekoodi voidaan kääntää Java-tavukoodiksi, jonka JVM voi sitten suorittaa.

JVM on Java-alustan avainkomponentti. Koska Java-virtuaalikoneita on saatavana monille laitteisto- ja ohjelmistoalustoille, Javaa voidaan pitää sekä väliohjelmistona että erillisenä alustana. Yhden tavukoodin käyttö useilla alustoilla mahdollistaa Java-kuvauksen "käännä kerran, suorita missä tahansa" (käännä kerran, suorita missä tahansa).

Java-virtuaalikoneet sisältävät yleensä tavukooditulkin , mutta suorituskyvyn parantamiseksi monet koneet käyttävät myös JIT -kokoelmaa usein suoritetuista tavukoodifragmenteista konekoodiksi .

JVM-spesifikaatio

Vuonna 1996 Sun julkaisi ensimmäisen version JVM Blue Book -asiakirjasta , jossa kuvattiin Java-virtuaalikoneen spesifikaatiot , josta tuli tosiasiallinen Java-alustan teollisuusstandardi . Tämän asiakirjan ansiosta JVM:lle ilmestyi vaihtoehtoisia toteutuksia, jotka ovat " kehitys tyhjästä " ( eng.  clean room design ). Esimerkki on Kaffe .

J2SE 5.0:sta alkaen muutokset JVM-spesifikaatioon generoidaan sidosryhmien muotoiltujen toiveiden mukaan. JVM-spesifikaatioiden muutosprosessia kutsutaan Java Community Process -prosessiksi .

Sunin C - lähteestä saatavilla oleva JVM on nimeltään KVM (Kilo Virtual Machine) ja se on saatavilla heidän verkkosivustollaan.

Sunin ja Microsoftin välinen kilpailu

"Java"-alustan kehittämisen alussa Java VM:stä oli kaksi kilpailevaa toteutusta:

"Microsoft Java VM" ei kuitenkaan ollut täysin yhteensopiva Sunin "JVM blue book" -kirjassa kuvaamien spesifikaatioiden kanssa, ja sillä oli merkittäviä suorituskyky- ja tietoturvaongelmia raskaassa työkuormassa (suuren määrän samanaikaisesti suoritettavia säikeitä).

Sun piti tätä tilannetta mahdottomana hyväksyä ja päätti, että Microsoft tarkoituksella häpäisi ja häpäisi Java-alustaa levittämällä Java Virtual Machine -versiota, jolla on edellä mainitut haitat. Tämän perusteella Sun haastoi toistuvasti Microsoftin oikeuteen - ja Microsoftilta evättiin seuraavat täytäntöönpanooikeudet:

  1. Kutsu sitä "Java VM" (uusi nimi on "Microsoft VM");
  2. Upota se selaimien ja käyttöjärjestelmien toimitukseen (mukaan lukien Internet Explorer ja Windows) - mutta oikeudella tarjota ladattavaksi sivustolta;
  3. Kehitä sen uusia versioita ja päivityksiä;
  4. Tarjoa se ladattavaksi sivustolta.

Jotkut tietokonearvioijat ovat ehdottaneet, että Sunin tiukka asenne Javaan on saattanut tarjota Microsoftille lisäkannustimen kehittää oma Windows-ratkaisunsa: " .NET Framework ".

Sunin ja IBM:n väliset erimielisyydet

Vuonna 2001 IBM käynnisti avoimen lähdekoodin projektin " Eclipse " tavoitteenaan kehittää standardi monikäyttöisille työpöytäsovelluksille .

"Eclipse" -kehys perustui aikaisempaan suljettuun kehitykseen: IBM:n "VisualAge" . IBM onnistui tasapainottamaan vapaan yhteisön edut ja liiketoiminnan edut (heidän etunsa) Free Software Foundationin tunnustamassa Eclipse Public License -lisenssissä .

Projekti kehittyy menestyksekkäästi, sitä käytetään teollisuudessa, se on suurelta osin eronnut IBM:stä itsenäiseksi (katso "Eclipse Foundation" ).

Sun vastustaa edelleen Eclipse Foundationia ja Microsoftia. Muodollisesti pääasiallinen kiistan syy on edelleen "Standard Widget Toolkit" (SWT) -kirjasto, joka on ristiriidassa Sunin virtuaalikoneen ja Java-sovellusten siirrettävyyden kanssa.

Kestoaika

Ohjelmat, jotka on tarkoitettu toimimaan JVM:llä, on käännettävä standardoituun kannettavaan binaarimuotoon, joka yleensä esitetään ".class"-tiedostoina. Ohjelma voi koostua useista luokista, jotka on sijoitettu eri tiedostoihin. Suurten ohjelmien isännöinnin helpottamiseksi jotkin ".class"-tiedostot voidaan pakata yhteen niin kutsuttuun ".jar"-tiedostoon (lyhenne sanoista "Java Archive").

JVM suorittaa ".class"- ja ".jar"-tiedostoja emuloimalla niissä annettuja ohjeita seuraavilla tavoilla:

Nykyään JIT-kokoelmaa käytetään useimmissa JVM-koneissa suuremman nopeuden saavuttamiseksi. On myös etukäteiskääntäjiä, joiden avulla sovelluskehittäjät voivat kääntää luokkatiedostot uudelleen alustan alkuperäiseksi koodiksi.

Kuten useimmat virtuaalikoneet, Java-virtuaalikoneella on pinosuuntautunut arkkitehtuuri, joka on yhteinen mikro -ohjaimille ja mikroprosessoreille .

JVM - JRE :n (Java Runtime Environment) esiintymä, joka tulee toimeen Java-ohjelmia suoritettaessa; Suorituksen päätyttyä jätteenkerääjä poistaa tämän ilmentymän. JIT on se osa Java-virtuaalikonetta, jota käytetään nopeuttamaan sovellusten suorittamista; JIT kääntää ne tavukoodin osat, joilla on samat toiminnot samaan aikaan, mikä lyhentää kääntämiseen kuluvaa aikaa.

Katso myös

Muistiinpanot

  1. JDK-  julkaisuversiot . Java (2. toukokuuta 2022). Haettu 24. toukokuuta 2022. Arkistoitu alkuperäisestä 4. kesäkuuta 2022.

Kirjallisuus

Linkit