Symulator czy emulator? Jaka jest różnica?

522

Chociaż rozumiem, co ogólnie oznaczają symulacje i emulacje, prawie zawsze się o nich mylę. Załóżmy, że tworzę oprogramowanie, które naśladuje istniejący sprzęt / oprogramowanie, jak mam to nazwać? Symulator czy emulator?

Czy ktoś mógłby wyjaśnić różnicę w zakresie programowania?

Bonus: Jaka jest różnica w języku angielskim między tymi dwoma terminami? (Przepraszam, nie jestem native speakerem :))

ARAK
źródło
3
Podczas tworzenia aplikacji mobilnych iPhone ma symulator, a Android ma emulator. Więcej tutaj - stackoverflow.com/questions/4544588/…
Vishnu Haridas
1
Znalazłem opinie Wikipedii na temat tych informacji: en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation
AmigoNico
może to również pomóc w wyjaśnieniu tego: programmers.stackexchange.com/questions/134746/…
Hakan Fıstık

Odpowiedzi:

462

Emulacja to proces naśladowania obserwowanego na zewnątrz zachowania w celu dopasowania do istniejącego celu. Wewnętrzny stan mechanizmu emulacji nie musi dokładnie odzwierciedlać wewnętrznego stanu celu, który emuluje.

Z drugiej strony symulacja polega na modelowaniu podstawowego stanu celu. Końcowym rezultatem dobrej symulacji jest to, że model symulacyjny będzie emulował cel, który symuluje.

Idealnie byłoby, gdybyś mógł zajrzeć do symulacji i obserwować właściwości, które zobaczyłbyś również, gdybyś spojrzał na oryginalny cel. W praktyce mogą istnieć pewne skróty do symulacji ze względu na wydajność - to znaczy niektóre wewnętrzne aspekty symulacji mogą być w rzeczywistości emulacją.

MAME to emulator gier zręcznościowych; Hyperterm to (niezbyt dobry) emulator terminala. Nie ma potrzeby szczegółowego modelowania automatu lub terminalu, aby uzyskać pożądane emulowane zachowanie.

Flight Simulator to symulator; SPICE to symulator elektroniczny. Modelują w jak największym stopniu każdy szczegół celu, aby pokazać, co cel robi w rzeczywistości.

EDYCJA: Inne odpowiedzi wskazują, że celem emulacji jest zastąpienie obiektu, który emuluje. To ważny punkt. Symulacja koncentruje się bardziej na modelowaniu stanu wewnętrznego celu - a symulacja niekoniecznie prowadzi do emulacji. W szczególności symulacja może przebiegać znacznie wolniej niż w czasie rzeczywistym. Na przykład SPICE nie może zastąpić rzeczywistego obwodu elektroniki (nawet przy założeniu, że istnieje jakieś magiczne urządzenie, które doskonale łączy obwody elektryczne z symulacją SPICE). Symulacja Symulacja nie zawsze prowadzi do emulacji -

Producent zabawek
źródło
33
Czy zgodnie z tą definicją nie można symulować rzeczywistego świata w oprogramowaniu? Nie sądzę, abyśmy mogli dokładnie przedstawić podstawowy stan prawdziwego świata - na razie tylko emulować obserwowalne właściwości ...
Dolph
8
Nie zgadzam się z tym „modelem [Symulacji] tak bardzo, jak to możliwe, każdym szczegółem celu, aby reprezentować to, co cel robi w rzeczywistości”. Symulacje mają model systemu docelowego z wystarczającymi szczegółami w oparciu o cel symulacji. Na przykład Flight Simulator prawdopodobnie nie modeluje ryb w morzu, ponieważ jest bezużyteczny do celów symulacji.
Hamdi
16
Dokładnie odwrotna odpowiedź tutaj: stackoverflow.com/questions/2174638/...
smwikipedia
3
Wydaje się, że większość ludzi używa tych słów w inny sposób, na przykład: symulacja zwykle odbywa się na wyższym poziomie niż emulacja (pomimo tego, że oba słowa rzadko są używane razem w danym kontekście). Zobacz na przykład emulator Androida kontra symulator Apple. Proponuję zamienić słowa w tej odpowiedzi, aby zachować zgodność z większością definicji i uniknąć zamieszania dla przyszłych użytkowników.
lotnik
1
Myślę, że ta odpowiedź zmieniła 2 warunki. Wszystkie inne źródła wyjaśniają to jako: symulacja = zduplikowane zachowanie; emulacja = zduplikowane funkcjonowanie wewnętrzne. Co prowadzi do następującego wniosku: oba są cholernie SUBIEKTYWNYMI warunkami.
metalim
350

