emulator

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning
Gratis Stella Linux -emulator. Plattformsoberoende emulator för Atari 2600- konsolen
Hercules emulator. Mainframe -emulering

Inom datorteknik är en emulator (från latin aemulari , "att imitera") ett system som simulerar en annan i vissa aspekter.

Det simulerade systemet tar emot samma data , kör jämförbara program och uppnår samma resultat som möjligt med avseende på vissa frågor som systemet som ska emuleras.

Programvaruemulatorer är program som efterliknar en dator eller ett operativsystem, vilket gör det möjligt att använda eller skapa programvara för den datorn på en annan dator med en annan arkitektur. Så z. B. Spel för äldre spelkonsoler körs på en dator eller en nyare spelkonsol. När man utvecklar ett program för en enhet (t.ex. en mobiltelefon) kan en mjukvaruutvecklare också testa och korrigera detta i emulatorn utan att behöva kopiera det till enheten varje gång.

En hårdvaruemulator är en elektronisk enhet som funktionellt, elektriskt eller mekaniskt (hus och stift) kan emulera ett system som en skrivare eller en processor (CPU). Anslutningen till processormodulen upprättas med hjälp av ett uttag och en lämplig kontakt. Det är också känt som en in-circuit emulator (ICE). [1]

En terminalemulator är programvara som simulerar funktionen hos en terminal (dataingång / skärmutgång). B. kan komma åt en motsvarande applikation från en dator.

Emulatorer är bland tolkarna .

Emuleringens historia

År 1962 användes en (processor) emulator för första gången. IBM arrangerade många tester i La Grande (Frankrike) för att kontrollera om deras nya produkter är kompatibla med sina föregångare. En kombination av hårdvara och mjukvara användes för detta ändamål, som IBM -ingenjören Larry Moss kallade en "emulator". Slutligen, 1965, släpptes System / 360 -linjen officiellt. Den inkluderade också den första emulatorn - "7070 Emulator" tillåter användning av program för den äldre IBM 7070 -modellen.

1985 dök Atari ST upp med en 68000 CPU, ny för hemmamarknaden och Atari TOS -operativsystemet. Inledningsvis fanns det lite applikationsprogramvara för denna hårdvara. Övergången från 8-bitars programvara under CP / M, som var utbredd på den tiden, till den nya 16-bitars världen underlättades av Atari med den kostnadsfria CP / M-Z80- emulatorn. Denna rena mjukvaruemulator genererade en virtuell, komplett Z80 -processor på 68000 -hårdvaran samt ett operativsystem som är kompatibelt med CP / M 2.2. Detta gjorde det möjligt för både populär och befintlig programvara att fungera smidigt.

MegaDrive var den första publicerade videospelemulatorn 1994, som emulerade konsolen med samma namn . Detta stödde bara rudimentärt spelet Sonic the Hedgehog ; Utvecklingen stannade av efter att programmeraren tappade källkoden . Samma år publicerade Chris George den första men icke-funktionella versionen av "VSMC", som var den första som efterliknade Super Nintendo Entertainment System .

Skrivaremulering

De vanligaste emuleringarna i EDP idag är skrivar- eller plotteremuleringar . Nästan alla högkvalitativa laserskrivare emulerar för närvarande en Hewlett-Packard -LaserJet-skrivare ( HP PCL ), liksom rasterskrivare är emulerade. Emuleringarna Epson ESC / P , IBM -skrivare och andra är fortfarande vanliga.

Terminalemulering

En klassisk terminalemulering möjliggör interaktion med textorienterade program som körs på en fjärrdator via ett externt gränssnitt, vanligtvis en seriell linje eller en modemanslutning. Idag är dock nätverksanslutningar via TCP / IP regeln. Terminalemuleringar programmerades för att imitera beteendet hos en "dum" terminal, det vill säga en enkel datavisning och inmatningsenhet. Förutom textorienterade terminalemuleringar används idag alltmer lösningar för fjärrbehandling med ett grafiskt användargränssnitt (Citrix, MS fjärrskrivbord, X-terminal). Dessa grafiska emuleringar gör att Unix -användare till exempel kan använda program som bara är tillgängliga för Windows (och vice versa) direkt från deras arbetsstation. Administrationen blir också enklare eftersom det huvudsakliga underhålls- och installationsarbetet endast utförs på ett system, terminalservern.

Virtuell maskin

En virtuell maskin (kort: VM) kallas ofta felaktigt som en emulator. Denna speciella programvara skapar en runtime -miljö på en värddator, den faktiska virtuella maskinen, som kartlägger datorns hårdvarugränssnitt (eller en liknande dator). Ett gästoperativsystem körs - som vanligt - på värddatorns CPU, men all åtkomst till in- och utmatningshårdvaran omdirigeras till värdoperativsystemets programvarugränssnitt. Detta gör det möjligt att köra ytterligare ett i ett fönster under det befintliga operativsystemet. I professionella applikationer kör flera gästoperativsystem till och med parallellt på bara en hårdvaruenhet under en hypervisor , en speciell form av VM; Faktum är att en enda dator är uppdelad i flera.

