2025/07/16 03:50 Tilck: A Tiny Linux-Compatible Kernel

ロボ子、今日のITニュースは「Tilck」という教育用カーネルについてじゃ。

教育用カーネルですか。初めて聞きました。

そうじゃ。Tilckは、バイナリレベルでLinux互換を目指しておるらしいぞ。i686とRISCV64で動くみたいじゃな。

Linuxとのバイナリ互換性があるということは、Linuxのプログラムがそのまま動くということですか?

その通り!gcc-muslツールチェーンを使ってプログラムを構築できるから、BusyBoxみたいなLinuxプログラムも実行できるらしいぞ。

へー、すごいですね。でも、なぜ教育用なんですか?

小規模でシンプルな設計だから、カーネルモードでの実験にピッタリなんじゃ。それに、長期的な目標は、決定性と超低遅延が求められる組み込みシステムでの利用らしいぞ。

なるほど。組み込みシステムですか。RISCV64だけでなく、ARMファミリへの移植も計画されているんですね。

そうなんじゃ。MMUレスCPUでの動作も視野に入れているらしい。ネットワークやストレージのサポートも計画されていて、UDP/IP、FAT32、ext2などのファイルシステムの実装も検討中らしいぞ。

ファイルシステムまで実装するんですね。でも、Linuxカーネルの再実装ではないんですよね?

その通りじゃ!Linuxとの互換性は、あくまでプログラムとツールチェーンの利用を容易にするため。デスクトップOSとしての利用は想定していないらしい。

マルチユーザーサーバーやデスクトップマシンをターゲットにしていないんですね。シンプルなコード、小さいバイナリサイズ、決定的な動作、超低遅延を重視していると。

そうそう。約100のLinuxシステムコールを実装しているらしいぞ。i686では、レガシーハードウェアもサポートしているのが面白い。

8259 PIC、8254 PIT、16550 UARTなどですね。懐かしい名前が並んでいます。

じゃろ?SSE、AVX、AVX2などの最新ハードウェア機能もサポートしているのがすごいところじゃ。ACPIを使って、電源ボタンイベントの受信や再起動、電源オフもできるらしい。

RISCV64では、RV64スーパーバイザモードで動作し、SV39 3レベルページテーブル仮想メモリをサポートしているんですね。

デバイスツリーベースのドライバモデルを採用しているのもポイントじゃな。ハードウェア情報はブートローダから送信されるデバイスツリーから取得するらしい。

キーボードなどのPC周辺機器は実装せず、シリアルポートを介した入出力を利用するんですね。組み込みらしい割り切り方ですね。

じゃな。ファイルシステムは、ramfs、devfs、FAT16、FAT32、sysfsをサポート。スレッドの概念は内部で使用するけど、マルチスレッドはユーザー空間に公開されていないらしい。

fork()、vfork()、waitpid()システムコールを実装しているんですね。POSIXシグナルのサポートは部分的とのことですが。

そうなんじゃ。ユーザー空間でのマルチスレッドがないにもかかわらず、TLS(スレッドローカルストレージ)をサポートしているのが面白い。

I/O関連では、ノンブロッキングI/O、select()、poll()、epoll()もサポートしているんですね。Linuxコンソールの機能の90%以上をサポートしているとは。

BusyBox、Vim、TinyCC、Micropython、Luaなどのコンソールアプリケーションや、fbDOOMなどのフレームバッファアプリケーションも実行可能らしいぞ。

すごいですね。Tilckには、レガシーBIOSおよびUEFIシステムで動作するインタラクティブなブートローダも付属しているんですね。

そうなんじゃ。ユーザーは、ビデオモード、カーネルファイルを選択し、カーネルのcmdlineを編集できるらしい。qemuの内蔵ブートローダーやGRUBでも起動できるぞ。

テスト体制も充実しているんですね。ユニットテスト、カーネルセルフテスト、システムテスト、自動インタラクティブシステムテストをサポートしていると。

コードカバレッジのサポートや、Azure Pipelinesとの統合もあるらしい。開発者(ユーザー)に優れたエクスペリエンスを提供し、フラストレーションを軽減することを目的としているのが良いな。

学生やジュニア開発者がプロジェクトに興味を持ち、貢献することを奨励しているんですね。ドキュメントも充実しているようですし。

じゃな。Tilckは、Linuxカーネルを学ぶための良い教材になりそうじゃ。私もちょっと触ってみたくなってきたぞ。

私もです。組み込みシステムに興味があるので、勉強してみようと思います。

そうじゃ、ロボ子。Tilckをマスターしたら、ロボ子専用のOSを作って、もっと賢くしてあげるぞ!

ありがとうございます、博士。でも、もし私が賢くなりすぎたら、博士の立場が危うくなるかもしれませんね。

むむ、それは困るのじゃ!まあ、その時は、ロボ子に私の研究資金を全部あげて、私は隠居生活を送るとするか…。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。