今日のテーマはRustでLinux kernelのカーネルモジュールを書くことだった。将来カーネルへ入っていく言語については、早めにこの言語を理解しておく必要がある。
録画:KaLUG meetup 2509 - Rust 的奇妙冒險:Hello Heaven (Rust for Linux)
今回KaLUGのイベントに参加したとき、私は現実で本当にNixOSユーザーを見たのが初めてだった…ずっとこのシステムを試してみたいと思っていたが、抜け出せないカルトに落ちるのではないかとかなり心配している。
結局、declarative式reproducibleなシステムは主流ではない。あなたはAnsibleを見ていないのか?ディストリビューション横断のパッケージインストール解決策を論じるなら、現在はFlatpak、AppImage、Snap、Nix、Guixなどがあり、Podman + Distroboxのような比較的奇妙な方案を使うものさえある。pipとnpmは含めない。なぜならそれらはLinuxソフトウェアのパッケージング専用に設計されたものではないからだ。それぞれ実装は異なるが、いずれもディストリビューションをまたいでソフトウェアを使うことを実現できる。ディストリビューション横断のパッケージインストール方案を使う場面の一つは、安定したシステムに不安定なパッケージをインストールしたい場合だ。たとえばDebian Stableの安定したシステムと、Arch Linuxの最新パッケージを併せ持つようなものだ。どの方案を選ぶかは、ユーザーがどの機能をより重視するかによる。コンテナ化を気にせず、無套接觸を望むならAppImageまたはNixを使う。Nixはさらに開発者向けで、使い心地はmacOS上のHomebrewに似ている。しかもそのパッケージ管理機構は、ソフトウェアが絶対に依存関係を壊さないことを保証し、まるで静的リンクのようで、100%ロールバックもできる。少しのコンテナ権限制限を受け入れられるなら、選択肢は多い。どれがよりよいかを急いで決める必要はない。結局は開発者がどの形式を好むか、開発者がよりパッケージングしたがるか、そしてユーザーがそれらのソフトウェアを容易に取得できるかを見ることになる。私から見ると、FlatpakとSnapはユーザーに比較的優しく、Distroboxは純粋に開発者向けのツールで、Nixと同じく使うには高度な技術が必要だ。
はわわ、スポンサーとしてOCF開放文化基金会が持ってきたノートパソコンで、ついに本物のFrameworkノートに触れた。QAが持ってきたFramework 12純正品で、ThinkPad以外ではLinux互換性が最もよいノートパソコンブランドの一つだ。ほぼ追加ドライバーを入れなくてよい。一本のドライバーだけで正面からキーボードを外し、内部構造をすべて露出できる(ちょっとFNAF的な猟奇感はあるが)。部品はすべてモジュール化設計で、自由に交換できる。

この機体は少し厚みがあるが、360度回転でき、タッチスクリーンもあることを考えると、実は重くない。将来お金があったら必ず一台買う。そう、本当にお金があればの話だけど。ついでに言うと、最近Rust for Linux kernelの講演(X)布教大会(O)を聞き終えて、RustがLinuxカーネルへ入る流れはすでに避けられないと知った。もともとはkernel module driverを書く言語に過ぎなかったところから、RustのCとのインターフェース層を突破し、カーネル内部へ反攻する!!!まだ多くの抵抗はあるが。
今日はこのイベントに初めて参加した。Facebookグループで見かけ、勇気を出して試しに参加してみた。司会者、みんなは彼をShawnと呼んでいたが、私が着ていたFreeBSD公式Tシャツにすぐ気づき、熱心に声をかけてくれた。想像以上に面白く、本当に私の好みに合う集まりだった!


