我正在尝试完全理解sync
linux操作系统中的命令操作。
看完之后: https://en.wikipedia.org/wiki/Sync_(Unix) https://lwn.net/Articles/457667/
我理解该sync
命令负责将数据从应用程序的缓冲区一直刷新到永久存储。
linux 如何跟踪它的永久存储设备及其合适的写入请求? (在 /dev 中,我们有许多设备文件,并非所有文件都代表永久存储设备)我在哪里可以看到每个设备正在等待写入请求?
同步(特别是同步命令)是否扫描所有系统设备以查找写入请求并执行所有请求?它是否维护一些有效的列表?
虚拟文件系统如何与sync命令相关?同步命令是否扫描每个文件系统?如果是这样为什么?
有没有关于这个命令及其“后台”操作的文献?
答案1
这个联机帮助页可能会澄清一些事情。
我从字里行间读到的是,每个文件系统实现都必须提供同步方法。
所以同步命令只调用内核,内核又调用所有同步方法 - 可能适用于所有已安装的文件系统。
在查看内核代码时,也许您可以找到关于那里发生的事情的更好解释同步。