Я пытаюсь полностью понять sync
командные операции в ОС Linux.
После прочтения: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/
Я понял, что эта sync
команда отвечает за сброс данных из буферов приложения в постоянное хранилище.
как Linux отслеживает свои постоянные запоминающие устройства и соответствующие им запросы на запись? (внутри /dev у нас есть много файлов устройств, не все из которых представляют постоянные запоминающие устройства) где я могу увидеть ожидающие запросы на запись каждого устройства?
sync (конкретно команда sync) сканирует все устройства системы на предмет запросов на запись и выполняет их все? поддерживает ли она какой-то эффективный список?
как виртуальные файловые системы связаны с командой sync? сканирует ли команда sync каждую файловую систему? если да, то почему?
Есть ли какая-либо литература об этом командовании и его «закулисных» операциях?
решение1
Эта страница руководстваможет быть, это немного прояснит ситуацию.
Между строк я понял, что каждая реализация файловой системы должна предоставлять метод синхронизации.
Итаксинхронизироватькоманда просто вызывает ядро, которое в свою очередь вызывает все методы синхронизации — вероятно, для всех смонтированных файловых систем.
Возможно, вы сможете найти лучшее объяснение происходящему, изучив код ядра.синхронизировать.