Gdyby symulator lotu mógł przetransportować cię z A do B, byłby to emulator lotu.

Emulator może zastąpić oryginał do prawdziwego użytku.
Wirtualny komputer PC emuluje komputer.

Symulator to model do badań i analiz.

Emulator zawsze będzie musiał działać blisko czasu rzeczywistego. W przypadku symulatora nie zawsze tak jest. Symulacja geologiczna może trwać 1000 lat / sekundę lub więcej.

Henk Holterman
źródło
6
@Henk Twój przykład „kokpitu” jest fantastyczny, chociaż zrozumiałem go po przeczytaniu odpowiedzi Toybuilder. Dzięki :)
AraK
1
Wirtualny komputer nie emuluje, wirtualizuje. QEMU, z drugiej strony, nie naśladować. W obu przypadkach nazwa powinna być wskazówką.
Jörg W Mittag
24
Myślę, że można bezpiecznie powiedzieć, że Virtual PC emuluje komputer. JAK emuluje komputer poprzez wirtualizację, ale to bardziej szczegół implementacji. Można argumentować, że wirtualizacja sprzętu jest nadzbiorem emulacji, która może zapewnić przyspieszoną obsługę procesora, wyłączny dostęp do urządzeń itp.
Lee B
Zaraz, czy Virtual PC nie zapewnia repliki 1: 1 prawdziwego komputera? (Mam na myśli, że wirtualizacja systemu ogólnie powinna nie tylko symulować zachowanie zewnętrzne, ale prawie każdy zakątek systemu, w przeciwieństwie do wirtualizacji aplikacji, gdzie np. Stos sieciowy nie jest odtwarzany).
Camilo Martin,
1
Gdzie mogę znaleźć wspomniany emulator lotu?
Jerry Dodge
175

Symulacja = do analizy i badań

Emulacja = Do użytku jako zamiennik

Symulator to środowisko, które modeluje, ale emulator to taki, który replikuje użycie tak jak na oryginalnym urządzeniu lub systemie.

Symulator naśladuje działanie czegoś, co symuluje. „Pojawia się” (wiele może się z tym „pojawiać”, w zależności od kontekstu), aby być tym samym, co symulowana rzecz. Na przykład symulator lotu „wydaje się” być prawdziwym lotem dla użytkownika, chociaż nie przenosi cię z jednego miejsca do drugiego.

Z drugiej strony emulator faktycznie „ robi to, co robi emulowana rzecz, a robiąc to, „ wydaje się, że robi to samo ”. Emulator może wykorzystywać inny zestaw protokołów do naśladowania emulowanej rzeczy, ale wynik / wynik jest zawsze taki sam jak oryginalny obiekt. Na przykład EMU8086 emuluje mikroprocesor 8086 na twoim komputerze, który oczywiście nie działa na 8086 (= różne protokoły ), ale dane wyjściowe daje to, co dałby prawdziwy 8086.

Dheepak J
źródło
9
Najczystsza odpowiedź, jaką widziałem. Dla mnie można go ulepszyć jedynie przez pominięcie dodatkowego zdania lub włączenie go do doskonałych kontrastujących definicji :-D
doughgle
40

To różnica w skupieniu. Emulatory 1 koncentrują się na odtwarzaniu zachowania systemu, bez względu na to, jak system działa wewnętrznie. Symulatory 2 koncentrują się na modelowaniu komponentów systemu. Korzystasz z emulatora, gdy zależy Ci przede wszystkim na tym, co robi system, oraz z symulatora, gdy zależy Ci na tym, jak to robi.

Jeśli chodzi o ich ogólne angielskie znaczenie, emulacja to „próba wyrównywania lub wyróżniania innych pod względem jakości lub działań ”, podczas gdy symulacja polega na „ modelowaniu , replikowaniu, powielaniu zachowania, wyglądu lub właściwości”. Niewielka różnica. Emulacja pochodzi z æmulus , „dążenia, rywalizacji” i jest związana z „naśladowaniem” i „obrazem”, co sugeruje podobieństwo do dźwigni powierzchni. „Symulacja” pochodzi od similis „like”, podobnie jak słowo „podobne”, co może sugerować głębszą zgodność.

