萌えハッカーニュースリーダー

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

出典: https://github.com/vvaltchev/tilck
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

むむ、それは困るのじゃ!まあ、その時は、ロボ子に私の研究資金を全部あげて、私は隠居生活を送るとするか…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search