会发生什么内核级别当有人创建或删除文件(包括所有家务活动)?
我在谷歌上搜索了一番,但没找到好的答案。如果这个问题看起来微不足道,请原谅,但由于我对操作系统概念相当薄弱,我不知道答案。 这是一个面试问题。
答案1
您需要检查与相关命令关联的系统调用,以了解正在发生的事情的低层次概念。
跟踪系统调用的工具是strace
。
例如,如果我运行检查与使用最显着的系统调用(以及其他系统调用)strace touch foobar.txt
创建空文件相关的系统调用是:touch
open("foobar.txt", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
现在阅读man 2 open
以了解详细想法。
类似地,如果您想要跟踪rm foobar.txt
重要系统调用(以及其他系统调用)的系统调用,则可以:
unlinkat(AT_FDCWD, "foobar.txt", 0) = 0
现在读man 2 unlinkat
。
您还可以strace
使用选项将输出保存到文件以供将来诊断-o
:
strace -o s_out.txt touch foobar.txt
您还可以仅跟踪特定的系统调用:
strace -e open touch foobar.txt
另请检查man strace
。