パスワードを忘れた? アカウント作成
326873 story
プログラミング

QEMU 開発者、JavaScript で PC エミュレータを実装 45

ストーリー by reo
とりあえず rm -rf /* 部門より

ある Anonymous Coward 曰く、

QEMU や FFMPEG などの開発に携わった Fabrice Bellard 氏が、今度は JavaScript で PC エミュレータを実装している (本家 /. 記事) 。

これを使って Web ブラウザ上で PC エミュレータを動作させ、その上で Linux を走らせるデモ「JS/Linux」が公開されており、Firefox 4 や Google Chrome 11 での動作が確認されている。

最小限のデバイスしか持たないシステムであるが、実際にこのシステム上でプログラムをコンパイルして実行させることも可能となっている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by fs0x7f (39059) on 2011年05月19日 13時15分 (#1955050) 日記

    環境によってはChrome12だと
    > Freeing unused kernel memory: 124k freed
    まで進んで(実質)停止してしまうようです。
    参考:http://twitter.com/#!/ozero/statuses/70679781062086656

    とりあえず私の環境ではポータブル版 [portableapps.com]のChrome11で動かす事が出来たので、ロールバックやFirefox導入が面倒な人はこっちでどうぞ。

    記事の方に遊び方が余り書いてないですが、tccでCコードをコンパイルしたりroot.binを差し替えたりして遊べる [livedoor.jp]そうです。

    • by Anonymous Coward

      ちなみにこのLinuxイメージで使われているtcc [bellard.org]もBellardさんが作ったものですね。ほんとすごすぎ。

  • Hacker (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2011年05月18日 13時23分 (#1954403)

    悩むことなく本物のハッカーと呼べるのは、こういう人物ですよね。
    実に、coolだと思います。

    特に今回の件では、実用性があまりないのがいいですねぇ

    • こいつはアホだ (スコア:2, すばらしい洞察)

      by soramade (23252) on 2011年05月18日 18時17分 (#1954586)
      もちろん最大級の褒め言葉として
      親コメント
    • by Anonymous Coward
      実用性ないかなぁ。まあまあなスピードで動くし、エディタもコンパイラも使えるし、
      シェルもヒストリあるし、現状でもはじめてのLinux体験学習くらいには使えますよ。
    • たしかに標準的なLinuxで機関車は走りません。
      aptやyumで導入してやる必要があったりします。

      でも、あえてそれを実装してほしかった。
  • フェッセンデンの宇宙 (スコア:2, おもしろおかしい)

    by PEEK (27419) on 2011年05月18日 14時26分 (#1954432) 日記

    実はこの世界もJavaScript上でエミュレートされてるものなんだよ。

    --
    らじゃったのだ
    • ぬかしおる (スコア:2, すばらしい洞察)

      by Sukoya (33993) on 2011年05月18日 15時35分 (#1954456) 日記

      すべてはviから生み出されたのだ

      親コメント
      • 実は (スコア:2, 興味深い)

        by ukenerai (36532) on 2011年05月18日 23時12分 (#1954776) 日記

        emacs
        とタイプすると……

        親コメント
        • by Anonymous Coward

          KeysnailとかXkeymacsとかEmacsキーアサインでブラウザ使っている人は注意!
          C-x C-cで中のemacsじゃなくてブラウザが終了します!
          まだ見てないタブがあったのに……

      • by Anonymous Coward
        ふふふ、そのviもJavascriptで書かれているのだ(?)
        だから世界は(ry
    • by ken2 (27347) on 2011年05月18日 17時01分 (#1954512)

      初めに言葉(JavaScript)ありき。
      ってかんじですか。

      エミュレートされている側は、エミュレートしている側をどうやっても動かせないのですかね。
      この世界を記述しているJavaScriptエンジンには実はセキュリティホールがあって…。

      親コメント
      • Re:フェッセンデンの宇宙 (スコア:3, おもしろおかしい)

        by Anonymous Coward on 2011年05月18日 20時26分 (#1954661)
        この宇宙がJavaScriptみたいなパワフルでスマートな言語で書かれてるわけねー
        たぶんオブジェクト指向知らないCプログラマが書いたC++のコードがメインで、そこから何十年も前からメンテナンスしてる(またはしてない)FORTRANのライブラリ呼んでて、(実際はそんなことないのに)スピードが要求されてるとか下らない理由で一部はアセンブラで書いてあるに決まってる。しかも今メンテしてんのはたぶんCOBOL時代からコーダーやってるジジィと来たもんだ。
        親コメント
      • by ikotom (20155) on 2011年05月18日 20時08分 (#1954653)

        >この世界を記述しているJavaScriptエンジンには実はセキュリティホールがあって…
        バグじゃなくてワームホールならあるそうですよ。

        親コメント
        • ブラックホールというか特異点は一種のバッファオーバーフローですね。
          いや、ほんとにフローしちゃうのかギリギリでトラップされるのか不明といえば不明なんですが。

          親コメント
          • by Anonymous Coward
            まんまゼロ除算ですよ。よく「特異点では物理量が無限大になって物理法則が破綻する」とか表現するでしょ?
          • by Anonymous Coward
            ブラックホールは/dev/nullじゃね?
      • by Anonymous Coward
        JavaScriptが無矛盾であれば、自身の無矛盾性を証明できない。
    • by Anonymous Coward

      God(日本語版) [labaq.com]

  • http://bellard.org/jslinux/
    というサイトに行ってLinuxを使ってみたんですが
    どうやって終了すればいいのかわかりません。

    強引に落として障害が発生したりしないんでしょうか?
  • by Anonymous Coward on 2011年05月18日 13時25分 (#1954405)
    • by Anonymous Coward
      ループ世界?入れ子構造?
    • by Anonymous Coward

      どこかのSFで、そんな感じでレガシーシステムが山のように重なってシステムが構築されてるってのがありました。

      # スパコンの上でPentiumが動いてその上でZ80のエミュが動いて、そのアプリケーションの結果を…。

  • by Anonymous Coward on 2011年05月18日 12時35分 (#1954370)

    円周率計算の記録更新、使われたのはなんとデスクトップPC [srad.jp]
    別のタレコミ [srad.jp]では言及されてるんだからちゃんといつものようにマージしてよ。

    • by Anonymous Coward
      まあ、お手の物なんでしょう。

      タレコミ文のリンク先のテクニカルノートによると

      > A troubling thing is that the PC emulator is about 2 times slower using V8 than Jaeger Monkey (I used the 32 bit version for both). I have no precise explanation yet because I only looked at the Jeager Monkey code so far.

      だってさ。
      • by Anonymous Coward
        こういうのでベンチ取った方が実用的なのでは ないかと
  • by Anonymous Coward on 2011年05月18日 13時40分 (#1954410)

    こんなのもあったんであんまり驚きませんが
    ハードが進歩したので、普通に動きますね

    X68000 Emulator in Java
    http://homepage2.nifty.com/m_kamada/java/x68000/ [nifty.com]

    • by Anonymous Coward on 2011年05月18日 13時51分 (#1954413)

      それはJavaScriptじゃなくてJavaですね。当時のJavaScript処理系では遅すぎてエミュレータをまともに動かすなんてまったく不可能でした。また今回のエミュレータで使用しているTyped Array [khronos.org]が登場するまで、JavaScriptで大きなバイナリデータを扱うのはメモリ効率の点できわめて不利でした、
      ハードウェアだけではなくソフトウェアの進歩も(とくにChrome出現以降)著しいってことです。

      親コメント
      • by taka2 (14791) on 2011年05月19日 3時19分 (#1954843) ホームページ 日記

        JavaScriptによるファミコンエミュレータ [benfirshman.com]ならんてものもありますね。
        こっちはTyped Array は要らないというか、Typed Array 登場前から存在するエミュですが、元々ファミコン自体メモリが大きくないから少々効率悪くても問題ないんでしょう。

        Canvas必須、実行速度の問題からかブラウザはChrome推奨って感じですけど。

        親コメント
        • by Anonymous Coward

          > Canvas必須、実行速度の問題からかブラウザはChrome推奨って感じですけど。
          Typed Arrayがなかった時代のブラウザを想定しているならChrome一択はうなずけますし、実際Firefox 3.5では満足な速さで動かなかった記憶がありますが、同じPC上でもFirefox 4やIE9なら十分動きますね。

      • by Anonymous Coward
        自分も同意。
        Javaでエミュレータは何も驚かないけど
        JavaScriptでエミュレータは、さすがファブリーズたん、ぶっ飛びすぎです。
    • by Anonymous Coward
      これだけハードが進歩したのに、パソコンのUIがかったるい(反応が遅い)のに絶望している
      クロック2GHzのWindowsよりも昔のDOSマシンの方が軽く動いていたのに.......
      • by ninestars (5792) on 2011年05月18日 14時46分 (#1954438) 日記

        俺もおっさんだが、それは無いわ。
        DOS環境への思い出補正がかかってるだけだよ。

        親コメント
      • by Anonymous Coward

        バスは一つしかないからです。デバイスがバスを占有すると他は待ちになってしまう。
        DOSはシングルタスクでユーザが操作中のプログラムがバスも占有できたから軽く感じる。

      • by Anonymous Coward
        その昔、FDなんかでディスクを1アクセスするだけで中身が表示されるのが、良かったなあ…。
      • DOS時代のRED2やMIFES、Vzはかなり高速に起動して軽快に動いていましたが、
        現代のxyzzyやサクラエディタも同じくらい高速に起動して軽快に動きます。
        現代のMicrosoft Wordはもっさりと起動しますが、DOS時代の一太郎Ver.5は
        同等以上のもっさりさんでした。
        そしてエディタでもワープロでも言えることですが、現在のアプリケーションは
        昔のものに比べて遙かに高機能化しています。

        機能が増えて便利になるとアプリケーションは肥大化して重くなりますが、
        ハードウェアの進化がそれを相殺してくれます。ハードウェアが進化すると
        いままでパフォーマンス上の理由で実現できなかった機能が実現できるようになり、
        その結果アプリケーションは重くなります。

        結局のところ、許容可能な範囲の遅さならば高機能なほうがいい、ということで
        ある程度の遅さを保ちつつソフトウェアは高機能になっていくんでしょう。

        # にしたって最近の OS はちょっとバランスを機能側に倒しすぎてるとは思うけどね!
        • by Anonymous Coward

          ># にしたって最近の OS はちょっとバランスを機能側に倒しすぎてるとは思うけどね!

          それはユーザがコスト側に倒しているせいです。
          昔と同じだけの金額をコンピュータにかけてあげればいいのです。

          • by Anonymous Coward
            いくら金をかけても、もっさり感を取るための工数には使われないね。
            お金をかけると、その分、今のもっさり感のまま、高機能化する。
            高機能も最近の高機能化はそれなりに便利だから、個人的には許せる。

            昔の方がサクサクだったのには同意。今でもフォントとか無視して、漢字ROM
            積んで、画面キャラクタマッピングで操作できるモードがあればいいのに。
            何もかもが文字通り目にもとまらぬ速さになること請け合い。
        • by Anonymous Coward
          VZ Editorで文章書いていたころが一番軽快だったような気がするけど、思い出補正なのかなぁ?
          文書の読み込みや切り替え、スクロールが一瞬でできていた記憶があるけど。
          • by Anonymous Coward

            書きながら他の作業するのは楽じゃなかったけどね。
            子プロセス呼んですぐ終了して終わりの小物ならいざ知らず、
            対話型のソフトを複数同時に走らせて、
            相互にコピペもできるなんて、まさに「笑ってお仕事」

            • by Anonymous Coward
              色々なことが出来るようになると、色々なことを【同時に】やることを強制されるんですよね。
              その一節は一体どこから湧いてきたんだ、と。
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...