1 svar
104 visningar
Sara.s0 behöver inte mer hjälp
Sara.s0 50
Postad: 13 nov 2022 20:12

vad är virtuell maskin och byte-kod?

Vad är en virtuell maskin och vad är skillnaden mot en fysisk maskin? Vad är byte-kod och hur skiljer det sig från en exekverbar fil? 

manik 82
Postad: 13 nov 2022 22:19 Redigerad: 13 nov 2022 22:21

En fysisk maskin, eller CPU, exekverar maskinkod för just den här typen av CPU. En x86 CPU exekverar x86-maskinkod, till exempel. För att köra ett C-program på en x86 kompilerar du det till x86 maskinkod.

C --> x86 maskinkod -> x86 CPU

En virtuell maskin är ett program som exekverar byte-kod. Byte-kod är instruktioner på ungefär samma nivå som maskinkod, men som inte är knuten till en viss CPU-typ. Samma byte-kod kan alltså exekvera på olika CPU-typer. JVM (Java Virtual Machine) är ett exempel på en virtuell maskin.

Java -> Byte-kod -> JVM

Till slut måste även den virtuella maskinen exekvera på en CPU. I fallet med Java på x86 behöver du alltså en JVM som är kompilerad för x86.

Java  -> Byte-kod -> JVM för x86 -> x86 maskinkod -> x86 CPU

Svara
Close