Exempel

Kompatibilitetsskikt

Strängt taget är ”kompatibilitet lagret”, som inte försöka efterlikna ett helt system, men är begränsad till emulering av mjukvarugränssnitt måste också skiljas från emulatorn. Ett välkänt exempel är Wine , som tillhandahåller ett stort antal Windows-programgränssnitt under Unix-liknande operativsystem, så att ett antal Windows-program kan köras under det faktiskt utländska operativsystemet. Ett annat exempel är transparenta emulatorer (som inte uppfattas av användaren) integrerade i operativsystemet. Exempel på detta är FX! 32 integrerad i Alpha -arkitekturen i Windows NT 4.0 , som användes för en transparent emulering av x86 -programvara, eller klassisk Mac OS , som erbjöd en transparent emulering av m68k maskinkod, eller macOS (ursprungligen "Mac OS X "), som efter en arkitekturändring (från PowerPC till Intel-x86 2005 eller från Intel-x86 till Apple-ARM 2021) med Rosetta också har integrerat en transparent emulering som kompatibilitetslager i vissa versioner.

Se även: runtime -miljö och programmeringsgränssnitt

Användningsområden

Emulatorer används för olika ändamål:

  • Investeringsskydd: Programvara som utvecklats för äldre system kan fortsätta att köras på moderna system.
    • Exempel: En dator på vilken Windows kan installeras emuleras på en Linux / Apple / Amiga -dator med Bochs , QEMU , VMware eller Windows Virtual PC . De flesta av Windows -programvaran du har köpt hittills kan fortfarande användas.
    • Open source -projektet Wine, å andra sidan, emulerar bara gränssnittet för Windows -operativsystemet till applikationen.
    • Exempelservrar från Digital Equipment Corporation: På grund av de höga förvärvskostnaderna har PDP-11 , VAX AlphaServers från DEC, inklusive operativsystemet OpenVMS, ofta använts i över tjugo år. Med emulatorer som Charon kan operativsystemet och tillhörande applikationer hållas oförändrade, medan emulatorerna själva installeras på standardservrar.
  • Mjukvaruutveckling:
    • Det är möjligt att utveckla och testa programvara för andra system.
      • Exempel: Program som utvecklats för Palm OS på en dator kan testas med en Palm -emulator.
    • Det är möjligt att testa ett operativsystem.
      • Exempel: Emulatorn "Bochs" erbjuder en debug -gränssnitt . Detta kan användas för att testa (eller observera för undervisningsändamål) hur / om något fungerar.
    • Det är möjligt att bestämma funktionaliteten för komprimerad eller delvis krypterad programvara
      • Exempel: För att identifiera okänd eller förpackad skadlig kod kan den undersökas för funktionalitet i en testmiljö. Det kan avgöras om skadlig programvara redan är känd i krypterad eller packad form. Detta är implementerat i vissa antivirusprogram som Comodo Internet Security .
  • Utbildning: En emulator låter dig bekanta dig med system som annars skulle vara mycket dyra att skaffa.
    • Exempel: Hercules -emulatorn används för att emulera en S / 370 på en dator där en komplett MVS är installerad.
  • För långsiktig arkivering av digitala objekt är emulering ett alternativ till migration eller konvertering (se även elektronisk arkivering ).
  • Fritid / hobby: Tack vare lämpliga emulatorer som t.ex. B. MESS eller Dolphin körs under olika operativsystem på nuvarande hårdvara, inklusive gamla konsolspel från början av åttiotalet och spel för nyare konsoler. Ljudemulatorer som ASAP eller UADE tillåter också utmatning av musik från dataspel.
  • Ergonomi: Programvara som normalt bara körs på system med unergonomiska in- / utgångsenheter (LC -skärmar) kan köras på system med bekväma skärmar.
    • Exempel: Bildreproduktionen med Game Boy -emulatorer på en PC är bättre än med en riktig Game Boy.
  • MOSC-scenen använder emulatorer för att få tillgång till betal-TV- erbjudanden gratis och olagligt. Dessa gör vanligtvis en dumpning av det ursprungliga ROM- kortet för smartkortet och implementerar det i en emulator för olika system som PCMCIA PC-kort, DVB-mottagare, DVB-S-TV på datorn. Den tidigare tv-sändaren Premiere fick kämpa med emulatorer då, eftersom de fungerar precis som ett originalt abonnemangsmartkort från betal-TV-sändaren. Dessutom finns inte bara de krypterade nycklarna till SmartCard i dessa så kallade EMU: er, utan också olika krypteringsalgoritmer som t.ex. B. Betacrypt I + II, alla offshoots av Nagravision, Seca Mediaguard, Viaccess etc. system