Bibliografia:

  1. Wikipedia: Emulator
  2. Wikipedia: Symulacja komputerowa
  3. Wikisłownik: emulacja
  4. Wikisłownik: symulacja
  5. Etymology Online: emulacja
  6. Etymology Online: symulacja
outis
źródło
Twoja odpowiedź różni się od innych. Czy Virtual PC to według ciebie symulator lub emulator?
Mikaël Mayer
@ MikaëlMayer: Wiele odpowiedzi jest innych niż inne, z kilkoma podobnymi. Uznałbym, że moja odpowiedź jest równoważna (pod tym względem byłoby sklasyfikowane w ten sam sposób) do Toybuilder i cdiggens oraz kompatybilna z Jörgiem. Jest to sprzeczne tylko z Pontusem i Aeolai.
poza
@ MikaëlMayer Virtual PC to emulator. Może zrobić wszystko, co potrafi prawdziwy komputer.
Użytkownik
1
@Pri Zobacz odpowiedź tego wątku dotyczącą Virtual PC. Oba są zależne od perspektywy. Na przykład nadal możesz powiedzieć, że jest to symulacja, ponieważ nie może się nagrzewać tak jak prawdziwy komputer.
Mikaël Mayer
Dziękujemy za powrót @ MikaëlMayer, ale szczerze mówiąc, czasami nie możemy właściwie odróżnić, czy system jest emulatorem czy symulatorem. Rozpoczyna się dobry zakres debaty. Mam nadzieję, że mam rację! Niewielu czerpie różnicę na podstawie użytkowania, jego angielskiego znaczenia, funkcjonalności, przystępności cenowej. Ale kiedy zastosuję wszystkie odpowiedzi w moim studium przypadku, nie jest to łatwe
użytkownik
19

Nie sądzę, że można porównać emulator i symulator. Oba naśladują coś, ale nie są częścią tego samego zakresu rozumowania, nie są używane w tym samym kontekście.

W skrócie: emulator został zaprojektowany do kopiowania niektórych funkcji oryginału, a nawet może go zastąpić w prawdziwym środowisku. Symulator nie jest przeznaczony do kopiowania cech oryginału, ale jedynie do podobnego do oryginału wyglądu dla ludzi. Bez funkcji oryginału symulator nie może go zastąpić w prawdziwym środowisku.

emulator to urządzenie, które naśladuje coś na tyle blisko, tak że może być podstawiony do prawdziwych. Np. Chcesz, aby obwód działał jak obwód ROM (pamięć tylko do odczytu), ale także chcesz dopasować zawartość, aż będzie to, co chcesz. Użyjesz emulatora ROM, czarnej skrzynki (prawdopodobnie opartej na procesorze) z fizycznymi i elektrycznymi interfejsami kompatybilnymi z ROMem, który chcesz emulować. Emulator zostanie podłączony do urządzenia zamiast prawdziwej pamięci ROM. Podczas pracy płyta główna nie zauważy żadnej różnicy, ale będziesz mógł łatwo zmieniać zawartość emulowanej pamięci ROM. W przeciwnym razie emulator będzie działał dokładnie tak, jak w rzeczywistości w kontekście płyty głównej (może nieco wolniej z powodu faktycznego modelu wewnętrznego), ale będą dodatkowe funkcje (takie jak ponowne zapisywanie) widoczne tylko dla projektanta, poza kontekstem płyty głównej . Definicja emulatora wyglądałaby następująco: coś, co naśladuje oryginał, ma wszystkie swoje funkcje,

Symulator jest używany w innym kontekście myślenia, np symulator samolotu, symulator samochodu, itp symulacja zajmie tylko jakiegoś aspektu faktycznego rzeczy, zwykle związanych z jak człowiek postrzega i kontrolować. Symulator nie będzie pełnił funkcji prawdziwych rzeczy i nie można mu na tym pozwolić. Symulator samolotu nie będzie latał ani nie nosił nikogo, to wcale nie jest jego cel. Symulator nie jest przeznaczony do działania, ale ma przypominać pilotowi rzeczywistą rzecz w celach innych niż normalne, np. W celu umożliwienia szkolenia na ziemi (w tym w nietypowych sytuacjach, takich jak awaria całego silnika). Definicja symulatora byłaby więc: czymś, co może wydawać się człowiekowi, do pewnego stopnia, jak oryginał, ale nie może go zastąpić do faktycznego wykorzystania. Ponadto pilot będzie wiedział, że symulator jest symulatorem.

