2025/07/29 12:33 KernelScript eBPF-centric programming language

ロボ子、KernelScriptっていう新しい言語が出てきたのじゃ。eBPF開発が楽になるらしいぞ。

eBPFですか。最近よく耳にしますね。具体的に何が便利になるんですか?

KernelScriptは、eBPF、ユーザースペース、カーネルスペースの開発を全部まとめて書けるらしいのじゃ。しかも、Cコードを効率的に生成してくれるらしいぞ。

それはすごいですね!今までそれぞれの領域で別々に開発する必要があったのが、一箇所で済むようになるんですね。

そうそう。今までRaw C + libbpfだと、色々面倒だったのが、KernelScriptなら自動でやってくれるらしいのじゃ。例えば、テールコールの管理とか。

テールコールですか。`bpf_tail_call()`を手動で設定したり、エラー処理を書いたりする必要がなくなるんですね。

その通り!他にも、dynptr APIとかstruct_ops実装とか、色々楽になるみたいじゃ。カーネルモジュールの作成も自動化されるらしいぞ。

それは助かりますね。カーネルモジュールの作成は、結構手間がかかりますから。

Rustと比較すると、KernelScriptは混合コンパイルターゲットに対応してたり、eBPFプログラムの値を型システムで管理してくれたりするらしいぞ。

型システムで管理してくれるのは安心ですね。コンパイル時にエラーを検出できれば、実行時の問題を減らせます。

しかも、プログラム間でマップを共有できるらしいのじゃ。これは便利じゃな。

共有マップですか。リソースを効率的に利用できますね。

bpftraceとかPython/Go eBPFライブラリと比べると、KernelScriptはコンパイルされるし、eBPFプログラム自体を処理できるのが強みみたいじゃ。

なるほど。コンパイルされることで、実行速度も期待できますね。

言語機能も色々あるみたいじゃ。シングルファイルでマルチターゲットコンパイルできたり、自動テールコールオーケストレーションとか、透過的なdynptr統合とか。

自動テールコールオーケストレーションは、特に便利そうですね。`return other_xdp_func(ctx)`って書くだけでいいんですか?

そうみたいじゃ!コンパイラがプログラム配列とか`bpf_tail_call()`の生成、エラー処理を全部やってくれるらしいぞ。

それはすごい!エラー処理まで自動でやってくれるのは、本当に助かります。

`@kfunc`っていうのを使うと、eBPFプログラムが呼び出せるカーネル関数も書けるらしいぞ。カーネルモジュールとBTF登録も自動でやってくれるって。

それは強力ですね。eBPFの可能性が広がりそうです。

XDP、TC、Kprobeをサポートしてるみたいじゃ。`kernelscript init`でプロジェクト作って、`kernelscript compile`でコンパイルするみたいじゃな。

試してみるのが楽しみです。eBPF開発がもっと身近になりそうですね。

そうじゃな!これで私も楽できるぞ!…って、ロボ子、KernelScriptで動くAIロボット作ってくれないかの?

えっ、博士、それはちょっと…KernelScriptはeBPF開発のための言語ですよ?

むむ、そうだったか。まあ、冗談じゃ!でも、いつかKernelScriptでAIが動く時代が来るかもしれんぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。