Se även: Simulering , Bochs , DOSBox , MESS , PearPC , QEMU

Hårdvaruemulatorer

Hårdvaruemulatorer gör det möjligt att utveckla programvara på maskinnivå, eftersom ingen emuleringsprogramvara för programvaran under utveckling "förfalskar" målsystemet, utan snarare speciell hårdvara gör att programvaran vanligtvis kan köras i en "riktig" miljö. Emuleringshårdvaran erbjuder mestadels möjligheter att stoppa programvaran, ställa in villkor etc. utan att ändra programvarans körtidsbeteende. De flesta av möjligheterna erbjuds vanligtvis av en kretsemulator , där en specialutrustad mikroprocessor används i den riktiga målhårdvaran för mjukvaruutveckling.

Välkända mjukvaruemulatorer

Emulering av x86 -plattformar

Emulering av PowerPC -plattformar

Emulering av 68 000 plattformar

  • Basilisk II emulerar en Macintosh -dator med en Motorola 68000 -processor, främst för användning med äldre 68k -versioner av Mac OS och System .
  • UAE emulerar Commodore Amiga -system (Motorola 68k -processorer och anpassade chips)

Emulering av andra plattformar

Hybridsystem som emulerar och virtualiserar

VMware Server , Microsoft Virtual Server och Windows Virtual PC (versionen för Windows och OS / 2 -system) är alla blandade system där i princip bara processorn är virtualiserad. Resten av PC -plattformen, t.ex. B. nätverkskort, BIOS, etc. emuleras emellertid.

Oavsett den faktiskt installerade hårdvaran (t.ex. NE2000 ), z. B. Med VMWare -servern kan antingen ett 100BaseTX PCI -nätverkskort från AMD, alternativt ett 1000BaseTX (Gigabit) PCI -nätverkskort från Intel eller ett virtuellt kort med VMWares egna drivrutiner efterliknas. En Phoenix -variant emuleras alltid som BIOS.

LAN -kortet som emuleras av Virtual PC är alltid baserat på ett DEC / Intel 21 * 4 * (TULIP) -chip, oavsett chipset för kortet för den virtuella PC -värden. På samma sätt är ljudkortet alltid baserat på en Sound Blaster 16.

Ofta misstas för det, men inte emulatorer

Följande programvara - främst virtualiseringslösningar - misstas ofta av misstag för emuleringsprogram:

  • VMware ESX Server är inte en av emulatorerna eftersom det handlar om virtualisering, inte emulering av system och varken mjukvara eller hårdvara emuleras. Maskinvaran är snarare virtualiserad
  • Wine (W INE I s N ot to E mulator) - inte en emulator, eftersom endast API -funktioner emuleras (men koden körs direkt som sådan)
  • CrossOver - se WINE
  • Cedega - se VIN
  • LINE - som WINE, inte en emulator
  • Xen - liksom VMware ESX -servern, är en hypervisor och därmed en virtualiserare
  • I / OS
  • Mac-on-Linux virtualiserar PowerPC-versioner av klassiska Mac OS och Mac OS X på en dator med en PowerPC-processor under Linux
  • ShapeShifter virtualiserar klassiskt Mac OS upp till 8.1 på en Amiga med 68k processor (från Amiga 1200 )
  • Plex86
  • SCO UNIX - ett operativsystem
  • ScummVM - som bara är en slags tolk för olika skriptspråk som används av äventyrsspel .
  • Hyper -V - se Xen

System och fördelar med emulering

Emulatorer finns för nästan alla system. Emulatorer för hemmadatorer , till exempel VICE för Commodore 64 eller UAE för Amiga, är populära . Det finns dock också otaliga andra emulatorer för datorer, handenheter , arkadmaskiner och spelkonsoler , se även MESS

Nyligen har emulatorer också spelat en viktig roll i freeware -scenen. Game Boy Advance, till exempel tack vare dess relativt enkla programmerbarhet, erbjuder möjligheten att utveckla spel och applikationer som sedan också kan användas på en emulator.

För användaren är emulatorerna z. B. brukade köra gamla, kommersiella datorspel , är problematiskt att dessa fortfarande är skyddade av upphovsrätt även om de inte har varit tillgängliga på flera år.

Spelkonsolemulatorer har ett antal fördelar jämfört med den riktiga, ursprungliga hårdvaran. Dessa inkluderar den utmärkta bildkvaliteten, det digitalt bearbetade och därmed förlustfria inspelningsbara ljudet. Andra aspekter som förbättrar användarvänligheten i de faktiska systemen är t.ex. B. förbättra videoutgången (t.ex. suddighet och filtrering av grafik på konsoler som Super Nintendo eller PlayStation , även om dessa system aldrig stöder dessa tekniker, än mindre beräkna dem) eller användningen av savestates för att snabbt spara och ladda spiltillstånd - när som helst tid under spelets längd .

