[爆卦]Emulate simulate 差異是什麼?優點缺點精華區懶人包

為什麼這篇Emulate simulate 差異鄉民發文收入到精華區:因為在Emulate simulate 差異這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者threesecond (0.3秒)看板Linux標題Re: [問題] 如何區別Simulato...


※ 引述《littleboypis (littleboypis)》之銘言:
: 請問一下 Simulator 和 Emulator (Simulation 和 Emulation)
: 這兩者要怎麼去區別呢

其實這兩種名詞沒有標準的解釋,(沒有 RFC 或 ISO 去定義它該怎麼解釋)

所以以下講的只是一般普遍的看法。


Emulator 通常是指模擬硬體環境,

讓上面運行的軟體不需修改即可直接運行,且不知道自己運行在假環境下,

例如 VMware 或各種 VM 都是這樣,

模擬出一個 x86 平台,讓上面的 OS(any) 不知道自己的硬體是假的,

硬碟不是實體硬碟,只是個單一檔案,介面都只是元件,只有CPU是真的。

像 VM 這種 Emulator 又稍微有點特別,

因為不管 Host 或 Guest,CPU 都是 x86,

所以一般來說不需要針對 CPU 額外改寫指令集,這方面比較單純一點。


而遊戲用的 Emulator 就比較多元化了,

像 MAME、pSX Emultor、Kawaks...... 這種 Emulator,

就要靠軟體方式去模擬各種不同 CPU 指令集,

將它轉譯成 x86 可接受的指令集,

好讓上面的軟體(ROM)不知道自己運作在假環境,而能在 x86 OS 上面運作。

這種模擬器都必須要先取得原始平台的 CPU spec 和各種硬體介面 spec,

然後設法找出所有 I/O、控制方式、指令集....balabala(組合語言技能必備)

不斷地解焊 IC、dump ROMs 測試....才能寫得出來。


至於 Simulator 就比較簡單了,不用透過上面那堆痛苦的步驟,

它做的只是「用我覺得可行的方法,做出一個看起來很像XXX的軟體」而已,

例如某個老兄很喜歡玩超級瑪利,但他沒有組合語言技能,

無法開發 Emulator,所以他自己用 C 和 GTK or GDI+,

去寫一個「看起來很像超級瑪利」的遊戲,

僅參考了超級瑪利的圖像、遊戲規則、判定方式...等資訊,

然後憑空寫出一個遊戲軟體。

(例如1998年左右,DanceDanceRevolution 剛開始流行時,

曾有人在 Windows 上做出仿 DDR 的遊戲軟體,

但跟真正的 DDR 機台完全無關,只是畫面看起來像,這就是 Simulator)

大概就是這樣。


以上資訊在巴哈姆特 Emulator 版精華區都有很詳細的資料,

本來想找些 Simulator 範例給你看,但是一些軟體都早已作古失蹤了,

所以沒辦法附上範例,你再找找看吧。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.86.171.25

你可能也想看看

搜尋相關網站