タグ

ブックマーク / syuu1228.hatenablog.com (5)

  • mrubyでブートローダを書けるようにしました - syuu1228's blog

    カーネル/VM@関西7回目でお話したネタです。スライドはこちら: UEFI時代のブートローダ from Takuya Asada 既にmrubyはUEFIへ移植されています(覚え書き: mruby on EFI Shell)。 また、EFI StubカーネルをUEFIアプリから実行するのは非常に簡単であることが分かっています(実際にソースコードを書いて実験しました)。 以上のことから、「mrubyにEFI Stubカーネルのファイル名を指定したら実行するAPIを足せば、mrubyでブートローダが実装可能になるに違いない」と考えました。 ただ面白いというだけでなく、mruby-socket・mruby-simplehttp-socketなどのmrbgemsを移植していけばブート処理を記述したmrubyスクリプトやカーネルそのものをHTTPから取得することが出来るようになり、簡単なスクリプトで

    mrubyでブートローダを書けるようにしました - syuu1228's blog
    Watson
    Watson 2014/12/13
  • 任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog

    このブログエントリはカーネル/VM Advent Calendar 2013 25日目の記事です。 前回、カーネル/VM探検隊で「バインディングさえあればスクリプト言語でもゲストOSローダを実装出来る」という話をちらっとしました(資料)。 今回の記事では、ゲストOSローダではなくてもっと実験的な、簡単なアセンブリコードをRubyスクリプトからハイパーバイザへ投入する仕組みを実装したのでこれを紹介します。 ruby-virtualmachine ruby-virtualmachineというgemを作成しました。 これを用いて、任意のアセンブリコードをアセンブル・ロード・VM上で実行、までの一連の処理をわずかな行数のRubyスクリプトで行えます。 インストール BHyVeが正常動作するFreeBSD 10.0以降の環境が必要です。 インストールコマンドは以下の通りになります。 $ gem in

    任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog
    Watson
    Watson 2013/12/26
  • mruby専用クラウドOS「μOSv」を作りました - syuu1228's blog

    追記:μOSvはOSv家にマージされました。 こちらのWikiの「OSvをビルドしてより多くのアプリを試す」以下を参照して下さい。 μOSvというものをgithubで公開したので、ここに簡単な説明を書いておきます。 実行イメージ動画: これは何?(OSvを知らない人向けの説明) ローカルマシン上のKVM・Xenや一部のIaaSサービス・VPSなどで走る、mrubyスクリプトを実行する事のみに特化されたOSです。 mrubyインタプリタの実行に汎用OSを必要としないため、とても少ないメモリ使用量(今のところ90MB以上なら動く)・ディスクイメージサイズ(今のところ26MB)・とても速い起動時間(今のところ2秒くらい)で動作します。 mrubyなのでRubyで使えるAPIが全て使えるわけではありませんが、ネットワークアクセスを行う小さなアプリケーションであればLinux上で動作するRuby

    mruby専用クラウドOS「μOSv」を作りました - syuu1228's blog
    Watson
    Watson 2013/11/14
  • アドレスからソースコードの位置を探すコマンド - syuu1228's blog

    カーネル飛んだ時とか、RIP(EIP)からobjdump -d vmlinuxを見ながら位置を探したりしてたんだけれども、binutilsに含まれてるaddr2line使えばソースコードの行数簡単に見れたのね。 まぁ、これがあるからといってobjdumpでディスアセンブルさせて眺めたいケースが無くなるわけじゃないから、併用した方がいいんだろうけど。 objdumpで探す $ cd ~/linux $ objdump -l -d vmlinux |less (/ ffffffff81525fc0と入力してReturn) ffffffff81525fc0 <dev_queue_xmit>: dev_queue_xmit(): /home/syuu/bcube-linux-stable/net/core/dev.c:2464 ffffffff81525fc0: 55 push %rbp ffff

    アドレスからソースコードの位置を探すコマンド - syuu1228's blog
    Watson
    Watson 2013/01/29
  • シンボリックリンクをrm -rf symlink/すると不幸になる - syuu1228's blog

    Twitterでちょっと話題にしたのでメモしとく。 sh-3.2$ mkdir -p hoge/huga sh-3.2$ touch hoge/huga/piyo sh-3.2$ ln -sf hoge tmp sh-3.2$ rm -rfv tmp tmp sh-3.2$ ls -l hoge/huga/piyo -rw-r--r-- 1 syuu staff 0 1 22 14:25 hoge/huga/piyo シンボリックリンクをrm -rf tmpする分にはシンボリックリンクだけが消える。 sh-3.2$ ln -sf hoge tmp sh-3.2$ rm -rfv tmp/ tmp//huga/piyo tmp//huga tmp/ sh-3.2$ ls -l hoge/huga/piyo ls: hoge/huga/piyo: No such file or directo

    シンボリックリンクをrm -rf symlink/すると不幸になる - syuu1228's blog
    Watson
    Watson 2013/01/23
  • 1