興味があって調べていたら、少しだけ分かったのでまとめておきます。当然間違った箇所もある、あと考慮が漏れている箇所もあるかと思いますのでツッコミをお願いします…
続きを読むCレベルのライブラリコールを“Hijack”してみる その2 - libmruby.aを組み込む
少し間が空いたんですが
こちらの続きです。
今回は LD_PRELOAD するshared objectにlibmruby.aを組み込み、mrubyで置き換え対象の処理を記述できるようにする。
組み込み用の libmruby.a を作成する
続きを読む第9回フクオカRuby大賞を受賞しました
去年より開発している、mrubyでコントロールできるLinuxコンテナランタイム Haconiwa で、第9回フクオカRuby大賞・県知事賞をいただきました。
写真は受賞決定直後の様子です。
続きを読む今日の福岡Ruby大賞で @udzura さんが大賞で100万円とったという速報とともに送られてきた写真見て「うづらさん怒られてるの?」ってslackに書いた自分の書き込みがツボって仕事にならなかった。おめでとうございます! #udzura_sushi pic.twitter.com/7zGKUyvj5K
— 松本 亮介 / まつもとりー (@matsumotory) 2017年3月1日
Linuxプログラミングインターフェースを読んだ(一周目)
読みきった。一周目の所感を書く。
- 作者: Michael Kerrisk,千住治郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/12/01
- メディア: 大型本
- クリック: 14回
- この商品を含むブログ (7件) を見る
Cレベルのライブラリコールを“Hijack”してみる その1。
Rubyの、 Time.now
は最終的には clock_gettime(3)
を呼び出しているそうな。
- masterの当該箇所
Time.now
はTime.new
を無引数で呼び出しているに過ぎない- ここで、
Time#initialize
の実態はtime_init
time_init
は引数がない場合time_init_0
を呼ぶtime_init_0
は timespec 構造体のポインタを引数にrb_timespec_now
を呼ぶrb_timespec_now
でclock_gettime(3)
が使えるシステムであればそれを呼ぶ。そうでない場合gettimeofday(2)
らしい…
ここで、以下のような小さなCのコードを書く。
続きを読む