Re: [問題] 如何區別Simulator和Emulator

看板Linux作者 (0.3秒)時間16年前 (2009/09/27 09:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1AliCUFe (Linux)
文章代碼(AID): #1AliCUFe (Linux)