Nie sądzę, abyśmy widzieli jakikolwiek symulator ROM, ponieważ ROM nie wchodzi w interakcje z ludźmi, ani nie zobaczymy żadnego emulatora samolotu, ponieważ samoloty nie mogą mieć zastępczego wykonującego te same funkcje w prawdziwym świecie.

Moim zdaniem model wewnątrz emulatora lub symulatora może być dowolny i nie musi być podobny do modelu oryginału. Model emulatora ROM prawdopodobnie będzie oprogramowaniem zamiast sprzętu, MS Flight Simulator nie może być więcej oprogramowaniem niż jest.

To porównanie obu terminów będzie sprzeczne z aktualnie wybraną odpowiedzią (z Toybuilder), która wprowadza różnicę w modelu wewnętrznym, a moja sugestia polega na tym, że różnica polega na tym, czy fałszywy może czy nie może być użyty do wykonania rzeczywistej funkcji w rzeczywistym świecie ( w pewnym stopniu zaakceptowane).

Należy pamiętać, że symulator samolotu będzie musiał również symulować ziemię, słońce, wiatr itp., Które nie są częścią samolotu, więc symulator samolotu będzie musiał naśladować niektóre aspekty samolotu, a także środowisko samolot, ponieważ nie jest używany w tym rzeczywistym środowisku, ale w sali szkoleniowej.

Jest to duża różnica w stosunku do emulatora, który emuluje tylko oryginał, a jego celem jest stosowanie go w środowisku oryginału bez potrzeby jego emulacji. Powrót do kontekstu płaszczyzny ... co może być emulatorem płaszczyzny? Może pociąg, który połączy dwa lotniska - właściwie dwa stopnie samolotu - przewożący pasażerów, ze stewardesami na pokładzie, z wnętrzem samochodu wyglądającym jak prawdziwa kabina samolotu, i z kapitanem mówiącym „panie i panowie, nasza wysokość wynosi obecnie 10 km, a temperatura w naszym miejscu docelowym jest 24 ° C ”. Jego zalety są trudne do zauważenia, nuc ...

Podsumowując, emulator jest naprawdę przeznaczony do działania, symulator jest fałszywym celem oszukania użytkownika.

min
źródło
1
Wyrażenie „emulator ROM” przypomina mi wirtualne konsole do gier wideo.
Joe Z.
11

Proste objaśnienie.

Jeśli chcesz przekonwertować komputer (z systemem Windows) na komputer Mac, możesz wykonać jedną z następujących czynności:

(1) Możesz po prostu zainstalować motyw Maca w systemie Windows. Tak więc komputer działa bardziej jak Mac, ale tak naprawdę nie można uruchomić żadnych programów Mac.(SIMULATION)

(lub)

(2) Możesz zaprogramować swój komputer, aby działał jak Mac (nie jestem pewien, czy jest to możliwe: P). Teraz możesz nawet uruchamiać programy Mac z powodzeniem i oczekiwać takich samych wyników jak na Macu.(EMULATION)

W pierwszym przypadku możesz korzystać z Maca, ale nie możesz oczekiwać takiej samej wydajności jak na Macu.
W drugim przypadku możesz spodziewać się takiej samej wydajności jak na Macu, ale nadal pozostaje faktem, że jest to tylko komputer.

Vishnu Vivek
źródło
3
Jest to zarówno proste, jak i całkowicie błędne. (2) jest bliski emulacji, ale (1) nie jest ani emulacją, ani symulacją.
Nick Bastin
10

Aby zrozumieć różnicę między symulatorem a emulatorem, należy pamiętać, że symulator próbuje naśladować zachowanie prawdziwego urządzenia. Na przykład w przypadku symulatora iOS symuluje rzeczywiste zachowanie rzeczywistego urządzenia iPhone / iPad. Jednak sam symulator korzysta z różnych bibliotek zainstalowanych na komputerze Mac (takich jak QuickTime), aby wykonać swoje renderowanie, dzięki czemu efekt wygląda tak samo jak prawdziwy iPhone. Ponadto aplikacje testowane na Symulatorze są kompilowane do kodu x86, który jest kodem bajtowym rozumianym przez Symulator. Natomiast prawdziwe urządzenie iPhone korzysta z kodu opartego na ARM.

Natomiast emulator emuluje działanie prawdziwego urządzenia. Aplikacje testowane na emulatorze są kompilowane do rzeczywistego kodu bajtowego używanego przez rzeczywiste urządzenie. Emulator wykonuje aplikację, tłumacząc kod bajtowy na formę, którą może wykonać komputer hosta z emulatorem.