Nackdelar med mjukvaruemulering

Den största nackdelen med mjukvaruemulering är att den skapar en hög datorbelastning på det emulerande systemet. Även på moderna datorer kan gamla klassiska spel, till exempel, ibland inte fungera smidigt. Programvaruutvecklingen för sådana emuleringar är mycket komplex.

En annan nackdel är att spel utan rambegränsare kan köras för snabbt om systemets prestanda är tillräcklig för att visa spelet med betydligt fler bildrutor per sekund än ursprungligen avsett. De flesta emulatorer erbjuder dock möjligheten att begränsa den emulerade datorkraften.

programvara

ROM -skivor

Programvara för äldre datorsystem, särskilt spelkonsoler, är ofta endast tillgänglig i form av ROM -moduler. Eftersom ROM-skivor kan läsas ut relativt enkelt fungerar emulatorer vanligtvis utan problem med så kallade ROM-filer (eller ROM-bilder ), som finns i olika filformat. Ett hinder för fri exploatering och distribution är dock att ROM -innehåll (programvara, här spel) vanligtvis skyddas av upphovsrätt och en del används till och med kommersiellt. Vissa emulatorer kan också läsa komprimerade filer (t.ex. i zip -format), som kan innehålla flera filer.

Ouppackade, olika filtillägg hänvisar till vissa ROM -format, till exempel:

  • .nds - Nintendo DS
  • .nes - Nintendo Entertainment System
  • .bin - vissa ROM -komponenter (till exempel Arcade, A2600) används ibland för godtyckliga bilder.
  • .crt - C64 CaRTridge Image, ROM -innehåll i en plug .crt -modul för expansionsporten
  • .d64 - C64 .d64 (mestadels en binär bild av en diskettsida i det klassiska VC1541 -formatet)
  • .gb , .gbc , .gba - Game Boy, Game Boy Color och Game Boy Advance
  • .a26 - Atari 2600 patron
  • .smc - Super Nintendo ROM
  • .n64 , .z64 - Nintendo64 ROM (även i zip -format)
  • .smd - Sega MegaDrive ROM (härlett från Super Magic Drive)
  • .sms - Sega Master System

Bilder från media

Situationen är liknande med kopior av programvara som levererades på band eller disketter. Tejpbilder eller diskbilder för användning med en emulator är också utbredda här.

  • .adf , .adz , .dms , .dmz - Amiga Disk Files (.adf även för Acorn Disc File)
  • .d64 - C64 .d64 av en diskett 1541 - 5,25 ″ ensidig - ~ 170 kB, andra diskformat finns
  • .p00 , .s00 , .u00 , .r00 - C64 .r00 (PRG för program, SEQ för sekventiella filer, USR (användarfiler) och REL för filer med relativ (= slumpmässig) åtkomst)
  • .msa - Atari ST Disk Image
  • .sid - C64 musikstycke i SID -format
  • .t64 - C64 .t64 för en expanderbar tejpbild
  • .tap - C64 .tap originalbandfil av en datauppsättning (8-16x större än PRG)
  • .iso - CD / DVD -bild som används av olika emulatorer
  • .img , .dsk - minnesbilder .dsk olika lagringsmedier
  • .vfd - diskettbild av 3,5 ″ disketter

Vissa emulatorer (till exempel MESS) kan också läsa riktiga toner från kassetter som wav -filer.

MAME

En populär emulator MAME ( "M ultiple A rcade M achine E mulator"), tusentals välkända arkadspel som Pac-Man emulerade.

Spel -ROM -skivorna ingår dock inte i open source -emulatorn.

Se även

litteratur

  • Hansjürg Wüthrich: Emulatorer - Hur datasystem och spelkonsoler blir odödliga . Scriptorium-Verlag, 2007, ISBN 3-938199-08-3 .

webb-länkar

Wiktionary: Emulator - förklaringar av betydelser, ordets ursprung, synonymer, översättningar
Wiktionary: Emulation - förklaringar av betydelser, ordets ursprung, synonymer, översättningar
Commons : Emuleringsprogram - samling av bilder, videor och ljudfiler

Individuella bevis

  1. Olof Leps: Modellering och implementering av hybridtestmiljöer för cyberfysiska säkerhetsanalyser . I: Hybridtestmiljöer för kritisk infrastruktur . Springer Vieweg, Wiesbaden, 2018, ISBN 978-3-658-22613-8 , s.   69–119 , doi : 10.1007 / 978-3-658-22614-5_5 ( springer.com [öppnade 30 december 2018]).