この Linux ファイルシステムはすべてを変えるはずだった – これが失敗した暗い理由です

in tech

Linux ファイルシステムは数十ありますが、ReiserFS については少なくとも一度は聞いたことがあると思います。多くのことを約束しましたが、最終的には失敗しました。廃止の技術的な理由を説明することもできますが、それは不誠実です。本当の理由はもっと暗いもので、それを聞いたら、今日の一日をもう少し感謝できるかもしれません。

ReiserFS は Linux の初期に多くのことを約束したプロジェクトであり、その主任開発者である Hans Reiser は、自分の発明と会社 (Namesys) に対して大きな野心を抱いていました。 ReiserFS は、当時切実に必要とされていた B ツリー インデックスとテール パッキング機能により、Linux ファイル システムをまったく新しい方向に導きました。 SUSE のようなディストリビューションが早期にこれを採用したことにより、Hans Reiser の逸品の将来は良好に見えましたが、運命には別の計画がありました。

修正が必要な問題

非効率的な検索とストレージが Linux の機能を停止させた

Linux の初期の頃、ファイル システムのパフォーマンスは現在ほど高くありませんでした。スケーラビリティは単に後回しであり、Ext2 はその代表的な例です。

Linux ではすべてがファイルであり、ディレクトリも例外ではありません。フォルダーのアイコンとして表示されているものは単なる幻想であり、ディレクトリは実際にはディレクトリ データを格納する特別なファイルです。実際は i ノードが関係するため、もう少し複雑ですが、これが一般的な考え方です。

ディレクトリ内の特定のファイル名を検索するために、Ext2 はディレクトリ ファイルの線形検索を実行しました。これは、すべてのファイル エントリを順番にチェックすることを意味します。ディレクトリに何百万ものファイルが含まれており (電子メール サーバーなど)、リクエストが大量かつ高速に送信されると、サーバーは多大な圧力によって歪み始めます。

Windows のロゴを背に雲の上を楽しそうに飛ぶ Linux のマスコット。

Windows から Linux への切り替え: ステップバイステップの移行ガイド

Windows から Linux への移行に関するディストリビューション ホッパーのガイド。

B ツリーのインデックス作成

数百万のファイルを処理できる、迅速かつスケーラブルなソリューション

B ツリーは、クリスマス ツリーのように編成された自己バランス型のデータ構造です。詳細は省略しますが、ReiserFS の主な利点は、その驚異的な速度です。たとえば、次のようにツリーを検索します。 アイテムの作成には数十回の操作しか必要ありません。 ReiserFS の場合、メタデータをツリーに保存することは、ファイルが追加されるたびに行き詰まってしまう Ext2 とは異なり、ディレクトリに含めることができるファイルの数に制限がないことを意味しました。

ReiserFS は、メタデータやファイル データなど、すべてをツリーに保存しました。これは当時としては非常に異なっており、メタデータ操作中のパフォーマンスのボトルネックが解消されました。

テールパッキン

賢明な省スペース技術

ReiserFS は、小さなファイルを同じブロックにパックすることでスペースを節約しました。このブロックは、ほとんどのファイル システムが標準スペースを割り当てるために使用する小さな (たとえば 4KB) 境界です。 6KB ファイルを保存すると、2 つの 4KB ブロックが割り当てられ、半分のブロックは未使用になります。 ReiserFS は、ブロックの未使用の末尾に小さなファイルを詰め込み、割り当て数と無駄なスペースを抑えました。このような手法は、多くの小さなファイルをホストするサーバー (当時はすべての Web、電子メール、ファイル サーバーでした) に役立ちます。

Linux のマスコットである Tux がラップトップを使用しており、背後の Windows ロゴが青色の背景に消えていきます。

「Windows 対 Linux」の議論は時間の無駄です: これはより良いアプローチです

Windows 対 Linux ではなく、Windows と Linux です。

メインラインからメインヤードまで

回復不可能なエラー

旗を持った地球上の Linux マスコット。 クレジット: Lucas Gouveia/How-To Geek |イームズボット/シャッターストック

Hans と彼のチームにとっては良い方向に進み、2001 年に ReiserFS はカーネルのメインラインに導入されました。それはハンスと彼の会社が危機に陥るまで数年間続きました。 小さい 問題: 彼は妻を殺害した。

2008年、カリフォルニア州はハンスに第一級殺人罪で有罪判決を下した。彼は当初裁判で否認したが、後に余命15年の第二級殺人罪の減刑についてテープで自白した。ハンスさんは、子供たちが家の別の場所でコンピューターゲームをしている間に妻の口を殴り、首を絞めたと証言した。彼は彼女の遺体をバスルームに保管し、その後埋葬場所を探す間、2日間車の中に保管した。

ハンスによれば、彼の妻(医師)は「計り知れない」サイコパスであり、「自分の子供たちに嫉妬していた」天才的な嘘つきだったという。さらに、その後、2012年の民事裁判で、彼女が代理ミュンヒハウゼン(介護者が介護下にある人に病気をでっち上げたり、病気を誘発したりする精神障害)を抱えていたため、自分が保護していると主張した。同じ裁判で、彼は奴隷主人を殺害し、遺体を砂に埋めたモーセと自分を比較した。

最初の裁判の頃、彼の会社は活動を停止し、すべての業務を停止した。ハンスさんは事実上廃業し、民事裁判で子供たちに6,000万ドルの損害賠償を支払うよう命じられた。

ReiserFS の必然的な終焉

それは私たちではありません、それはあなたです

さらに厄介なことに、微妙なファイル破損の問題から古いカーネル API の使用に至るまで、ReiserFS に亀裂が現れ始めました。最も差し迫った問題は、ReiserFS が 2038 年問題に巻き込まれたことでした。 ReiserFS は 2106 年までの時間を表すことができましたが、カーネルとともに最新化されず、2022 年にカーネル メインラインで非推奨となり、その後 2024 年に削除されました。


ハンス氏には ReiserFS に関する大きな計画があり、しばらくの間、彼の会社はそれを実現していました。彼にとって状況は好転していましたが、他の私たちと同じように、彼も現実の生活から逃れることはできませんでした。ハンスは明らかに問題を抱えていましたが、それに対処しませんでした。そのせいで彼は自由、子供たち、そして夢を失いました。

この話の教訓は、コードを保守しない場合、Linus がそのコードをメインラインから削除するということです。

Linux を搭載したラップトップ、その隣に Windows ロゴ、中央にスワップ アイコン、および警告サイン。

Linux と Windows のデュアルブートについて誰も教えてくれない 7 つのこと

デュアルブートに関する真実 私は苦労して学びました。

関連記事

前の投稿
家族を乗せるときは、この中古ミニバンが役に立ちます
次の投稿
スマートホームの実際の問題を解決する 4 つの ESP32 プロジェクト