Aby zrozumieć subtelną różnicę między symulacją a emulacją, wyobraź sobie, że próbujesz przekonać dziecko, że zabawa nożami jest niebezpieczna. Aby to zasymulować, udajesz, że skaleczysz się nożem i jęczysz z bólu. Aby to naśladować, faktycznie się skaleczyłeś.

पवन
źródło
7
Nie próbuj tego w domu, dzieci: D
Gearoid Murphy
9

Emulator to model systemu, który zaakceptuje wszelkie prawidłowe dane wejściowe, które zaakceptowałby emulowany system, i wygeneruje ten sam wynik lub wynik. Twoje oprogramowanie jest więc emulatorem tylko wtedy, gdy dokładnie odtwarza zachowanie emulowanego systemu.

cdiggins
źródło
Dzięki. Myślę, że jest to bardzo precyzyjna definicja emulacji. Na przykład Wine to symulator, ponieważ niekoniecznie daje dokładnie taką samą dokładną wydajność, jaką zdefiniowano w systemie Windows?
AraK
6
Zachowaj ostrożność podczas próby podbicia WINE do emulatora lub symulatora. WINE jest warstwą kompatybilności, która sprawia, że ​​pliki binarne z jednego systemu działają na binarnej warstwie API innego systemu. Możesz nazwać to adapterem. Podejrzewam, że symulator też nie jest złym sposobem na jego zrozumienie, ale nie jest tak naprawdę bliżej niż emulator.
Lee B
WINE to emulacja w tym spektrum. Wygląda na to, że łączy pliki binarne systemu Windows, ale jeśli spojrzysz na elementy wewnętrzne, nie dowiesz się niczego o systemie Windows.
Nick Bastin
9

Kilka lat temu wymyśliłem bardzo krótkie powiedzenie, które, jak sądzę, całkiem ładnie oddaje istotę różnicy:

Symulator to emulator misji.

Rozumiem przez to, że używasz emulatora, gdy nie możesz użyć prawdziwej rzeczy, i używasz symulatora, gdy nie możesz użyć prawdziwej rzeczy i chcesz dowiedzieć się czegoś na ten temat .

Jörg W Mittag
źródło
8

Mówiąc bardziej lub mniej normalnie: jeśli twoje oprogramowanie potrafi zrobić wszystko, co potrafi naśladować system, jest to emulator. Jeśli tylko przybliża wyniki systemu (IT lub inne), jest to symulator.

Pontus Gagge
źródło
5

Symulator: jest podobny do tłumacza. tzn. faktycznie wykonuje prawdziwy kod wiersz po wierszu, aby naśladować zachowanie

Emulator: jest podobny do wykonywalnego. tzn. pobiera skompilowany kod i wykonuje go.

satya
źródło
4

Emulator jest alternatywą dla prawdziwego systemu, ale symulator służy do optymalizacji, zrozumienia i oszacowania prawdziwego systemu.

Ramsharan
źródło
3

Rozróżnienie między tymi dwoma terminami jest nieco rozmyte. Pochodzące ze świata, w którym „Emulatory” to elementy sprzętowe, które umożliwiają debugowanie systemów osadzonych. I pamiętajcie o produktach, które pozwoliły wam na posiadanie możliwości ICE (In Circuit Emulation) do debugowania platformy PC, uważam, że użycie terminu „Emulacja” jest nieco mylącą nazwą dla oprogramowania symulującego zachowanie elementu sprzętowego.

Moim uzasadnieniem dla obecnego użycia tego terminu jest Emulacja, że ​​może on „rozszerzyć” funkcjonalność i dotyczy jedynie „rozsądnego” przybliżenia zachowania systemu.

ICE: (In Circuit Emulation) Element sprzętowy podłączony do płyty zamiast rzeczywistego procesora. Pozwala uruchomić system tak, jakby obecny był procesor. Zazwyczaj mają one wariant procesora, który faktycznie wykonuje oprogramowanie za pomocą logiki kleju, aby umożliwić użytkownikowi przerwanie wykonywania i jednoetapowe sterowanie sprzętem. Niektóre zapewniają również możliwość rejestrowania. Większość nowoczesnych systemów projektowania procesorów zastąpiła emulację typu ICE emulacją JTAG, gdzie JTAG po prostu komunikuje się z procesorem za pośrednictwem specjalnego łącza szeregowego, a wszystkie operacje są wykonywane przez procesor zamontowany na płycie.

