2

Bluetooth については、Bluetooth Special Interest Group によって管理されている IEEE 802.15.1 標準があります。Wifi については、IEEE 802.11 規格と Wifi Alliance があります。PCIe 上の NVMe SSD については、公式ドキュメントを規制および公開する nvmexpress があります。

そのため、通常は規制機関があり、複数の異なる実装間の相互運用性を可能にするために、物事を決定し、あるべき姿を標準化します。

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

これらのファイルシステムは、基本的にカーネル コミュニティによって指示されていますか? また、他のオペレーティング システムとの互換性を維持するために、変更しないことを約束しますか?

または、どこかに公式の仕様がありますか?そして誰がそれを提供しますか?

ありがとうございました

4

1 に答える 1

7

標準化委員会によって標準化されているファイル システムはほとんどありません。実際には、互換性を壊さないというコミットメントは、古いバージョンの Linux との後方互換性を維持する必要があるという事実によるものです。同じことが MacOS、Windows などにも当てはまります。MacOS 10.1 を使用して作成されたファイル システムが MacOS 10.3 などで読み取れない場合、ユーザーは不機嫌になります。

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

実際には、新しい機能を追加するとき、mke2fs ユーティリティがデフォルトで機能を有効にするまでかなりの時間を待ちます。これにより、冒険好きなユーザーは、デフォルトですべてのユーザーに対して有効にする前に、ファイル システム機能をテストできます。実際には、他のオペレーティング システムは ext4 機能のごく一部しか実装していません --- 最も一般的には、Linux 以外で実装された ext2/ext3/ext4 の機能セットは、" mke2fs -t ext2 /dev/disk".

これらの機能は、ほぼ四半世紀前に初めて実装されて以来、変更されていません。そして、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 ファイル システムを読み取ることができるためです。

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

于 2016-08-01T23:15:05.390 に答える