2011-05-17

JavascriptによるPCエミュレーター

Javascript PC Emulator
Javascript PC Emulator - Technical Notes

これは、QEMU作者による、Javascriptで書かれたPCエミュレーターである。その上で、Linuxカーネルを動かしている。どうも、Chrome 12では、バグにより動かないようだ。Firefox 4なら問題なく動く。にわかに信じがたい。

技術メモを読むとわかるが、これはかなり限定的なエミューレションである。しかし、Linuxカーネルを動かすには十分である。

エミュレートしているのは、主に以下のチップである。

  • a 32 bit x86 compatible CPU
  • a 8259 Programmble Interrupt Controller
  • a 8254 Programmble Interrupt Timer
  • a 16450 UART.

エミュレートされているx86 CPUには、FPUがない。しかし、LinuxにはFPUエミュレーションがあるので、問題ない。

もちろん、viやemacsも起動するし、TinyCがあるので、なんとC言語によるプログラミングも可能である。

まえに、Javascriptで書かれたファミコンエミュレーターをみたとき、誰かがx86エミュレーターも書くんじゃないだろうかと予想した。まさか、こんなに早く、実物を目にするとは思わなかった。

ところで、JavascriptにTyped Arrayというドラフト規格ががあることを初めて知った。これは良さそうだ。

No comments: