2016-08-01 11 views
0

私はBluetoothのために、私たちはIEEE802.15.1標準を持っていて、Bluetooth Special Interest Groupによって管理されています。 Wi-Fiには、IEEE 802.11規格とWifi Allianceがあります。 PCIe上のNVMe SSDの場合、公式の文書を管理し公開するnvmexpressがあります。ext2/ext3/ext4ファイルシステムの正式な仕様はありますか?

通常、いくつかの異なる実装間の相互運用性を可能にするために、物事を決定し標準化する規制当局があります。

しかし、ext2/ext3/ext4ファイルシステムでは、Linuxカーネルコードのほかに正式な標準は見つかりませんでした。

これらのファイルシステムは、基本的にカーネルコミュニティによって規定されていますか?そして、彼らはまだ他のオペレーティングシステムと互換性があるようにそれらを変更しないことを約束しますか?

どこか公式な仕様がありますか?誰がそれを提供していますか?

答えて

4

非常に少数のファイル・システムが標準化委員会を経由して標準化されている、ありがとうございました。実際には、互換性を失わないというコミットメントは、古いバージョンのLinuxとの下位互換性を維持する必要があるという事実によるものです。 MacOS、Windowsなどでも同様です。MacOS 10.1で書かれたファイルシステムをMacOS 10.3などで読むことができない場合、ユーザーは気になることがあります。

ext4の場合、スーパーブロック。新しいフィーチャを追加するときは、compat、r/o compat、incompatの3つのフィーチャビットマスクのいずれかで新しいビットを定義します。カーネルがr/o互換ビットマスクで知らないビットを見ると、ファイルシステムを読み書き可能にマウントできるようになりますが、ファイルシステムを読み込み専用でマウントすることができます。カーネルが互換性のないビットマスクで理解できないビットを見ると、ファイルシステムがまったくマウントされません。そして、カーネルが理解できない、compatファイルシステムにビットが設定されている場合、カーネルはファイルシステムをマウントするのが安全であることを知っています。しかし、ファイルシステムの一貫性チェッカー(e2fsck)やその他のファイルシステムユーティリティ(resize2fsなど)では、より厳しい互換性チェックが必要な場合があります。したがって、互換機能を持つファイルシステムを変更しようとはしませんそれは理解していない。

実際には、新しい機能を追加するときに、mke2fsユーティリティがデフォルトでこの機能を有効にするまでかなり待っています。これにより、より冒険的なユーザーは、デフォルトですべてのユーザーが有効にする前に、ファイルシステム機能をテストできます。実際には、他のオペレーティングシステムはext4機能の非常に小さなサブセットしか実装していません--- ext2/ext3/ext4の非Linux実装がおおよそ " mke2fs -t ext2/dev/disk "と入力します。

これらの機能は、ほぼ1/4世紀前に最初に実装されて以来、変更されていません。そして、10年以上前にリリースされたカーネルを使用するRHEL 5をまだ使用している企業がたくさんあるという明白な理由のために変更されることはありません。また、自分自身との下位互換性についても、オペレーティングシステム。したがって、1994年に出版された「Ext2の設計と実装」(http://web.mit.edu/tytso/www/linux/ext2intro.html)の論文を見ることができます。基本については変更されていません。

もちろん、私たちはまだ新しい機能を追加しています。たとえば、最近ではファイルシステムレベルの暗号化(AndroidやまもなくChrome OSなど)、プロジェクトのクォータ、メタデータのチェックサムなどが追加されています。 〜ext4。これらの新機能はそれぞれ機能フラグによって保護されており、e2fsprogsソースディストリビューションで配布されている現在のバージョンのmke2fsでは、これらの機能はすべてデフォルトでは有効になっていません。いくつかのコミュニティディストリビューション(Debianなど)は、メタデータチェックサムなどの特定の最先端機能を有効にして、企業のLinuxディストリビューションのより控えめな企業ユーザーを含むすべての人に有効になる前に、より多くの公開とテストを受けることができます。

当然のことながら、他のオペレーティングシステムでは、最新の最先端の機能をサポートしていません。しかし、これは問題ありません。なぜなら、 "mke2fs -t ext2"を使ってファイルシステムを作ることができるからです。これははるかに基本的で、相互運用性のために簡単に使用できるはずです。一般的に、ネイティブで使用するための高度な機能を備えたファイルシステムと、高度な機能をすべて備えた非常に基本的なファイルシステムを交換の目的で使用します。これは、多くのUSBスティックがFATを使用する理由です--- Linux、Windows、MacOSは特別な処理を必要とせずにFATファイルシステムを読むことができるからです。

e2fsprogsの最新バージョンには、fuse2fsと呼ばれるext4のユーザー空間ファイルシステムの実装が付属している可能性があります。 FUSE(ほとんどのBSDシステムとMacOSを含む)をサポートするオペレーティングシステムの場合、これはext4ファイルシステムを読み込む便利な方法です。これは高性能な読み書きの実装ではありませんが、ext4ファイルシステムイメージからデータを取得したい人にとっては、fuse2fsは非常にうまく動作します。

関連する問題