Linux での sync コマンド操作を理解する

Linux での sync コマンド操作を理解する

syncLinux OS のコマンド操作を完全に理解しようとしています。

読んだあと: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/

syncそのコマンドは、アプリケーションのバッファから永続ストレージまでデータをフラッシュする役割を担っていると理解しました。

  1. Linux はどのようにして永続ストレージ デバイスと適切な書き込み要求を追跡しますか? (/dev 内には多数のデバイス ファイルがありますが、それらすべてが永続ストレージ デバイスを表すわけではありません) 各デバイスの待機中の書き込み要求はどこで確認できますか?

  2. sync (具体的には sync コマンド) は、書き込み要求についてシステムのすべてのデバイスをスキャンし、それらをすべて実行しますか? 効率的なリストを維持しますか?

  3. 仮想ファイルシステムは sync コマンドとどのように関連していますか? sync コマンドは各ファイルシステムをスキャンしますか? そうであれば、その理由は何ですか?

  4. このコマンドとその「舞台裏」の操作に関する文献はありますか?

答え1

このマンページ少しは状況が明確になるかもしれません。

行間から読み取ったのは、すべてのファイルシステム実装で同期メソッドを提供する必要があるということです。

だから同期コマンドはカーネルを呼び出すだけで、カーネルはマウントされたすべてのファイルシステムに対してすべての同期メソッドを呼び出します。

おそらく、カーネルコードを調べると、そこで何が起こっているのかのより良い説明が見つかるでしょう。同期

関連情報