タグ

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

  • githubで公開することにしました - syuu1228's blog

    既にこのブログで第1回、第2回を公開していますが(追記:githubでの公開にあわせて削除済み)、原稿元データを含めて全ての回をgithubで公開することにしました。 githubリポジトリ 公開ページ 現在、TeXへの変換作業のボランティアを募集しています。 詳しくはgithubリポジトリのREADME.mdを参照して下さい。

    githubで公開することにしました - syuu1228's blog
    masami256
    masami256 2014/04/20
  • 任意のアセンブリコードを仮想マシンで実行しちゃう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
  • μOSvバイナリ配布 - syuu1228's blog

    自前のスクリプトを内部に持ち込む術がないのでバイナリ版を配布しても無意味だと思って今までソースコード配布しかしてなかったんですが、一応作ってみました。 取り敢えずeshellでlsすることぐらいはできます。それ以上は自前ビルド版でどうぞ。 wget https://dl.dropboxusercontent.com/u/648670/uosv_20131219.img sudo qemu-system-x86_64 -m 128m -drive file=uosv_20131219.img,if=virtio,cache=none \ -netdev user,id=un0,net=192.168.122.0/24,host=192.168.122.1 \ -device virtio-net-pci,netdev=un0 -enable-kvm -cpu host,+x2apic \ -

    μOSvバイナリ配布 - syuu1228's blog
  • ゲストOSのブートローダをホストOS上で動作するプログラムに翻訳する - syuu1228's blog

    このブログエントリはカーネル/VM Advent Calendar 2013 8日目の記事、および第九回カーネル/VM探検隊の発表の補足記事です。 発表資料と動画 このエントリだけでも理解できるように書いたつもりですが、はじめにこちらをみて頂いた方が分かりやすいかもしれません。 BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜 // Speaker Deck BHyVeって何? OSvって何? BHyVeについて知らない人はこちら OSvについて知らない人はこちら 何がしたいのか? BHyVeはKVM+QEMUやVMwareと異なり、BIOSやUEFIなどの標準的なファームウェアを持ちません。 そのため、MBRのブートセクタからのブートやUEFIブートローダからのブートを行う事ができません。 代わりに、ホストOSで動くプログラム(ゲストOSローダ)でゲストマシン上

    ゲストOSのブートローダをホストOS上で動作するプログラムに翻訳する - syuu1228's blog
  • 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
  • OSvにシンプルなHTTPDがあってもいいんじゃないかなと思ってthttpdを移植してみた - syuu1228's blog

    Java application serverやらJRubyなapplication serverじゃなくて、スタティックなWebサイトをホスト出来るシンプルなHTTPDが動いたらよさそうだなーって思ったのでちょっとやってみた。 OSvもmrbgemsみたいな感じに簡単にextensionを追加できるといいよね→やってみた - かーねる・う゛いえむにっきのpatchがマージされる前提で、mrubyと同じようなmodule用githubリポジトリを作成してみる。 Makefileは単純な構成だったので、消してしまってmrubyからOSv用のものを持ってきて書き直した。 あとは大体ビルド通るんだけど、細かいところで存在しないlibc上にC関数が多発したのでいちいち消して回った。 syslog関連、uid/gid関連など、細かいところで結構ひっかかる。 無視するのでよいからこの辺はきちんとOSv

    OSvにシンプルなHTTPDがあってもいいんじゃないかなと思ってthttpdを移植してみた - syuu1228's blog
  • OSvへmruby-cfuncを移植してみたらとてもあっさりと動いた話 - syuu1228's blog

    OSvへmrubyを移植してみたらとてもあっさりと動いた話 - かーねる・う゛いえむにっきの続きです。 さて、OSvでmrubyが動くようになったのですがmrbgemsを追加していないのでこのままではAPIがむっちゃ少なくてなにも書けません。 でもmrbgemsの移植ってそれぞれ依存ライブラリあったりして動かすの面倒よなー、とか思ってたら、こんなのが目にとまりました。 GitHub - mobiruby/mruby-cfunc: Interface to C functions on mruby ふと思ったんだけど、cfuncを組み込むことに成功すれば、OSvのカーネル内関数たたき放題なのでは…?:URL 2013-10-25 21:22:22 via YoruFukurou | \  __  / _ (m) _ピコーン |ミ| /  `´  \ ('A`) ノヽノヽ くく OSvってプ

    OSvへmruby-cfuncを移植してみたらとてもあっさりと動いた話 - syuu1228's blog
  • OSvへmrubyを移植してみたらとてもあっさりと動いた話 - syuu1228's blog

    注:この記事はカーネル/VM+K*BUG勉強会@関西 ごかいめのダイジェスト版です。 詳しくは、以下の動画とスライドをご覧下さい。 OSvは、OpenJDKを仮想環境で高速に動かす事を目指していて、ユーザは基的にJavaアプリケーションしか実行しないという前提になっています。 メモリプロテクションやリングプロテクションなどは使われず、JavaVMがユーザアプリケーションからの不正アクセスを保護します。 イメージ図: RubyプログラムやPythonプログラムはJRubyやJythonによって実行する事が可能ですが、CRubyやCPythonは含まれていません。 しかし、ユーザアプリケーションを実行する言語環境は別にJavaVMじゃなくてもいいのではないか?という考えも成り立つと思われます。 例えばCRubyを動かしてみるとか。 …という訳で、やってみようと思ったんですが、いきなりCRub

    OSvへmrubyを移植してみたらとてもあっさりと動いた話 - syuu1228's blog
  • syuu1228's blog

    とりあえず色々みてみた。 lspci $ lspci 00:00.0 Host bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2 (rev 01) 00:01.0 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 1 (rev 01) 00:02.0 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 2 (rev 01) 00:02.2 PCI bridge: Intel Corporation Xeon E7 v4/Xeon E5 v

    syuu1228's blog
  • 1