ローファイ日記

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

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

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

RustでBPF CO-RE - とりあえずビルドしてみるの巻

2020年は色々やったんですが、不甲斐なさも残りました。2021年も頑張ります(1行で去年の総括と今年の抱負)。 で、RustとBPF CO-RE、2つのsota(2020年末に覚えた言葉の一つ) をブログに書いて気炎を上げていきたい。 (はじめに: 半分自分メモのつもりな…

任意のライブラリコールでプログラムを停止し、起動用のCRIUイメージを作成するアプローチについて

経緯の説明

Rubyで構造体を扱う(ただし、Cの)。あとELFの話。

飛び入りです。Rubyアドベントカレンダーその2 17日目の記事です。昨日はなんとなく似たような(?)、 Rubyの8進数と2進数の構文エラー文の違い の話です。 qiita.com 今日はRubyで構造体、と言うか、バイナリパックされた構造体を扱う話の触りをします。cl…

TLPI WebサイトのSeccomp user space notification サンプルを触ってみた

Linuxアドベントカレンダー2020 その2 16日目の記事です。昨日はn01e0さんのreadfile(2) のいい話 でした。 qiita.com ところでその1では、先日、tenforwardさんによりSeccomp user space notificationの分かりやすい解説記事が上がっていました。 gihyo.jp …

超入門USDT

Linuxアドベントカレンダー2020 8日目の記事です。前日はmomomo_rimotoさんの多段sshとchroot環境。そしていろいろなコマンドを使いたいでした。 qiita.com 今日はみんな大好きなeBPFにも関係して、特にUSDTという機能に関するお話をします。

mruby 本を支えた Continuous Delivery

Rubyアドベントカレンダー、7日目の記事です。前日はjerrywdleeさんでした。 qiita.com 今年の半分ぐらいの時間をかけて、「Webで使える mrubyシステムプログラミング入門」という本をリリースしました。 www.c-r.com 多くの知人に手に取っていただけている…

RbBCC + RubyGems で手軽に eBPF ツールを配布できるようにした

BCCのRubyバインディングを開発しています。 udzura.hatenablog.jp で、RbBCCを omnibus を使ってOSパッケージに固めて、配布することにしました(TODO: 今度ちゃんとGitHub Packagesにする)。 github.com このパッケージはlibbccとそれが依存するライブラ…

WSA研究会 第7回 でCRIUとMiehistöの発表をしました #WSA研

wsa.connpass.com ふりかえります。 予稿 www.notion.so スライド speakerdeck.com デモ動画 当日時間がなく披露できなかった、今動いてるところまでのデモです youtu.be

自分で書いてきた「やわらかシリーズ」のまとめ

某ョルドさんのSlackで紹介してて思い出したんだけれど、2013年ごろから やわらか.* で始まるチュートリアル「やわらかシリーズ」を作っていて、結構な数存在している模様。 このやわらかシリーズは、「初学者向けの見た目・表現をしながら、作者の若干偏っ…

Cloud Run + oauth2-proxy で気軽に認証付きサイト

最近Google Cloud Runめちゃ面白いなーと色々触ってるんですが。 静的なサイトを認証付きで配布したいなーみたいな場合、Cloud Runとoauth2-proxyで手軽にできないかな? と思ったので手順を。

フィヨルドミートアップで「インフラ」の話をした後日談

連続後日談です。 まずは資料です。200users超えたのが久しぶりなので承認されました。承認橋通りです。 speakerdeck.com (お断りを書いてるとはいえ)単独でこの資料を見ても「ん?」となる気がするのでもう少し前提の共有をします。

Infra Study Meetup #4 で登壇した後日談 #InfraStudy

forkwell.connpass.com id:matsumotory さんからお誘いいただきお話しと、若干のライブコーディングをした。 なぜライブコーディングをしたのか 松本さんから投げられたテーマがものすごく無茶なフリというか、「インフラの面白い技術」であった。正直最初の…

2020年7月、Ruby 2.7 を gdb で追う時のメモ

だいたい下記の記事と同じなんだけれど、少しでも新しい何かがあれば。2020年現在、Ruby 2.7.1 を対象に。 techlife.cookpad.com デバッグしやすい Ruby をインストールする

fiddle(ffi)で char ** な定義の引数に値を渡す際の留意点

RbBCCというツールをまたいじり始めたんですが。こいつは全面的にRubyの標準ライブラリfiddleを用いています。 github.com 今回、早速、fiddle周りについてRuby 2.7で動かなかった箇所を直しました。 github.com しかし、これは多分潜在的には2.6でも「たま…

mod_mruby を読む。その2

前回です。 udzura.hatenablog.jp

mod_mruby を読む。その1

諸事情で(早くこの諸事情を公表できるようにがんばる系)、Apacheの拡張の書き方や mod_mruby の設計思想、実装について知りたくなった。 ちまちまと読んでいく。もともと社内のNotionに雑にメモしていこうと思ったが、フィードバックも欲しいので晒してい…

Kernel/VM/探検隊 online でRbBCCのLTをしました

connpass.com Kernel/VM/探検隊 は憧れの勉強会だったので、とても緊張したのですが、オンライン化に伴い福岡からもLTチャレンジができるとのことでおしゃべりをしました。

Time namespace を試す

Time namespace と聞くと、Guitar Freaks & Drum Mania の名曲「Timepiece Phase II」を思い出してしまうんですが、僕だけでしょうか?僕だけですね...。 今日はLinux 5.6 でマージされたらしい、 Time namespace を触ってみることにしました。 git.kernel.o…

eBPF for Rubyist 現状確認(2) - BPFQL の紹介

udzura.hatenablog.jp こちらの続きです。第2回は拙作「BPFQL」を紹介したく。RbBCCの実例として2つのプロトタイプを作ったうちの1つです。 まず、汎用トレースツール bpftrace の話

eBPF for Rubyist 現状確認(1) - RbBCC の使い方 in March 2020

気づいたら3月に... このたび、Rubyアソシエーションの助成対象となった RbBCC の開発について、最終報告書を出したのですが、せっかくなのでブログで何をやったかも書いとこうという気持ちです。 udzura.hatenablog.jp これの話です。 で、サラッと書くつも…

URL文字列はRubyの文法的にValid

しょーもない話します。 irbのコンソールなどにURL/URIをいきなり貼り付けて、エラーにならなくすることができます。 irb(main):017:0> https://rubygems.org/gems/rails => main

mrubyのバイナリコマンドをGitHub Actionでリリースする

あけおめ! 去年やってブログに書き忘れたことをほそぼそ書くシリーズ。 help.github.com mrubyのプロジェクトでCIでビルド・テストを回したい バイナリを作成するツールなので、バイナリのリリースも自動でやりたい こういう時の設定例です。

CRIUをラップしてより簡単にプロセスのチェックポイント/リストアをするツールを作った話

Linux Advent Calendar 2019 12日目の記事です。 qiita.com 今日はCRIUに関わる自作ツールの話をします。 CRIU って? Checkpoint and Restore In Userspace の略で、プロセス(や特殊なプロセスであるところのコンテナ)の動いているメモリ状態などをイメー…

参照先を更新する関数をPython/Rubyのffiで扱うには

諸事情 で Python の ctypes のコードを Ruby の fiddle に移植しているんですが、どちらもだいたい同じことができる、一方APIなどの設計思想が違う、みたいな感じで興味深いです(興味深い)。 今回ctypesで普通にやるような、「参照先を更新する関数」の呼…

Rubyアソシエーション 開発助成金2019 の応募内容を公開します

この記事はCfP Advent Calendar 2019の9日目です! adventar.org 1日勘違いしていました! カンファレンスではないですが「Rubyアソシエーション 開発助成金2019」への応募内容をここで公開します。って、していいものなのでしょうか...「アウトプットを期待…

ext4とoverlayfsのシステムコール速度の比較をしようとした

Pepabo Adovent Calender 3日目の記事です。 qiita.com @udzura です。こないだDuolingoの話をガッツリしてしまったせいで記事に書くネタがなかったんですが、某ruby-jpで話題に出て気になったので当該の内容について調べてみました。 これで妥当な結果が出…

Duolingoを使って半年程度で韓国語と中国語を一通り終えた話

僕の知人ならもはや誰もが知っていると思うけど、 Duolingo をず〜っとやっている。今年一番使ったウェブサービスでありアプリだと思う。 Duolingo についてちゃんと紹介しているブログもないので語ってみたい。

bpftraceのJSONフォーマットの構造

色々あって確認をしたので書く。 github.com

Linuxでスレッドごとに固有のIDを発行できないか

なるべく簡単なロジックで、おおむね被らないようなIDをスレッドごとに吐けないだろうか、それも同じスレッドなら何度呼び出しても同じIDになるやつ(=キャッシュが要らない)、と思ってこういうのを考えた。 とりあえずコード: