Linux kernel 在文件开头插入1字节时进行文件分页

Linux kernel 在文件开头插入1字节时进行文件分页,linux-kernel,Linux Kernel,当我打开一个100 MB的文件,在开头附近插入一个字节,然后保存它时会发生什么?Linux内核是否真的将所有内容向后移动1个字节,从而改变每个页面,然后在插入后重新保存每个字节?这似乎效率很低 或者我认为内核可以插入一个1字节的页面来保存这个插入,但我从来没有听说过会发生这种情况。我认为所有页面都必须是标准大小,例如4KB或4MB,但不是1字节 我已经签入了许多linux/OS bks bovet/cesati、kerrisk、tanenbaum,并对内核代码进行了一些研究,但似乎没有弄清楚这一

当我打开一个100 MB的文件,在开头附近插入一个字节,然后保存它时会发生什么?Linux内核是否真的将所有内容向后移动1个字节,从而改变每个页面,然后在插入后重新保存每个字节?这似乎效率很低

或者我认为内核可以插入一个1字节的页面来保存这个插入,但我从来没有听说过会发生这种情况。我认为所有页面都必须是标准大小,例如4KB或4MB,但不是1字节

我已经签入了许多linux/OS bks bovet/cesati、kerrisk、tanenbaum,并对内核代码进行了一些研究,但似乎没有弄清楚这一点。

答案是操作系统通常不允许您在文件中的任意位置插入任意数量的字节。您的分析说明了原因——对于文件的典型实现来说,这不是一个有效的操作

通常只能在文件末尾添加或删除字节