了解 linux 中的同步命令操作

hut*_*chi 5 storage linux filesystems synchronization

我正在尝试完全理解synclinux 操作系统中的命令操作。

阅读后:https : //en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/

我知道该sync命令负责将数据从应用程序的缓冲区一直刷新到永久存储。

  1. linux 如何跟踪它的永久存储设备及其合适的写入请求?(在 /dev 中,我们有许多设备文件,并非所有文件都代表永久存储设备)我在哪里可以看到每个设备正在等待写入请求?

  2. 同步(特别是同步命令)是否会扫描所有系统设备以写入请求并执行所有这些请求?它是否维护了一些有效的列表?

  3. 如何与同步命令相关的虚拟文件系统?sync 命令会扫描每个文件系统吗?如果是为什么?

  4. 是否有任何关于此命令及其“后台”操作的文献?

Nil*_*ils 4

这个联机帮助页可能会澄清一些事情。

我从字里行间读到的是,每个文件系统实现都必须提供同步方法。

因此,sync命令只调用内核,而内核又调用所有同步方法 - 可能适用于所有已安装的文件系统。

在查看sync的内核代码时,也许您可​​以找到关于那里发生的事情的更好解释。