În timp ce eu înțeleg ce simulare și emulare înseamnă, în general, am aproape mereu confuz despre ei. Să presupunem că am crea o bucată de software care imita existente hardware/software, ce să zic? Un simulator sau un emulator?
Ar putea cineva explica diferența în termeni de programare?
Bonus: care este diferența în limba engleză între acești doi termeni? (Îmi pare rău, eu nu sunt un vorbitor nativ :))
Emularea este procesul de imitarea exterior observabile comportamentul pentru a se potrivi o țintă existent. Starea internă a emulare mecanism nu trebuie să reflecte cu acuratețe starea internă de țintă, care este emularea.
Simulare, pe de altă parte, implică modelarea de fond al sistemului de stat de la țintă. Rezultatul final al unui bun de simulare este că modelul de simulare va emula țintă care este simularea.
În mod ideal, ar trebui să fie capabil să se uite în simulare și respectați proprietăți pe care le-ar vedea, de asemenea, dacă te-ai uitat în original țintă. În practică, este posibil ca unele scurtături să simularea pentru motive de performanță-care este, unele aspecte interne de simulare poate fi de fapt o emulare.
MAME este un joc arcade emulator; Hyperterm este o (nu foarte bun) emulator de terminal. Nu's nu este nevoie pentru a modela arcade mașină sau un terminal în detaliu pentru a obține dorit imitat comportamentul.
Flight Simulator este un simulator; SPICE este un electronics simulator. Au model cât mai mult posibil în fiecare detaliu al obiectivului pentru a reprezenta ceea ce țintă are în realitate.
EDIT: Alte răspunsuri au subliniat faptul că, în scopul de a o emulare este capabil să înlocuiască obiectul este emularea. Ca's un punct important. O simulare's se concentreze mai mult pe modelarea de stat interne s-țintă-și simularea nu duce neapărat la emulare. În special, o simulare poate rula mult mai lent decât în timp real. CONDIMENT, de exemplu, nu poate substitue pentru un efectiv de electronice de circuit (chiar dacă, presupunând că acolo a fost un fel de dispozitiv magic perfect interfețe circuitelor electrice pentru o simulare SPICE.) O simulare Simulare nu conduce întotdeauna la emulare --
Dacă un flight-simulator ar putea transporta de la a la B, atunci ar fi un zbor-emulator.
Un emulator poate înlocui original pentru real utilizare. Un Virtual PC emulează un PC.
Un simulator este un model pentru studiu și analiză.
Un emulator va trebui întotdeauna să opereze aproape în timp real. Pentru un simulator, care nu este întotdeauna cazul. Un geologice de simulare ar putea face 1000 de ani/secundă sau mai mult.
Simulare = Pentru analiza și studiu
Emulare = Pentru utilizare ca un substitut
Un simulator este un mediu care modele dar un emulator este unul care reproduce utilizare ca pe original dispozitiv sau sistem.
Simulator imită activitatea de ceva care este simularea. A "pare"(o mulțime poate merge cu acest "pare", în funcție de context) să fie aceeași ca fiind simulat. De exemplu simulator de zbor "pare" pentru a fi un zbor real pentru utilizator, deși nu transporta de la un loc la altul.
Emulator, pe de altă parte, de fapt "nu" ce lucru fiind emulat face, și în acest sens se prea "pare a fi face același lucru". Un emulator pot utiliza diferite set de protocoale pentru imitarea lucru fiind emulat, dar rezultatul/rezultatul este întotdeauna același fel obiectul original. De exemplu, EMU8086 emulează 8086 microprocesorul de pe computer, care, evident, nu se execută pe 8086 (= diferite protocoale), dar de ieșire se dă ceea ce este o adevărată 8086-ar da.
L's o diferență de accent. Emulatoare1 se concentreze pe recrearea comportamentul unui sistem, fără a ține seama de modul în care funcțiile sistemului intern. Simulatoare2 accent pe modelarea componentelor unui sistem. Folosesti un emulator de când îți pasă mai mult despre ce sistem are, și un simulator de când îți pasă de modul în care o face.
Ca de semnificații în limba engleză, emulare este "strădanie de a egala sau de a excela într-un alt calități sau actiuni", în timp ce simulare este "a model, reprodus, duplicat comportamentul, aspectul sau proprietățile". Nu prea mare diferență. Emulare vine de la æmulus, "străduindu-se, rivalizând," și este legat de "imita" și "imagine" care sugerează o suprafață maneta de asemănare. "Simulare" vine de la similis "ca", la fel ca și cuvântul "similar," care, probabil, sugerează o profundă relație de congruență.
Referințe:
Eu nu't cred că emulator și simulator pot fi comparate. Ambele imita ceva, dar nu fac parte din același domeniu de aplicare a reasonning, ele nu sunt folosite în același context.
Pe scurt: un emulator este conceput pentru a copia unele caracteristici ale orginial și poate chiar să-l înlocuiască în mediul real. Un simulator nu este desgined pentru a copia caracteristicile originale, dar numai să apară similar cu originalul de ființe umane. Fără caracteristici de orginal, simulatorul nu poate înlocui în mediul real.
O emulator este un dispozitiv care imita ceva destul de aproape ca să-l poate fi înlocuit cu un lucru real. E. g doriți un circuit pentru a lucra ca un ROM (read only memory) de circuit, dar, de asemenea, vrea să se adapteze conținutul până când acesta este ceea ce vrei. Te'll utilizați un ROM emulator, o cutie neagră (probabil să fie bazate pe CPU), cu un fizic și interfețe electrice compatibil cu ROM-ul pe care doriți să imite. Emulator va fi conectat la dispozitiv în loc de real ROM. Placa de baza nu va vedea nici o diferență atunci când se lucrează, dar va fi capabil de a schimba emulat-ROM-ul de conținut cu ușurință. Altfel spus emulator va acționa exact ca un lucru real în placa de bază context (poate un pic mai lent din cauza efectivă a modelului intern), dar nu va fi funcții suplimentare (cum ar fi re-scris) vizibil doar pentru designer, de la placa de baza context. Deci emulator definiție ar fi: ceva care imita original, are toate caracteristicile sale funcționale, se poate înlocui, de fapt, la unele se extind în lumea reală, și pot avea caracteristici suplimentare care nu sunt vizibile în condiții normale context.
O simulator este utilizat într-o altă gândire context, e.g un simulator de avion, un simulator auto, etc. Simularea va avea grijă doar de un aspect al efective de lucru, de obicei, cele legate de cum o ființă umană poate percepe și de control. Simulator nu va îndeplini funcțiile de lucruri reale, și nu poate fi sustituted la ea. Simulator avion nu va zbura sau de a transporta pe cineva, l's nu scopul său, la toate. Simulator nu este destinat să lucreze, dar să apară la pilot într-un fel ca un lucru real, în alte scopuri decât cele normale, de exemplu, pentru a permite o pregătire la sol (inclusiv în situații neobișnuite ca toate-defecțiuni a motorului). Deci simulator de definiție ar fi: ceva care poate apărea la om, la unele se extind, ca originalul, dar nu poate înlocui pentru utilizarea efectivă. În plus, pilotul va ști că simulator este un simulator.
Eu nu't cred că ne-am'll vedea orice ROM simulator, pentru că ROM-ul nu interacționează cu ființele umane, și nici nu ne-am'll vedea orice avion emulator, pentru că avioanele nu poate fi un înlocuitor execută aceleași funcții în lumea reală.
Din punctul meu de vedere modelul în interiorul unui emulator sau un simulator poate fi orice, și nu trebuie să fie similar cu modelul original. Un ROM emulator model va fi probabil software-ul în loc de hardware, MS Flight Simulator nu poate fi mai mult software decât este.
Această comparație între ambii termeni va contrazic selectat răspunsul (de la Toybuilder) care pune diferența pe model intern, în timp ce sugestia mea este că diferența este dacă fals poate sau nu poate fi utilizat pentru a efectua funcția reală în lumea reală (la unele acceptat extinde, într-adevăr).
Rețineți că avionul simulator va avea, de asemenea, pentru a simula pământ, soare, vânt, etc, care nu sunt parte a avionului, deci, un simulator de avion va fi pentru a imita unele aspecte ale planului, precum și mediul de avion, pentru că nu este folosit în acest mediu, dar într-o sala de antrenament.
Aceasta este o mare diferență cu emulator care emulează doar orginal, iar scopul său este de a fi utilizate în mediul de original, fără a fi nevoie să-l imite. Înapoi la avion context... ce ar putea fi un avion emulator? Poate un tren care va conecta două aeroporturi ... de fapt două avion trepte-transportul de pasageri, cu stewardese de la bord, cu interior masina arata ca un avion de cabină, și cu căpitanul spune "doamnelor și domnilor altitudinea noastră este currenlty 10 km si temperatura la destinație este de 24°C". Avantajul este dificil de a vedea, hum...
Ca o concluzie, emulator este un lucru real destinat să lucreze, simulator este un fals menit să-i păcălească utilizatorul.
Explicație Simplă.
Dacă doriți pentru a converti PC-ul (care rulează Windows) în Mac, puteți face oricare dintre aceste:
(1) puteți instala pur și simplu un Mac tema pe Windows. Deci, PC-ul se simte mai mult ca Mac, dar poate't de fapt rula orice Mac programe.
(SIMULARE)
(sau)
(2) puteți programa CALCULATORUL dvs. pentru a rula ca Mac (am'm nu sunt sigur dacă acest lucru este posibil :P ). Acum puteți rula chiar și programele de Mac cu succes și așteptăm aceeași putere ca pe Mac.
(EMULARE)
În primul caz, puteți experimenta Mac, dar poate't aștepta la același rezultat ca pe Mac.
În al doilea caz, vă puteți aștepta la același rezultat ca pe Mac, dar încă rămâne faptul că acesta este doar un PC.
Pentru a înțelege diferența dintre un simulator si un emulator, țineți minte că un simulator încearcă să imite comportamentul unui dispozitiv real. De exemplu, în cazul iOS Simulator, se simulează comportamentul real al unui iPhone/iPad dispozitiv. Cu toate acestea, Simulator de sine utilizează diverse biblioteci instalat pe Mac (cum ar fi QuickTime) pentru a efectua sale de redare, astfel încât efectul arată la fel ca un iPhone. În plus, aplicațiile testate pe Simulator sunt compilate în cod x86, care este byte-codul de înțeles de către Simulator. Un adevărat dispozitiv iPhone, dimpotrivă, folosește un BRAȚ pe baza de cod.
În contrast, un emulator emulează lucru de un dispozitiv real. Aplicatii testate pe un emulator sunt compilate în real byte-codul folosit de dispozitiv real. Emulator execută cererea prin traducerea byte-code într-o formă care poate fi executat de către calculator gazdă care rulează emulator.
Pentru a înțelege diferența subtilă între simulare și emulare, imaginați-vă că sunteți încercarea de a convinge un copil care se joacă cu cuțite este periculos. Pentru a simula acest lucru, te prefaci că te-ai tăiat cu un cuțit și geme de durere. Să imite acest lucru, tu de fapt te taie.
Un emulator este un model al unui sistem care va accepta orice intrare valabil că acel sistem emulat ar accepta, și produce același rezultat sau rezultat. Astfel software-ul este un emulator, numai dacă se reproduce comportament de sistem emulat cu precizie.
Unele ani în urmă am venit cu un foarte scurt zicala care, cred eu, surprinde esența diferență destul de bine:
Un simulator este un emulator pe o misiune.
Prin asta vreau să spun că utilizați un emulator când poți't de a folosi un lucru real, și de a utiliza un simulator de când ai poate't folosi la ceva real și vrei să afli ceva despre ea.
Simulator: este similar cu interpret. adică, de fapt, execută codul real în linie de linie pentru a imita comportamentul
Emulator: este similar executabil. adică este nevoie de cod compilat și-l execută.
La distintion între cei doi termeni este un pic neclară. Venind dintr-o lume în cazul în care "Emulatoare" sunt piese de hardware care permite depanare sisteme embedded. Și amintiți-vă produsele pe care ți-a permis să aibă ICE (In Circuit Emulation) capabilități pentru a depana o platforma PC, am găsi utilizarea termenului "Emulare" pentru a fi oarecum de un termen impropriu pentru software care SIMULEAZĂ comportamentul de o bucată de hardware.
Mi justificare pentru utilizarea curentă a termenului este de Emulare este că se pot "spori" funcționalitate, și numai în cauză cu o "rezonabil" aproximare a comportamentului sistemului.
GHEATA: (În Circuit Emulation) O bucată de hardware-ul care este conectat într-un bord în loc de real procesor. Acesta vă permite pentru a rula sistemul de drept dacă procesorul a fost prezent. De obicei, acestea au o variantă de procesor pe ele pentru a executa de fapt software-ul cu lipici logica pentru a permite utilizatorului pentru a rupe executation și singur pas sub control hardware. Unii ar oferi, de asemenea, capacitatea de jurnalizare. Majoritatea procesoarelor moderne sisteme de dezvoltare au înlocuiți GHEAȚĂ tipul de emulare cu JTAG Emulare, unde JTAG doar discuții la procesor printr-un scop special link-ul de serie și toate executie este de a efectua de către procesorul montat pe bord.
Software EMULATOR: O 0x86 emulator este preocupat doar cu posibilitatea de a executa 0x86 limbaj de asamblare, care nu oferă exacte ciclu per ciclu behaviourial model de un ANUMIT 0x86 procesor. Bochs este un exemplu în acest sens. QEMU face acest lucru, dar, de asemenea, vă permite "de virtualizare" folosind specială module de kernel.
SIMULATOR: Texas Instruments oferă un CICLU PRECIS behaviourial model de acolo procesoare pentru dezvoltarea de software, care este destinat să fie o SIMULARE precisă SPECIFICE de nuclee de procesor comportament pentru dezvoltatori de a utiliza înainte de a avea de lucru hardware.
Software EMULATOR augmentarea funcționalitate: BLEEM nu numai că a permis să ruleze Playstation Software, dar, de asemenea, permis de afișare trebuie să fie de ieșire cu o rezoluție mai mare decât Playstation a fost în măsură să ofere, și, de asemenea, a profitat de mai multe capabilități avansate de Gpu-uri care au fost disponibile. (de exemplu, o Mai bună amestecare și de netezire de texturi.)
Ambele sunt modele de un obiect pe care il au unele mijloace de a controla intrările și observând rezultatele.
Diferența esențială este că:
Permiteți-mi să dau un exemplu-să presupunem că vrei să faci un sistem de testare pentru a vedea cum de a adăuga un nou senzor (cum ar fi un termometru) pentru un sistem ar putea afecta sistemul. Știi că termometru trimite un mesaj de 8 timp de o secundă conțin măsurarea acesteia.
Simulare-dacă nu aveți termometru încă, dar doriți pentru a testa acest mesaj rata nu va supraîncărca sistemul, puteți simula senzor prin atașarea o unitate care trimite un număr aleatoriu de 8 ori pe secundă. Puteți rula orice test care nu se bazează pe valoarea actuală senzorul trimite.
Emulare-să presupunem că aveți un foarte scumpe termometru care masoara la 0,001 C, și doriți să vedeți dacă puteți obține prin cu o mai ieftin termometru care măsoară doar la cel mai apropiat de 0.5 C. puteți emula mai ieftin termometru folosind un scump termometru și apoi rotunjirea lectură la cel mai apropiat 0,5 C și teste care se bazează pe valorile de temperatură.
Rețineți că simulările pot fi de asemenea folosite pentru prognozarea sau estimarea comportament. Analiza cu element finit simulări sunt folosite în multe aplicații, inclusiv de predicție vreme și virtual tuneluri de vânt.
Definițiile termenilor:
În informatică, atât o simulare și emulare produce aceleași ieșiri, din aceleași surse, că sistemul original nu; cu toate Acestea, o emulare utilizează, de asemenea, aceleași procese să-l atingă și este făcut din aceleași materiale. O simulare utilizează diferite procese din sistemul original. De asemenea, demn de remarcat este termenul de replicare, care este intermediar, de la două - folosind aceleași procese, dar fiind făcut dintr-un material diferit.
Deci, dacă vreau să-mi conduc vechi Super Mario Bros joc pe PC-ul meu folosesc un SNES emulator, pentru că este folosind aceleași sau similare cod de computer (procese) pentru a rula jocul, și folosește același sau din materiale similare (cip de siliciu). Cu toate acestea, dacă vreau să zbor, un Boeing 747 cu jet de pe PC-ul meu folosesc un zbor simulator deoarece utilizează procese complet diferite de cele originale (nu sunt aripi reale, lift sau aerodinamica implicat!).
Aici sunt definiții exacte luate de pe un computer science glosar:
O simulare este un model al unui sistem care surprinde legături funcționale între intrări și ieșiri din sistem, dar fără a fi neapărat bazat pe procese care sunt de același fel sau similare cu cele ale sistemului în sine.
O replicare este un model al unui sistem care surprinde legături funcționale între intrări și ieșiri din sistem și se bazează pe procese care sunt de același fel sau similare cu cele ale sistemului în sine.
O emulare este un model de un sistem care surprinde legături funcționale între intrări și ieșiri din sistem, bazat pe procese care sunt de același fel sau similare cu cele din acest sistem și care este construit din aceleași materiale ca acel sistem.
Referință: Open University, M366 Glosar 1.1, 2007
Această întrebare este, probabil, cel mai bun răspuns prin a lua o privire la practica istorică.
În trecut, am'am vazut o consola de jocuri emulatoare pe PC-ul pentru PlayStation & SEGA.
Simulatoare sunt frecvente atunci când se referă la software-ul care încearcă să imite viața reală acțiunile, cum ar fi de conducere sau de zbor. Gran Turismo și Microsoft Simulator de Zbor de primăvară în minte ca exemple clasice de simulatoare.
Cum pentru lingvistice diferență, emulare se referă de obicei la acțiunea de a copia pe cineva's (sau ceva de genul's) vrednic de laudă caracteristici sau comportamente. Emularea este distinctă de imitație, în care o persoană este copiat în scopul de bătaie de joc.
Semnificația lingvistică a verbului 'simulare' este, în esență, să te prefaci sau imita ceva sau pe cineva.
O simulare este un sistem care se comportă similar la altceva, dar este pusă în aplicare într-un mod cu totul diferit. Acesta oferă de bază comportamentul unui sistem, dar poate nu neapărat să respecte toate regulile din sistem fiind simulat. Este acolo pentru a vă oferi o idee despre cum funcționează ceva.
O emulare este un sistem care se comportă exact ca altceva, și respectă toate regulile din sistem fiind emulat. Este efectiv o reproducere completa de pe un alt sistem, dreptul de a fi binar compatibil cu sistem emulat's intrări și ieșiri, dar de operare într-un mediu diferit la mediul de original sistem emulat. Regulile sunt fixe, și nu poate fi schimbat sau sistemul eșuează.
Definițiile de cuvinte care să descrie diferența cea mai bună. O căutare pe google vă oferă următoarele definiții de a simula și de a emula:
simularea imita aspectul sau caracterul.
imite meci sau depasi (o persoană sau de realizare), de obicei prin imitație.
O simulare imită un sistem. O emulare simulează un sistem atât de bine încât ar putea înlocui sau poate chiar depasi.
În informatică, o emulare ar fi o picătură într-înlocuitor pentru sistem este emularea. De multe ori chiar va depasi sistemul este de a imita. De exemplu, consola de jocuri emulatoare face, de obicei, îmbunătățiri, cum ar fi o mai mare compatibilitate hardware, o performanță mai bună, și mai bună calitate audio/video.
Simulări, pe de altă parte, sunt limitate de ele fiind modele. Ele sunt de o mai buna incercare de a imita un sistem, dar nu piese de schimb pentru ea. Există emulatoare hardware pentru hardware-ul poate fi imitat și ar fi greu să-i spuneți diferența. Nu există nici Agricultura Emulator pentru că nu există nici o emulație care ar putea înlocui real agricultura. Putem doar simula un model de agricultură, pentru a obține o perspectivă cu privire la modul de a farma mai bine.
Emulator:
Luați în considerare o situație care te cunosc doar limba engleză și se află în China. În scopul de a interacționa cu o persoană din China ai nevoie de un translator. Acum, rolul de traducator este că se va căuta o intrare de la tine în limba engleză și de a converti la Chinezi și-și dau ca date de intrare pentru persoană din China și primește răspuns de la Chinezi persoană și de a converti la limba engleză și să dea la ieșire în engleză. Acum ca traducător și Chineză persoană este emulator. Ambele combina va oferi funcționalitate similară ca și cum ați fost de comunicarea cu persoana engleza. Deci hardware-ul poate fi diferit, dar funcționalitatea va fi același.
Simulator:
Pot't da exemplu mai bun decât SPICE sau simulator de zbor. Ambele vor înlocui componente hardware comportament cu software-ul sau modelul matematic care se va comporta similar cu hardware-ul.
În final, totul depinde de contextul în care o soluție care se potrivește mai bine nevoile proiectului.