Estou tentando entender completamente as sync
operações de comando no sistema operacional Linux.
Depois de ler: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/
Eu entendi esse sync
comando responsável por liberar dados desde os buffers do aplicativo até o armazenamento permanente.
como o Linux rastreia seus dispositivos de armazenamento permanente e suas solicitações de gravação adequadas? (dentro de /dev temos muitos arquivos de dispositivos, nem todos representam dispositivos de armazenamento permanente) onde posso ver as solicitações de gravação aguardando de cada dispositivo?
a sincronização (especificamente o comando de sincronização) verifica todos os dispositivos do sistema em busca de solicitações de gravação e executa todas elas? mantém alguma lista eficiente?
como os sistemas de arquivos virtuais estão relacionados ao comando de sincronização? o comando de sincronização verifica cada sistema de arquivos? se sim, por que?
existe alguma literatura sobre este comando e suas operações de "bastidores"?
Responder1
Esta página de manualpode esclarecer um pouco as coisas.
O que li nas entrelinhas é que toda implementação de sistema de arquivos deve fornecer um método de sincronização.
Então osincronizarcomando apenas chama o Kernel, que por sua vez chama todos os métodos de sincronização - provavelmente para todos os sistemas de arquivos montados.
Talvez você possa encontrar explicações melhores sobre o que está acontecendo lá ao examinar o código do kernel parasincronizar.