看板 Soft_Job 關於我們 聯絡資訊
※ 引述《popcorny (畢業了..@@")》之銘言: : ※ 引述《Ting1024 (無)》之銘言: : : 但看QEMU這種硬底子,好像又需要能從很繁雜的SEPC去 : : 抽絲剝繭... : 但是換個角度想.. : 我覺得台灣很多做embedded的人都可以做到的 : 其實重點不是linux.. 推論上是這樣沒錯, 可是現在的 X86 跟 processor 相關的 chip 都是 programmable 的, 但灌個 windows os, 她幫你的硬體找了 半天, 卻可能常設定不對, 所以還要個製造商的光碟來硬灌 driver. 最後某些周邊才會正常(最常見的就是 display 與 audio multimedia) QEMU 是 Emulator 但也是全軟體模擬的 Virtual Machine, 她必須對 每個硬體(含 chip set 及各種 device controller)的介面與內部 register 存放的內容與功能都能很清楚的描述, 細部動作可以不必 一一模擬, 可是整個 block 需用大動作對應出來. 單這一點言, 台 灣因為組裝硬體寫驅動程式, 似乎很有機會很清楚. 但台灣分工很細 不可能弄清楚很多介面. 個人猜測 QEMU 多數是從 linux open source driver 去推測 controller interface , 所以有些 I/O device 的 function 是不太完全正確的. 但 藉著 open source 大家一起改, 重要常用的會改正過來. : 種點是寫個x86 emulater : 雖然我本身對x86沒有特別的研究 : 不過machine code這種東西要用軟體去實作絕對比硬體來的簡單 : 以現在的CPU效能..用javascript跑簡單的bootloader應該速度上綽綽有餘 : 再來uart driver的部份寫好.. : javascript這端就針對某個記憶體位置把他印出來就好了 : 就可以做到console的效果 (I/O都可以做到) 她是 emulator 或 VM, 是不必另寫 driver software 的, 她有兩種方式: process VM 那是用 HOST OS 的 driver, 若是 System VM 她是用 guest OS 上的 driver 去推動模擬的 I/O device, 經由 QEMU 將模擬的 I/O device 轉給 host 上的 device driver 去控制 real I/O device. QEMU 跑 MS Window 用到 EGA/VGA 轉換與控制是另個日本人寫的. : 而在cross compile這個linux kernel的地方採用越簡單的指令集越好 : 以達到最高的相容度 : 然後開機的地方模擬一下x86硬體的開機流程 : 這個好像都有固定的動作 : 例如image要搬到哪個位置 然後從memory的哪裡開始跑等等 : 相信寫embedded的人對這邊不會太陌生 : 當然實作可能會有一些眉眉角角的要注意 : 但是我相信大概的方向應該是這樣 開機的 BIOS emulation 有德國人寫的 Emulater. 可拿來配合. 台灣的環境很奇特, 硬體做很多, 但對系統與架構很清楚, 對整個 system software 很熟的卻 很少. 難怪宏碁已離職的 洋CEO 感慨軟硬整合人才難 找. 大概越是眼前碰得到的, 看得到的, 越是不值錢越不以為然.
amibroker:那個洋 CEO 是管 Marketing,怎麼會管到技術這裡來... 05/19 21:44
業務在前方打戰, 戰爭失利, 當然是怪給的槍炮不靈光, 免不了要罵造槍炮的! 人家用兩個指頭劃劃, 一堆鍵盤礙事又不靈光, 怎不悶氣?
yauhh:看老師解釋這樣一番,不免想起我的OS老師,很老但也能同樣細緻 05/19 22:43
yauhh:說明作業系統的內容. 05/19 22:43
Virtual Machine 是夠老爺的(IBM360時代就有), 但很基本, 可是能推陳出新 的新觀念卻也一直隨之就存在著. VM/Emulater 似乎很難不好捉模, 但一轉念 卻又簡單 "很容易作" 出來. 現在很老的老師不多, 台灣的資訊界是喜新厭舊 的, 可是台灣卻一直就是用(software+新硬體)Emulate舊硬體, 使之相容同時 又增添新功能, 變出一個價廉物美的新硬體出來, 這種設計理念表面上可能 沒有大變革, 但IT技術一直就是這樣有形無形的應用著. 如果把硬體換成系 統, 現在這些網路概念新事物還是全都適用. 教過OS的 "老" 教師很少會把軟 體與硬體完全脫勾的. QEMU 是很懂硬體架構與功能的人才會(敢)想去實現.
askeing:pop不是在說js x86 emulator嗎?g老師怎麼講去QEMU了? 05/20 01:02
那個網頁 show 的就是 QEMU 的 javascript remote console 版阿! Q-emulator . 只是他把 80X86 降級到 8088/86 PC 了. 他用 browser 配 javascript 代替一般虛擬機提供的 VNC 連線, 相當於跑在 browser 上的 networked tty console. ※ 編輯: ggg12345 來自: 140.115.5.14 (05/20 02:00)
yauhh:像麥克魯漢說,對於新技術,人們總是透過車照後鏡看前面的路.. 05/20 07:57
askeing:soga,原來是這樣解釋,感謝解惑 ^^ 05/21 00:35