コードを変更せずに仮想アプリケーションにgzipファイルをすぐに読み取る方法

コードを変更せずに仮想アプリケーションにgzipファイルをすぐに読み取る方法

私は、アプリケーションを変更せずに実行時にgzファイルをシームレスに読み取ることができるように、オペレーティングシステムのfopen関数をオーバーライドできる一般的なツール/ライブラリを探しています。

詳細:大容量バイナリファイルを読み取る古いアプリケーションがあります。これらのバイナリはgzだけでなく圧縮されます。これらのバイナリを圧縮し、元のファイル拡張子を保持し(レガシーアプリケーションで要求されるように)、システムコールを傍受してオーバーライドするライブラリまたはアプリケーションを使用して、アプリケーションコードを変更せずに解凍することなく圧縮ファイルを読み取るできるようにサポートしようとしています。 。さらに、ファイルシステム全体の圧縮は他のHPCアプリケーションのパフォーマンスを低下させるため、適切ではありません。以前のアプリケーションから読み込んだ特定のバイナリを圧縮し、これらのアプリケーションのサポートを追加すると、ソースコードを変更することなくこれらの圧縮ファイルを読み取ることができます。

このようなことをするために私ができることはないでしょうか?私のLinuxディストリビューション(RHEL 6)でうまく機能する限り、移植性は気にしません。

ベストアンサー1

もう一つの可能​​性は、特別なファイルシステムを使用することです。おそらくヒューズファイルシステム(例:ヒューズBGZIP)圧縮を実行するこれを行うことができ、必要な少数のファイルのみを透過的に圧縮するように調整できます。ファイルシステムの上書き)。

また、見ることができますこれ問題(ext4の透明圧縮)

おすすめ記事