Unixの基本となるcatやls、rmなどの基本的なコマンドをまとめたGNU製のソフトウェアパッケージ「GNU coreutils」。
大部分のLinuxディストリビューションに含まれていて、多くのユーザーが使用しているソフトウェアですが、ソースコードの解読に挑んだ開発者は少ないかもしれません。
本日紹介する「Decoded: GNU coreutils」は、そのGNU coreutils v8.3のソースコードの解読を試みるWebサイトです。開発者MaiZure氏による長期プロジェクトで、記事執筆時に完了まで52%程度進捗している模様です。
GNU製のソフトウェアは高機能な分、解読の難易度が高いといわれているため、ソースコードを参考にしたい開発者に取って大いに助けとなるサイトといえるでしょう。
コードリーディングの基礎知識から個別コマンドの詳細まで
同サイトではGNU coreutilsに収録されている以下のようなコマンドに関し、ソースコードの解読結果が個別に分かりやすく説明されています。
個別ページにはコマンドの動作の流れを示す図や、概要、詳細な動作の解説、関数の説明などが含まれています。例えばディレクトリの内容を表示する「ls」コマンドの場合以下のような図から説明が始まります。
同サイトにはこのようなコマンド個別の解説以外にも、コードリーディングの助けとなる背景的な知識の解説や、一般的なコマンドラインユーティリティの処理の流れ、各ユーティリティで共有されているアイデアの説明など、さまざまな情報が掲載されています。
まとめ
Decoded: GNU coreutilsは、GNU coreutilsのソースコードを解読したい開発者にとって大いに参考となる情報が含まれています。MaiZure's Projectsには、Rogueやtopなどcoreutils以外のソースコードを解読する「Decoded」シリーズが公開されていますので、興味のある方は参考にしてみると良いと思います。