Понимание операций команды синхронизации в Linux

Понимание операций команды синхронизации в Linux

Я пытаюсь полностью понять syncкомандные операции в ОС Linux.

После прочтения: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/

Я понял, что эта syncкоманда отвечает за сброс данных из буферов приложения в постоянное хранилище.

  1. как Linux отслеживает свои постоянные запоминающие устройства и соответствующие им запросы на запись? (внутри /dev у нас есть много файлов устройств, не все из которых представляют постоянные запоминающие устройства) где я могу увидеть ожидающие запросы на запись каждого устройства?

  2. sync (конкретно команда sync) сканирует все устройства системы на предмет запросов на запись и выполняет их все? поддерживает ли она какой-то эффективный список?

  3. как виртуальные файловые системы связаны с командой sync? сканирует ли команда sync каждую файловую систему? если да, то почему?

  4. Есть ли какая-либо литература об этом командовании и его «закулисных» операциях?

решение1

Эта страница руководстваможет быть, это немного прояснит ситуацию.

Между строк я понял, что каждая реализация файловой системы должна предоставлять метод синхронизации.

Итаксинхронизироватькоманда просто вызывает ядро, которое в свою очередь вызывает все методы синхронизации — вероятно, для всех смонтированных файловых систем.

Возможно, вы сможете найти лучшее объяснение происходящему, изучив код ядра.синхронизировать.

Связанный контент