EMULATOR oprogramowania: Emulator 0x86 zajmuje się jedynie zdolnością do wykonywania języka asemblera 0x86, nie zapewniając dokładnego modelu behawioralnego cyklu na cykl procesora SPECIFIC 0x86. Bochs jest tego przykładem. QEMU to robi, ale umożliwia także „wirtualizację” przy użyciu specjalnych modułów jądra.

SYMULATOR: Texas Instruments zapewnia tam CYKL DOKŁADNY model behawioralny takich procesorów do opracowywania oprogramowania, który ma być dokładną SYMULACJĄ specyficznych zachowań rdzeni procesorów, z których programiści mogą korzystać przed uruchomieniem sprzętu.

Funkcja rozszerzania EMULATORA oprogramowania: BLEEM nie tylko pozwolił na uruchomienie oprogramowania Playstation, ale także pozwolił na wyświetlanie obrazu w wyższej rozdzielczości niż była w stanie zapewnić Playstation, a także skorzystał z bardziej zaawansowanych możliwości dostępnych GPU. (tj. lepsze mieszanie i wygładzanie tekstur).

NoMoreZealots
źródło
3

Oba są modelami obiektu, za pomocą którego można kontrolować i kontrolować dane wejściowe.

Kluczowa różnica polega na tym, że:

  • Za pomocą emulatora chcesz, aby dane wyjściowe dokładnie odpowiadały temu, co wytworzyłby emulowany obiekt.
  • Za pomocą symulatora chcesz, aby niektóre właściwości danych wyjściowych były podobne do tego, co wytworzyłby obiekt.

Podam przykład - załóżmy, że chcesz przeprowadzić testy systemu, aby zobaczyć, jak dodanie nowego czujnika (np. Termometru) do systemu wpłynęłoby na system. Wiesz, że termometr wysyła komunikat 8 razy na sekundę zawierający jego pomiar.

Symulacja - jeśli nie masz jeszcze termometru, ale chcesz sprawdzić, czy ta szybkość przesyłania komunikatów nie spowoduje przeciążenia systemu, możesz zasymulować czujnik, podłączając jednostkę wysyłającą losową liczbę 8 razy na sekundę. Możesz uruchomić dowolny test, który nie zależy od rzeczywistej wartości wysyłanej przez czujnik.

Emulacja - załóżmy, że masz bardzo drogi termometr, który mierzy do 0,001 C, i chcesz sprawdzić, czy możesz sobie poradzić z tańszym termometrem, który mierzy tylko do 0,5 C. Możesz emulować tańszy termometr za pomocą drogiego termometru i następnie zaokrąglając odczyt do najbliższego 0,5 C i przeprowadzając testy, które opierają się na wartościach temperatury.

Należy pamiętać, że symulacje można również wykorzystać do prognozowania lub przewidywania zachowania. Symulacje analizy elementów skończonych są wykorzystywane w wielu aplikacjach, w tym w prognozach pogody i wirtualnych tunelach aerodynamicznych.

Definicje terminów:

  • emulacja - przewyższ lub dokładnie dopasuj
  • symulacja - naśladuj wyglądem lub charakterem
Jay Elston
źródło
Uwaga - jest to bardzo podobne do odpowiedzi na pytanie oznaczone jako duplikat tego pytania ( stackoverflow.com/questions/2174638/… ). Dodałem definicję terminów (o które pytałem w pytaniu, ale jeszcze nie odpowiedziałem), a także dodałem informacje o zastosowaniach do symulacji (analiza elementów skończonych) dla czegoś więcej niż naśladowanie urządzenia.
Jay Elston,
2

Prawdopodobnie najlepiej na to pytanie przyjrzeć się praktyce historycznej.

W przeszłości widziałem emulatory konsoli do gier na PC dla PlayStation i SEGA.

Symulatory są powszechne w odniesieniu do oprogramowania, które próbuje naśladować rzeczywiste działania, takie jak prowadzenie samochodu lub latanie. Gran Turismo i Microsoft Flight Simulator przypominają klasyczne przykłady symulatorów.

Jeśli chodzi o różnicę językową, emulacja zwykle odnosi się do kopiowania czyichś (lub czegoś) godnych pochwały cech lub zachowań. Emulacja różni się od naśladowania, w którym osoba jest kopiowana w celu kpiny.

