作者ggg12345 (ggg)
看板Soft_Job
標題Re: [技術] JavaScript x86 Emulator
時間Thu May 19 21:18:09 2011
※ 引述《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