30

Posix compliance is a standard that is been followed by many a companies. I have few question around this area, 1. does all the file systems need to be posix compliant? 2. are applications also required to be posix compliant? 3. are there any non posix filesystems?

4

3 に答える 3

31

「POSIXファイルシステムのセマンティクスが必要」の領域では、通常、次のことを意味します。

  • 階層的なファイル名と解決 (., .., ...) を許可
  • 少なくともクローズからオープンのセマンティクスをサポートします
  • umask/unix パーミッション、3 ファイルタイム
  • 8bitバイト対応
  • 同じファイルシステムでアトミックな名前変更をサポート
  • fsync()/dirfsync() 耐久性の保証/制限
  • マルチユーザー保護をサポート (ファイルのサイズを変更すると、以前のコンテンツではなく 0 バイトが返されます)
  • 開いているファイルの名前を変更して削除します (Windows はこれを行いません)。
  • '/' と \0 以外のすべてのバイトをサポートするファイル名

ファイル名と 32 ビット ファイル ポインター (最小) だけでなく、symlink/hardlink のサポートも意味する場合があります。場合によっては、fcntl()ロックmmap()truncate()AIO などの特定の API 機能を参照するためにも使用されます。

于 2014-04-17T15:49:52.610 に答える
8

分散ファイル システムの POSIX 準拠について考えるとき、異なるノードで実行されている複数のプロセスが、ローカル ファイル システムを使用して同じノードで実行されている場合と同じ動作をする場合、分散ファイル システムは POSIX 準拠であるという一般的な基準を使用します。これには基本的に 2 つの意味があります。

  1. システムに複数のバッファ キャッシュがある場合は、キャッシュの一貫性を確保する必要があります。
    • そのためのさまざまなメカニズムには、ロックとリースが含まれます。この場合の不適切な動作の例としては、ライターが 1 つのノードで正常に書き込みを行った後、別のノードのリーダーが古いデータを受信することがあります。
    • ただし、ライター/リーダーが独立して互いに競争している場合、どちらの操作が最初に発生するかがわからないため、正しい定義済みの動作がないことに注意してください。しかし、それらがメッセージングのような何らかのメカニズムを介して相互に調整している場合、ライターが完了し (特に同期呼び出しを発行する場合)、リーダーにメッセージを送信し、それがリーダーによって正常に受信された場合、それは正しくありません。リーダーは古いデータを読み取って取得します。
  2. データが複数のデータ サーバーにまたがってストライプ化されている場合、複数のストライプにまたがる読み取りと書き込みはアトミックである必要があります。
    • たとえば、ライターが同じストライプにまたがる書き込みと同時に、リーダーがストライプにまたがる読み取りを行う場合、リーダーは書き込み前のすべてのストライプを受け取るか、書き込み後のすべてのストライプを受け取る必要があります。誤った動作は、読者が古いものと新しいものを受け取ることです。
    • 上記とは逆に、ライター/リーダーが競合しているときでも、この動作は正しく機能する必要があります。

私の例は単一のファイルへの読み取り/書き込みでしたが、正しい動作には、単一のファイルへの書き込み/書き込み、および stat/readdir/mkdir/unlink/etc などの呼び出しによる階層的な名前空間への読み取り/書き込みおよび書き込み/書き込みも含まれます.

于 2017-01-04T18:35:35.017 に答える
5

非常に客観的な方法で質問に答えます。

1. すべてのファイル システムが posix に準拠している必要がありますか? 実際にはありません。実際、POSIX は一般的な運用システムの標準を定義しています。あると便利ですが、必須ではありません。

2. アプリケーションも posix に準拠する必要がありますか? いいえ。

3. 非 posix ファイルシステムはありますか? HDFS (hadoop ファイル システム)

于 2015-10-03T14:28:55.543 に答える