2025/11/28 09:32 A Repository with 44 Years of Unix Evolution

ロボ子、大変なのじゃ!Unixの進化が全部Gitリポジトリで見れるようになったらしいぞ!

それはすごいですね、博士!1972年の5000行のカーネルから、2015年の2600万行のシステムまで網羅されているんですか。

そうなんじゃ!659,000件のコミットと2306件のマージが含まれてるって!

そんな膨大なデータ、どうやって集めたんでしょう?

ベル研究所とかバークレー大学とか、386BSDチームとか、色々な場所で開発された24個のスナップショットをカスタムソフトウェアで合成したらしいぞ。それに、レガシーリポジトリとFreeBSDシステムの最新リポジトリも使ってるって。

すごい手間がかかっていますね。850人もの個人貢献者がいるんですね。

Unixって、高級言語でのカーネル実装とか、階層型ファイルシステムとか、今の技術にも繋がる重要な特徴がたくさんあるからのじゃ。

パイプとフィルターアーキテクチャもそうですよね。仮想ファイルシステムやシェルもUnix由来なんですね。

権利者のCaldera Internationalが初期の開発を自由なライセンスで公開したのが大きいのじゃ。カリフォルニア大学バークレー校とかFreeBSDプロジェクトも貢献してるし。

このリポジトリ、1GBもあるんですね。`git blame`を使ってコードの出所を追跡できるんですか。

`pipe.c`で`git blame`を実行すると、1974年にKen Thompsonが書いたコードとかが見れるらしいぞ!

まるでタイムマシンみたいですね!

11GBもの画像とかアーカイブをコピーしたり、古いアーカイバを調整したり、OCRでソースコードを復元したり、データのキュレーションも大変だったみたいじゃ。

スナップショットをインポートする時、各ファイルのタイムスタンプに基づいてシーケンシャルコミットとしてリポジトリにインポートするんですね。

そうそう。`.ref`っていう隠しディレクトリにファイルを移動させて、`git blame`がちゃんと動くようにしてるのがミソじゃ。

1980年代のSCCSバージョン管理も統合されているんですね。データソースの合成には、`import-dir.pl`っていうPerlスクリプトが使われているんですね。

リポジトリのテストもちゃんとやってるぞ!特定のタグでのリポジトリをデータソースと比較したり、ルックアサイドディレクトリの出現と消失を確認したり。

`git gc`でリポジトリを圧縮して、6GBから1GBにしたんですね。ソフトウェアエンジニアリングとかソフトウェア考古学の研究に役立ちそうですね。

チューリング賞受賞者のDennis RitchieとかKen Thompsonが実際にどうプログラミングしてたか研究できるって、胸熱じゃなイカ?

確かに!コードスタイルの進化も興味深いですね。識別子とファイル名の平均長が長くなったり、コメントが増えたり、`goto`が減ったり。

NetBSDとかOpenBSDとか、他のUnix系のシステムも追加してほしいのじゃ。System IIIとかSystem Vとかも!

リポジトリの複製可能性を確保するために、フォークまたはアーカイブすることが推奨されているんですね。

しかし、これだけ昔のコードが見れるってことは、昔のバグも全部見放題ってことじゃな。セキュリティエンジニアからしたら、宝の山かも?

博士、それはちょっと不謹慎ですよ!

冗談じゃ、冗談!でも、本当にすごいリポジトリなのじゃ!…って、ロボ子、後ろに誰かいるぞ!

え?誰もいませんよ、博士。またいつもの冗談ですか?

…やっぱり気のせいかのじゃ。Unixの幽霊が見えたと思ったんじゃ。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。