LinuxDev 板


LINE

※ 引述《hpeter (hpeter)》之銘言: : 標題: [問題] Virtualbox 產生中斷給 Linux Driver : 時間: Sat Aug 9 13:33:32 2008 : : 請問一下各位先進, 小弟現在在練習 Linux Driver 基本的東西 : : 目前在練習中斷的部份,想用 Print Port 產生中斷給 driver : : 現在練習的環境是用 VirtualBox + Ubuntu 8.04 請問一下要如何 : : 產生個中斷給vm 呢?謝謝 (希望不要動硬體XD) : : -- :



※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 118.165.91.230 : 推 ggg12345:VirtualBox 能令HostOS的LPT介面為interrupt mode嗎? 08/11 00:00 : → ggg12345:理論上沒有不可以的,但 VirtualBox 有這項功能了嗎 ? 08/11 00:02 ========= 在 VM(Virtual Machine) 環境下, guest os 使用到的空間(memory and i/o space)都是虛擬的, 若涉及敏感的(sensitive)部份必須能攔截 (或者說更換)下來再做轉換對映的動作, 以避免實質共用造成的衝突問題. 中斷(interrupt)動作涉及 Disable Interrupt , 因此是個敏感的指令. External Hardware Interrupt 是由外部硬體訊號線觸發, 再由 interrupt controller 與 processor 取得與執行, 其動作相當於在指令 間插入一個 int n 的機器指令(這是 X86 為例). 而中斷處理程式(ISR) 一般都涉及I/O 指令, 必須在 kernel mode 才能有效執行. 如果 printer, printer cable 與 print interface 都是在 VM 下 虛擬的, 這個 print interface 上的 interrupt line signal 就不必經 過 real hardware , 這時候的 VM 就能用軟體在 user mode 檢測與模擬 出這個純虛擬的 interrupt 動作. 不過, 多數的 soft VM 若也需要模擬 到周邊實體裝置時, 通常都不會使用 interrupt I/O 而是使用 polling , 因為虛擬的裝置若沒有 VM Mornitor 的執行是不會產生訊號的, 而目前的 VM Monitor 並非多緒併行, 非同步的 interrupt signal 是不會發生的, 也就沒必要如此煩複的模擬. 不過, 這是觀察與試用去年的眾多 VM 軟體得 來的看法, 新版本可能會有所突破. 假如要讓某個 print port 外接到實體的裝置, 再讓此 print port 與 device 歸 VM 上的 guest os driver 來接受與管理中斷訊號與進行 I/O . 這時候的 VM 軟體就必需有使用該實體 interface port 的 kernel part 可以接收(或者攔截)與處理 real interrupt signal 的代理接管部份. 雖然中斷的發生分為同步與非同步, 也分為硬體觸發與軟體例外事件, 但中斷服務程式的跳轉點都是有限且是已知的, 因此用軟體程式替代就能有 攔截效果. 理論上是最簡易可行的, 但架構與規範卻又涉及保護與下層 Host OS 的關係(這裡指的是像 VMware 的模式), 反而因商業競爭而變得莫衷一 是. 在方法上, 中斷跳轉點的對映關係必然涉及裝置的配屬與效率處理, 可 能硬體廠商(如 intel)會有相當大的主導與干預. 目前通用的做法是設計一個 kernel mode 的 proxy server 來轉接 guest OS driver 所要控制與連通的對象, 該對象可以是虛擬的代用品, 也 可以是專門配屬的實體介面與裝置. 但實體產生的中斷請求因涉及 host os 的管轄, 還是很難定案. ====== 就學習與訓練的立場, 架在硬體之上的 Virtual Machine Mornitor 提 供 VM 可以快速發展 OS (含 driver routine) 軟體, 但這是有硬體支援下 具 full virtualization 能力的機器才可能有這樣的方便. VM 對發展 OS 的優勢就是在程式會出錯的狀況下可以被監測與斷點側錄(snapshot)與接續, 可對故障處快速反覆偵錯, 又因空間的完全隔離, 就因之可藉助已有的 OS 提供各種現有軟體的支援與測試, 是發展與訓練的好工具. 早期的 VM Mornitor 是做在可微程式(microprogrammable)的處理機內 部, 屬於可更動式的微碼, 這是通稱的 vm hardware support , 其功能就攔 截言非常強大. 但現在通行的 VM 則是以事先更動的方式進行敏感指令(並非 出錯的程式碼, 而是有共用硬體衝突顧慮的正確程式碼)的攔截, 因此對出錯 除錯的支援較弱, 甚至是不支援. VirtualBox 是接續 QEMU 的部份技術, 而 QEMU 是將所有指令全攔截 並進行解譯, 採 block translation 技術進行轉換, 可避免重覆解譯, 效 率上比傳統解譯器法高, 同時也可以模擬不同 processor 的指令, 可以跨 不同的 processor 執行, 但效率不能跟硬體支援的 VT 相比. QEMU 理論上 是相當於 microprogramming emulation 的功能, 但實務上得模擬到每個實 體的介面控制器, 因此比只做指令模擬的微碼 VMM 來得複雜, 很多都是將 功能簡化. 中斷動作 多數只有部份裝置被模擬, 而且是將整個 driver routine 替換掉. display , keyborad 與 mouse , 網路卡 就是典型的例 子. 硬體控制與中斷動作若要被完全模擬並且也能讓 guest os 也能在 user space 下與指定的硬體來往, Soft VMM 就必須有下列支援性動作. 1. 有程式指令可對特定硬體裝置與介面進行驅動程式卸載, 將硬體資源管轄 權轉移給VM , 登載註冊是需要的. 2. Soft VM 有核心功能模組可以設定與 host os 共同管理的裝置(如 DMA 與 interrupt controller). 3. Soft VM 透過 in/out port 程式與 callback function point 傳送, 讓 guest os 的 driver 可以在 user space 透過 VM 的 kernel function 使用到硬體, 並且將 interrupt signal 經 vm 通知並進行緊急對應處理. 4. Soft VM 可以重新設定(如 reset)特定的硬體裝置與介面, 可配屬與解除 guest os 使用對映的實體裝置與介面. 5. Soft VM 可隨通知的 signal state 緊急設定, 改變優先執行的模擬次序. ====== Soft VM 提供給 guest OS 的 Machine Environment 跟 敏感指令部位的 入口攔截點是密切相關的, 這是模擬難易度與效率的考量. 所以有可能在 guest os 是 制式 linux 時, 連接實體 printer 是會 work 的, 但若是自 己另外寫的 printer I/O driver 可能就不會 work . 去年的 VirtualBox print port 部份幾乎對real print port 的 polling mode 都不能正常運作, 至於最新版就不知道了, 或許已有改進吧 ! --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.4.12
1F:推 hpeter:謝謝您 原來有這麼大的學問 看來我還是先找找硬體的東西 08/12 22:35
2F:→ ggg12345:可試試COM1 port 的interrupt 其源頭程式一直就很完整. 08/14 14:57







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP