Gå till innehåll
Just nu i M3-nätverket

OS X virtualiserat - i en vanlig PC


Nyhetsroboten

Rekommendera Poster

Och detta har VMware, QEMU mfl kunnat göra i flera år utan några nyhetsrubriker.

VMware stödjer det tom officiellt (dock enbart server versionen, efter som det är emot EULA att köra klient versionen i virtuell maskin; Finns dock inget som tekniskt begränsar eller hindrar dig annat än samvetet).

Länk till kommentar
Dela på andra webbplatser

Hur ligger det då till med hårdvaran? Måste man ha Mac certifierad hårdvara för att det ska funka eller kan jag ha t.ex ett 4870X2 grafikkort och AMD processor?

 

Ifall det ändå emuleras dvs...

Länk till kommentar
Dela på andra webbplatser

Hur ligger det då till med hårdvaran? Måste man ha Mac certifierad hårdvara för att det ska funka eller kan jag ha t.ex ett 4870X2 grafikkort och AMD processor?

 

Ifall det ändå emuleras dvs...

 

Virtualisering är mer eller mindre hårdvaruoberoende.

Länk till kommentar
Dela på andra webbplatser

Hur ligger det då till med hårdvaran? Måste man ha Mac certifierad hårdvara för att det ska funka eller kan jag ha t.ex ett 4870X2 grafikkort och AMD processor?

 

Ifall det ändå emuleras dvs...

 

Det emuleras inte, det virtualizeras- skillnaden är att en emulator läser in varje instruktion och bryter ner din i exakta "mikrooperationer"- en emulator är iprincip maskinvaran skriven i ett programspråk.

 

Virtualisering däremot söker snabbt igenom ursprungsprogrammet och ersätter enbart instruktioner som inte är tillåtna på aktuell permissionsnivå (dom flesta processorer har två supervisor och usermode, supervisor mode används iregel enbart till kärnan i operativsystem, supervisorn har full access till hårdvaran och kan mappa om minne- alltså placera RAM och hårdvaruenheter vart som helst i den virtuella address rymden. usermode kan enbart köra)

övriga instruktioner är alltså usermode instruktioner dessa körs sedan precis som vanligt direkt på processorn.

 

Rent tekniskt...

 

En tolkande emulator gör ca 10-15 nativa instruktioner per emulerad instruktion.

En rekompilerande (läser koden som ska emuleras som källkod- sedan bygger en nativ version som körs nativt (kan säga det är en hybrid av emulering och virtualisering på det sättet) gör 3-5 instruktioner per emulerad instruktion

En hypervisor (virtualisering) gör 1 nativ instruktion per (någon emulering sker inte alltså) usermode instruktion; för supervisor instruktioner är förhållandet i stil med det av en rekompilerande emulator.

 

---

 

Och nej, Virtualisering är den absolut högsta graden av hårdvaruberoende du kan ha, du MÅSTE ha exakt samma processor typ som ska virtualiseras. (du kan alltså inte virtualisera en PowerPC på en x86, då x86 inte kan köra nativa PowerPC instruktioner- du måste översätta dom till nativa instruktioer alltså emulera dom)

 

---

 

Kan även tillägga ett operativsystem som tex MacOS X är faktiskt virtualiserings mjukvara egentligen, på en 32 bit dator kommer varje program som körs tro att dom är ensamma (undantag system biten) om hela 32 bit addressrymden; Dom kan alltså inte se andra program som körs utan att gå via systemet.

Vad programmen anbelangar kan varje program ligga på samma address och köra- trots att i själva verket ligger dom på helt skilda addresser i det faktiska minnet- Detta hanteras av MMUn; Och det är en av dom svåraste delarna att förstå sig på i en processor.

Har du läst om kvant mekanik teorier som fler dimensions teorin så har du en liten liknelse över hur operativsystemet egentligen beter sig ur ett program perspektiv.

 

---

 

Och sist för enkelhetens skull, en liknelse med verkligheten vad det gäller emulering osv.

(Nu bortser vi från grammatik, efter som samtliga av dessa tekniker är fullgoda, faktum är att en tolkande emulator oftast gör ett exaktare jobb att härma ursprungsmiljön än övriga typer; då det ger fullkontroll över timing osv)

 

En tolkande emulator är ungefär som att du ska uttrycka dig på ett främmande språk och måste slå upp varje ord i en ordbok. Det går inte så fort.

 

En rekompilerande emulator är ungefär som att du hyrt en tolk- du måste först säga din svenska fras, sedan översätter tolken och säger den flytande.

 

Virtualisering är som att du kan tala språket flytande med undantag av vissa (ovanliga) ord som du måste slå upp.

Länk till kommentar
Dela på andra webbplatser

...

 

Tack så mycket för ett mycket utförligt svar!

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...