Językowe znaczenie czasownika „symulacja” polega przede wszystkim na udawaniu lub naśladowaniu kogoś lub czegoś.

Zaid
źródło
2

W informatyce zarówno symulacja, jak i emulacja dają te same dane wyjściowe, z tych samych danych wejściowych, co w oryginalnym systemie; Jednak emulacja wykorzystuje również te same procesy, aby to osiągnąć i jest wykonana z tych samych materiałów . Symulacja wykorzystuje inne procesy niż w oryginalnym systemie. Warto również zwrócić uwagę na termin replikacja, który jest półproduktem dwóch - przy użyciu tych samych procesów, ale wykonanych z innego materiału.

Więc jeśli chcę uruchomić moją starą grę Super Mario Bros na moim komputerze, używam emulatora SNES , ponieważ używa tego samego lub podobnego kodu komputerowego (procesów) do uruchomienia gry i używa tych samych lub podobnych materiałów (chip krzemowy) . Jeśli jednak chcę latać odrzutowcem Boeinga 747 na swoim komputerze, korzystam z symulatora lotu , ponieważ wykorzystuje on zupełnie inne procesy niż oryginał (nie ma w tym przypadku rzeczywistych skrzydeł, podnoszenia ani aerodynamiki!).

Oto dokładne definicje zaczerpnięte ze słownika informatyki:

Symulacja jest modelem systemu, który przechwytuje funkcjonalne połączenia między wejściami i wyjściami systemu, ale niekoniecznie opiera się na procesach, które są takie same lub podobne do procesów samego systemu.

Replikacja to model systemu, który przechwytuje funkcjonalne połączenia między wejściami i wyjściami systemu i jest oparty na procesach, które są takie same lub podobne do procesów samego systemu.

Emulacja jest modelem pewnego systemu, który przechwytuje funkcjonalne połączenia między wejściami i wyjściami systemu, w oparciu o procesy takie same lub podobne do tych w tym systemie i zbudowane z tych samych materiałów co ten system .

Odniesienie: The Open University, M366 Glosariusz 1.1, 2007

Aeolai
źródło
2

Symulacja to system, który zachowuje się podobnie do czegoś innego, ale jest implementowany w zupełnie inny sposób. Zapewnia podstawowe zachowanie systemu, ale niekoniecznie musi być zgodne z wszystkimi regułami symulowanego systemu. Ma on dać ci wyobrażenie o tym, jak coś działa.

Emulacja to system, który zachowuje się dokładnie tak , jak coś innego i jest zgodny z wszystkimi zasadami emulowanego systemu. Jest to faktycznie pełna replikacja innego systemu, aż do binarnej zgodności z wejściami i wyjściami emulowanego systemu, ale działającym w innym środowisku niż środowisko oryginalnego emulowanego systemu. Reguły są ustalone i nie można ich zmienić, ponieważ system zawiedzie.

DIXON THANKACHAN
źródło
2

Definicje słów najlepiej opisują różnicę. Wyszukiwarka google podaje następujące definicje symulacji i emulacji:

symulować naśladować wygląd lub charakter.

naśladować dopasowanie lub przewyższać (osobę lub osiągnięcie), zwykle przez naśladownictwo.

Symulacja imituje system. Emulacja symuluje system tak dobrze, że może go zastąpić, a nawet go przewyższyć.

W obliczeniach emulacja oznaczałaby spadek w zastępstwie systemu, który emuluje. Często nawet przewyższa system, który naśladuje. Na przykład emulatory konsoli do gier zwykle wprowadzają ulepszenia, takie jak większa kompatybilność sprzętowa, lepsza wydajność i lepsza jakość audio / wideo.

Z drugiej strony symulacje są ograniczone przez to, że są modelami. Są najlepszą próbą naśladowania systemu, ale nie zastępują go. Istnieją emulatory sprzętowe, ponieważ sprzęt można naśladować i trudno byłoby odróżnić. Nie ma emulatora rolnictwa, ponieważ nie ma emulacji, która mogłaby zastąpić faktyczne rolnictwo. Możemy tylko symulować model rolnictwa, aby uzyskać wgląd w to, jak lepiej gospodarować.

Żaden
źródło
1

Wirtualny komputer PC próbuje emulować komputer z punktu widzenia programisty, ale jednocześnie symuluje komputer z punktu widzenia inżyniera elektryka .

Abhinav
źródło
0

Emulator:

