前回の続きです。
今回はlibbpf-toolsにあるexecsnoopのコマンドライン部分をRustに移植する。まず、Rustのworkspaceを使って以下のように execsnoop
クレートを作成した。 bpf/
ディレクトリにBPFのプログラムを置く。
2020年は色々やったんですが、不甲斐なさも残りました。2021年も頑張ります(1行で去年の総括と今年の抱負)。
で、RustとBPF CO-RE、2つのsota(2020年末に覚えた言葉の一つ) をブログに書いて気炎を上げていきたい。
(はじめに: 半分自分メモのつもりなんです! という言い訳をしておきます。認識や用語など間違いがあれば突っ込んで...)
続きを読む飛び入りです。Rubyアドベントカレンダーその2 17日目の記事です。昨日はなんとなく似たような(?)、 Rubyの8進数と2進数の構文エラー文の違い の話です。
今日はRubyで構造体、と言うか、バイナリパックされた構造体を扱う話の触りをします。class Structの話はしない。
さてみなさんは String#unpack/Array#pack
を使ってますか?
すこく正直な話をすると、おそらく多くの方は使っていなくて、使っている方も大半はbase64文字列を生成する m
フォーマットぐらいしか使っていないのではないかと推測しています。
["Hello World"].pack('m') #=> "SGVsbG8gV29ybGQ=\n"
ぼくも今まではそうだったのですが、最近は他のフォーマットも急に使うようになりました。というのも、Cで扱う構造体、実質バイナリ列を簡単にRubyの世界に持っていく際に便利な代物だからです。去年の終わりからずっと ffiをガッツリ使ったgem の開発に勤しんでいるので、やや詳しくなってしまった。
ということで今日は構造体とffiとpack/unpackの話をしていきます。
Linuxアドベントカレンダー2020 その2 16日目の記事です。昨日はn01e0さんのreadfile(2) のいい話 でした。
ところでその1では、先日、tenforwardさんによりSeccomp user space notificationの分かりやすい解説記事が上がっていました。
今日もSeccomp user space notificationのお話の流れに乗っかろうと思います。ではやっていきましょう。
続きを読む