ローファイ日記

出てくるコード片、ぼくが書いたものは断りがない場合 MIT License としています http://udzura.mit-license.org/

2021年にmrubyを始める皆さまへ

2021年3月5日に、mruby 3.0.0 のリリースがされました。おめでとうございます!

mruby.org

これに関連してなのか、mrubyをこれから始めようとか、ここのところどうなっていますかという質問をちょくちょく受けたり、ツイートを拝見したりするようになりました。

一方で、どうしても情報が古い、あるいは多くのmgemのメンテナンス状況が悪いように見える、などの初学者にとっては難しい状況が広がっており、厳しい気持ちになったり、厳しい感想を述べたりされている方もいるように思います。そして、その感想中には誤解も含まれているようです。

ここでいったん、少しでも「心構え」ができるように、これから触ってみる方々に対しての自分の考えをまとめておこうと思いました。

(さらにいうと、基本的に本原稿はいちユーザ、それもWebインフラに関わるユーザとしての解釈なので、Matzをはじめとした他のmruby関係者と違う箇所もあるだろうと思います。その辺りは適宜突っ込んでいただければという気持ちです)


なお、私はmrubyに関してはいくつかパッチやバグ報告を送ってきた経緯はありますが、基本的にメンテナンスやリリースマネジメントには関わっていない立場です。

ただ、3.0.0のリリース前には、Matz含むコア開発チームに、少しだけお話をさせていただく機会はいただいています。

続きを読む

Ruby (MRI) に新しい Probe を定義する

Rubyで利用できるUSDTは probes.d というファイルに定義されている。

USDTとは:

udzura.hatenablog.jp

以下の記事はbpftraceとUSDTを理解している前提で書いていきます。

続きを読む

RustでBPF CO-RE - execsnoop(8) を移植してみる

前回の続きです。

udzura.hatenablog.jp

今回はlibbpf-toolsにあるexecsnoopのコマンドライン部分をRustに移植する。まず、Rustのworkspaceを使って以下のように execsnoop クレートを作成した。 bpf/ ディレクトリにBPFのプログラムを置く。

続きを読む