2.8 & 2.9 - Virtual Machines & Java (p.76)

  • Concept Virtuele Machines:

    • Aanbieden van een interface die lijkt alsof het alleenstaande hardware is, maar eigenlijk draait op gedeelde hardware (met meerdere OS`en).
    • Elk OS denkt alsof het complete controle heeft over de eigen CPU, RAM, IO, etc.
  • Voordelen:

    • Elk OS draait onafhankelijk, dit geeft beveiligings voordelen
    • Optimaal gebruik maken van beschikbare hardware.
    • Goed voor het ontwikkelen van OSen, omdat het bestaande OSen niet aantast.
    • Goed voor het testen van software dat op verschillende OS`en moet draaien.
  • Emulator = Draaien van een OS in een specifiek ander OS. (in elkaar, niet naast elkaar zoals hierboven!)

  • Para-virtualization = Draaien van een programma in een losstaand, hetzelfde lijkend OS als die van de host.

    • Programmas moeten hiervoor worden aangepast.
  • Implementatie is lastig.

    • Het virtualisatieprogamma is een user-mode programma.
    • De verschillende kernels in de guests draaien in kernel mode.
    • De kernel mode moet dus voor ieder systeem worden gesimuleerd, en worden doorgegeven naar de echte hardware.
    • VMs zijn in het algemeen langzamer door de meerdere levels of code tussen de applicaties en de hardware.
  • Programmas die Virtuele Machines laten draaien: VMware, VirtualBox, Parallels

  • JVM (Java Virtual Machine) is geschreven voor meerdere platformen waardoor java zo platform independent is.
    • Java code --> [COMPILER] --> Java Byte Code (.class) --> [JVM] --> Uitvoeren
    • JVM implementeert geheugenbeheer en bevrijden van niet meer nodig geheugen.
    • Er zijn dedicated hardware chips om JVM te draaien.
  • .NET draait op hetzelfde concept maar dan met de CLR (Common Language Runtime) en het gebruik ven een JIT (Just In Time) compiler.

results matching ""

    No results matching ""