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

Blu*_*303 0 windows linux file-management filesystems installation

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

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

Dav*_*rtz 6

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

$ gcc foo.c -o f
$ ./f &
[1] 2017
$ ls > f
bash: f: Text file busy
Run Code Online (Sandbox Code Playgroud)

所不同的只是在什么被锁定。Windows 锁定目录项,Linux 锁定文件数据。这种差异的存在是由于历史原因——很久以前,Windows 将目录条目和文件数据视为本质上等同的,并且为了保持兼容性,该设计的许多结果都被保留了下来。Linux 一直将目录条目视为指向文件数据的指针。