为什么 Windows 在安装过程中锁定文件而 linux 不锁定文件

为什么 Windows 在安装过程中锁定文件而 linux 不锁定文件

我注意到,当在 Windows 上执行文件(.exe 或 .dll)进行安装时,它会被锁定并且无法修改,而 Linux 允许用户通过删除/编辑来修改它们。

为什么 Windows 会锁定而 Linux 不会?锁定有什么好处吗?

答案1

两种操作系统都会锁定文件数据。任何在可执行文件运行时对其进行修改或在映射库时对其进行修改的尝试都会在 Linux 上产生“文本文件繁忙”错误。

$ gcc foo.c -o f
$ ./f &
[1] 2017
$ ls > f
bash: f: Text file busy

区别仅在于什么被锁定。Windows 锁定目录条目,Linux 锁定文件数据。这种差异存在历史原因——很久以前,Windows 将目录条目和文件数据视为基本等同,并且为了保持兼容性,保留了该设计的许多后果。Linux 一直将目录条目视为指向文件数据的指针。

相关内容