Unixでは、レコードロックは、ファイルに同時にアクセスするときにデータの一貫性を維持するために、特定の期間中にファイルの一部をロックするために使用されるテクノロジです。このメカニズムでは、強制ロックは、ファイルの一部を排他的にロックするために使用される技術です。ファイルで強制ロックが有効になっていると、他のプロセスはファイルのロックされた部分にあるデータを読み書きできません。したがって、ファイル強制ロックを有効にするには、次の手順を実行します。
Turn ON the set group id bit and turn OFF the group execute bit for the file to be lock.
したがって、これらのグループIDを保存するためにこのプロセスに必要なものは何ですか?強制ロックを有効にするためにグループIDに対して特別にこれを実行したいのはなぜですか。私は多くの参考文献を見ましたが、すべてがルールが実装された理由ではなく、ルールを説明するだけです。
答え1
LinuxカーネルドキュメントLinuxオペレーティングシステムの強制ファイルロックいくつかの歴史があります:
System V強制ロック方式は、既存のユーザーコードにできるだけ少ない影響を与えるように設計されています。このスキームは、個々のファイルを強制ロック候補としてマークし、既存の fcntl()/lockf() インターフェイスを使用して一般的なアドバイザリロックのようにロックを適用することに基づいています。
ファイルモードでグループIDビットを設定し、グループ実行ビットを削除してファイルを強制ロック候補として表示します。これは、既存のユーザープログラムを損傷しないようにSystem V実装者が選択した意味のない組み合わせです。
(より具体的には、UNIX環境の高度なプログラミング本では、これはSystem Vリリース3で行われたと言います。 )