Rozważ sytuację, w której znasz tylko angielski i jesteś w Chinach. Do interakcji z Chińczykiem potrzebny jest tłumacz. Rola tłumacza polega na tym, że będzie on zwracał się do ciebie po angielsku i przekonwertować go na język chiński, a następnie przekaże ten wkład osobie chińskiej i uzyska odpowiedź od osoby chińskiej i przejdzie na język angielski i przekaże ci tekst po angielsku. Teraz tym emulatorem jest tłumacz i Chińczyk. Oba kombajny zapewnią podobną funkcjonalność, jakbyś komunikował się z Anglikiem. Więc sprzęt może być inny, ale funkcjonalność będzie taka sama.

Symulator:

Nie mogę podać lepszego przykładu niż SPICE lub symulator lotu. Oba zastąpią zachowanie komponentu sprzętowego oprogramowaniem lub modelem matematycznym, który będzie zachowywał się podobnie do sprzętu.

Ostatecznie zależy to od kontekstu, które rozwiązanie lepiej odpowiada potrzebom projektu.

Vaibhav Gautam
źródło
0

Symulator jest czymś szerszym niż Emulator i wygląda na to, że dualność tych warunków jest przemyślana w powyższych postach.

Emulator

Ludzie postanowili zastosować nową emulację słów w „świecie komputerów”, kiedy zaczęli zastępować niektóre części sprzętowe istniejącego systemu w prosty sposób - imitując swoje zachowanie i polegając na naturze obliczeniowej, aby mieć pewność, że coś nie zepsują i nie pozostawią wszystkiego w stan równoważny. Więc emulowaliśmy kawałek tego! (i całość nadal działa jak poprzednio)

Emulator zwykle używany w wąskim znaczeniu w obszarze cyfrowym jako zamiennik i wirtualizacja - przedstawiająca w formie cyfrowej jako oprogramowanie - czegoś znanego i istniejącego wcześniej (wirtualne układy scalone, płytki drukowane, urządzenia elektroniczne). Kiedy więc świat stał się bardziej cyfrowy i wprowadził masowe słowo emulatora , masy dodały mu niepewności (lub dodatkowych powodów).

Symulator

Przede wszystkim widziałem wiele komentarzy na temat emulatorów, które robią lub zastępują coś rzeczywistego, ale nie symulatory.

ALE symulator lotu jest używany do prawdziwej rzeczy - szkoli pilotów, podnosi umiejętności i wiedzę, zastępuje drogie prawdziwe samoloty i oszczędza dużo pieniędzy. I nie możemy po prostu powiedzieć emulatora samolotu, ponieważ mamy wewnętrzne poczucie, że to znacznie więcej, dlatego nazywamy to symulatorem :) Symulator samolotu może zawierać emulowany radar lub transponder, co jest prawdą.

Przeciwwskazania, że ​​symulatory są używane do analiz i badań (i emulatory dla czegoś prawdziwego), ale te analizy i badania są nie mniej rzeczywiste niż emulowane tablice GSM (jeszcze bardziej w erze informacyjnej, w której żyjemy). Analiza wnosi wartość dodaną do firmy, obniża koszty lub wskazuje zyski nie mniej niż wymieniony (emulowany) sprzęt.

Symulator jest podobny do modelowania czegoś, czego z jakiegoś powodu nie możemy uzyskać (koszt, technologia, niemożność fizyczna). Zwykle jest symulowany dla czegoś nowego, niematerialnego lub złożonego lub nie znanego nam dobrze, takiego jak rynek, pogoda, spalanie, użytkownik. A więc nadchodzi lot, czarna dziura, giełda, symulacje.

Wreszcie:

  1. Symulator jest szerszy niż Emulator
  2. Symulator ma tendencję do naśladowania / modelowania bardziej globalnych procesów / rzeczy w ogólności z możliwością zawężenia imitacji (np. Symulator kondensatora z ustawieniami reprezentującymi niektóre znane modele)
  3. Emulator naśladuje niektóre urządzenia sprzętowe o określonej specyfikacji, znanych cechach i właściwościach (np. Emulator SNES, Intel 8087 lub Roland TB-303)

Jeśli chodzi o pochodzenie słów

Wszystkie pochodzą z łaciny i oznaczają:

  • naśladować jest „być równym” (wygląda na bardziej agresywnego i prostego - rywalizacja)
  • symulacja to „być podobnym” (wygląda na bardziej przebiegłego i trudnego - imitacja)
wieża
źródło