HTML

Programozni tanulok!

Iskolai szinten közel két éve tanulok programozni, tehát még én is viszonylag kezdőnek számítok. Ennek ellenére úgy döntöttem nyitok egy blogot, ami segítség lehet azok számára, akik még kezdőbbek, mint én :)

Friss topikok

Virtuális gépek

laszloka 2012.05.07. 14:06

Na szóval. Hol is tartottam? Ja igen... Assemblerek, hordozhatóság, meg ilyesmi. A magas szintű nyelveket tárgyaltuk utoljára, és odáig jutottunk, hogy ezek a nyelvek is csak részben tudták megoldani a hordozhatóság problémáját. Ekkor pattant ki egy okos bácsinak a fejéből a virtuális gépek (VM) ötlete.

Hordozhatóság Virtuális Gépekkel


Manapság kétféle virtuális gépet ismerünk. Az ismertebb fajta az, amelyik szoftveres úton fizikailag is különbözőnek tűnő gépet generál az operációs rendszeren belül. (VirtualBox, WMWare, stb...) Ezek úgy néznek ki, hogy van egy program, amiben létrehozhatunk gépeket, megadhatjuk a szimulálni kívánt hardvereket, majd mint egy fizikailag különálló gépet, használhatjuk őket különböző célokra. Ezekre a gépekre ugyanúgy telepíteni kell operációs rendszert, de bármit is rontunk el rajtuk, ez (jó esetben) semmilyen hatással nem lesz sem a fizikai gépre, sem az azon futó operációs rendszerre.

A másik fajta virtuális gép (erről lesz szó most) tulajdonképpen egy szoftveres úton szimulált processzor. Tegyük fel, hogy elkészíted a saját programnyelvedet. Ez szép és jó, de ha nincs saját processzorod ami végrehajtja az utasításokat, akkor ez mind semmit nem ér. Tehát csinálsz hozzá egy szoftvert, ami a te virtuális géped lesz. Ez a szoftver értelmezi a saját programnyelved utasításait, és lefordítja parancsokká annak a gépnek, amin éppen fut a szoftver. Az alábbi ábra bemutatja a folyamatot.

1.1 ábra.PNG

És ennek mégis mi az értelme? Nem lenne jobb, ha a programot egyből a fizikai gép nyelvén írnánk meg? A válasz a hordozhatóságban rejlik. Képzeljük csak el, hogy mondjuk csinálunk tízféle VM-et tíz különböző platformra. Így, ha megírunk egy programot a VM nyelvén, máris le tudjuk futtatni tíz teljesen különböző gépen! Amint azt a mellékelt ábra is mutatja...

1.2 ábra.PNG

A Java Virtual Machine (JVM, A Java programozási nyelvhez fejlesztették ki) egyike a legszélesebb körben használt virtuális gépeknek. A cél egy olyan nyelv elkészítése volt, ami bárhol, bármilyen számítógépen elfut. 100 százalékos hordozhatóság. Ez lehetővé tette volna a készítőknek, hogy csináljanak egy programot, majd eladják bármilyen platformra, ami támogatja a JVM-et, a legcsekélyebb mennyiségű plusz munka és pénz befektetése nélkül. Így a készítők jóval nagyobb célközönséget érhetnek el programjaikkal. A programok nem csak Windows alatt futnának, hanem Macintosh és Linux alatt is, mindezt úgy, hogy ez a készítőknek semmibe sem kerül.

Bár ez nagyon jól hangzik, a Java mégsem hozta meg az igazi áttörést. Az első probléma természetesen a sebesség. A virtuális gépek lassítják a programok futását, mivel minden utasításnak keresztül kell mennie a virtuális gépen mielőtt a fizikai gép végrehajthatná azokat, és ez a programok futásának jelentős lassulását eredményezi. A Java sikerét a kisebb játékok, illetve web-alapú alkalmazások hozták meg, mert ezeknél nem igazán fontos a sebesség, de ha valami nagyobb volumenű dolgot akarunk írni, a Java szóba sem jöhet.

Ráadásul egy nyelv nem megoldás minden problémára. Néhány esetben a célnak tökéletesen megfelel a Java, de más esetekben sajnos nem nyújt eleget. Vannak nyelvek, amik bizonyos problémákat sokkal egyszerűbben képesek megoldani, esetleg olyan dolgok is megvalósíthatóak velük amire a Java egyáltalán nem alkalmas.

Rossz ötlet egy bizonyos nyelvhez kötni a virtuális gépet, mert ezzel rengeteg ember rá lesz kényszerítve arra, hogy olyan nyelven írjon programot, amit esetleg nem szeret.

Aztán jött a Microsoft, és tanulva a JVM hibáiból, előrukkolt a saját megoldásával...

TO BE CONTINUED...

Címkék: történet hordozhatóság VM virtuális gépek JVM

Szólj hozzá!

A bejegyzés trackback címe:

https://progmaci.blog.hu/api/trackback/id/tr164494001

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása