這二天跟幾個朋友聊技術,大家似乎都對 qemu 如何模擬週邊硬體都很感興趣,特別是原理的部份,雖然我只簡單帶過幾句話,不過還是簡單紀錄一下,也能跟大家分享。
關於「qemu 怎麼模擬週邊硬體」,看似神秘,不過,先三不一沒有來澄清觀念:
- 不是模擬硬體的 waveform
- 不是模擬硬體的 timing
- 不是模擬硬體的 schematics
- 沒有對硬體的行為做完整模擬
那麼,qemu system emulator 倒底模擬週邊硬體什麼東西?
- 反應 driver (如 U-Boot 或 Linux device driver) 對 I/O port 或 I/O memory 的 read/write
- 保存與更新硬體狀態,並在 driver read/write I/O port 或 I/O memory 時做回應。
以上是最基本的二個觀念,在 qemu system emulator 的架構中,是透過 I/O registration 的方式達到。稍後我會補上較為明確的說明。
來源: Jollen's Blog
Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue
您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw