iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
自我挑戰組

30 天 hypervisor 入門系列 第 27

Day 27 實作缺失 bios 功能(今天都在 debug)

  • 分享至 

  • xImage
  •  

今日檢討

今天應該是沒啥新進度了。花了比較多時間在 debug。先上圖這是目前引入 GRUB 的結果。目前還有一些 INT 中斷服務程式尚未實作,導致 GRUB 開不起來。
https://ithelp.ithome.com.tw/upload/images/20251011/201788143TjIFEQTTZ.png
在之前我們實作 INT 13h 是以 AX 比對功能號,命中就 call 對應處理,但對於未實作的功能號,沒有做任何處理最後就返回了,這導致花了很多時間才發現問題。補上 I/O log 之後才看見,GRUB 調用了多個我們尚未實作的功能號(INT 13h 的),而 GRUB 則因為無法取得正確信息而導致觸發跑到 INT 06h (#UD 無效指令)。但實際上這個 INT 06h 不是因為載入的 img 出錯而是 BIOS 沒有實作造成的錯誤。
為了避免以後發生類似問題,未實作的功能號一律留下 log,避免再被吞掉導致 debug 困難,我們就跟著 log 逐步補齊必要的實作。

後記

參賽到現在也快 30 天,我高估自己的能力同時也沒分配足夠的時間在鐵人賽上。最早我打算先在 KVM 上做 Type‑2,接著嘗試抽離 KVM 開始處理 Type‑1,讓 Type‑2 跑在 Type‑1 上,不過目前得進度說明,這個規模超過了我時間與精力的上限。
第 1 天訂下的一些目標應該有不少會跳票了,目前先希望可以把 Type-2 做到一個程度。我會補齊 GRUB 實作在套個簡單開機碟,至少要能看到真正的開機流程與畫面。實作的天數應該會超出 30 天。


上一篇
Day 26 GRUB 在 Hypervisor 上啟動
系列文
30 天 hypervisor 入門27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言