LinuxOSでのsync
コマンドの操作を完全に理解しようとしています。
読んだ後: https://en.wikipedia.org/wiki/Sync_(Unix)https://lwn.net/Articles/457667/
sync
コマンドが、アプリケーションのバッファから永続ストレージに至るまでデータをフラッシュする役割を果たしていることを理解しました。
linuxは、永続ストレージデバイスとその適切な書き込み要求をどのように追跡しますか? (/ dev内には、すべてが永続ストレージデバイスを表すわけではない多くのデバイスファイルがあります)各デバイスが書き込み要求を待機していることをどこで確認できますか?
sync(具体的にはsyncコマンド)は、要求を書き込むためにすべてのシステムのデバイスをスキャンし、それらすべてを実行しますか?それはいくつかの効率的なリストを維持していますか?
どのように仮想ファイルシステムがsyncコマンドに関連していますか? syncコマンドは各ファイルシステムをスキャンしますか?もしそうなら、なぜですか?
このコマンドとその「舞台裏」操作に関する文献はありますか?
このマンページ 少し明確になるかもしれません。
行間で読んだのは、すべてのファイルシステム実装が同期メソッドを提供する必要があるということです。
したがって、syncコマンドは、カーネルを呼び出すだけです。カーネルは、すべてのsyncメソッドを呼び出します。
おそらく、syncのカーネルコードを調べると、そこで何が起こっているのかについてのより良い説明を見つけることができます。