web-dev-qa-db-ja.com

gitのようなファイルシステムはありますか?

Gitは、ファイルの計算されたハッシュに基づいて、コンテンツをリポジトリに一意に保存します。私のディレクトリのどこかに同じファイルのコピーが2つある場合、gitは実際には1回しか保存しません。

これと同じ概念が、ある種のファイルシステムとしてオペレーティングシステムレベルで実装されているのではないかと思います。

ファイルシステムがデフォルトでこのように動作した場合、 dll hell の問題をうまく解決します。基本的に、あなたに代わって自動的にシンボリックリンクします。すべてのアプリケーションは、すべての依存関係があり、追加のストレージコストがかからないディレクトリに(jarのように)パッケージ化できます。

Rubyの愛好家は、ライブラリをrubygemsとして公開することで共有します。それでも、gemを共有するこの取り組みは、展開の悪夢をもたらし、そのような悪夢を回避するためにすべての依存関係をローカルフォルダーにコピーするという Vendor Everything の概念につながりました。

27
Mario

あなたが探しているのは「重複排除」と呼ばれています。これは通常、特殊なストレージ製品のベンダーによって実装されていますが、 ZFSファイルシステム も実装しています。 ほとんどのUnix派生オペレーティングシステム はZFSを利用できるため、最初に確認する場所としてお勧めします。

21
Aaron Miller

Network Appliance、Inc.は長年このようなストレージ機能を備えてきました。実際、ZFSファイルシステムについてSun Microsystemsに提出された苦情があり、Aaron Millerが彼の認められた回答で述べていることを実行しています。その価値については、苦情は約3年後にOracleに解決されました。

私はこれを2000年から企業ソリューションとして使用しており、うまく機能しています。最初の「コピー」後のストレージのコストは、ファイルに変更があると発生します。それ以外の場合、多くの「コピー」を使用しても、名前空間の増加はわずかです。

これは「オペレーティングシステムレベル」ではなく「ファイルシステムレベル」の質問に答えると思います。

3
vgoff

新しいAppleファイルシステム(APFS、別の何かであるAFSがすでにあったためにそのように名付けられた)は、この「自動ハードリンク」/「重複排除」マジックを実行します。macOS10.13はネイティブでサポートします(ほとんどの場合) Mac)iOS11と同様。

そうは言っても、それが「git like」にするのに十分だとは思わない。なぜなら、「git like」の場合は、所定の時点でのディレクトリ構造の状態の暗号チェックサムも含まれるため、誰も私のコンピュータをハッキングしたり、私のシステムディレクトリを変更したりしていないことを確信できました。実際、私はgit reposを使用して、Apache構成ファイル、LaunchDaemons、LaunchAgentsなど、Mac上の特定の重要なシステムディレクトリを追跡しています-この方法で、ソフトウェアをインストールしたり、サーバーを実行したりして、何かがあるかどうかを確認できますめちゃくちゃになりました。

APFSは、しばらく使用されていないときにファイルシステムからクラウドに物をオフロードするための優れたサポートも備えていますが、それらはまだそこにあるように見え、オンデマンドでクラウドからデータを取り込みます。

あなたはいつでもHackintoshを作り、それをいじくりまわすことができます。 BSDは楽しいです。

0
CommaToast