Por que o Windows bloqueia os arquivos durante a instalação enquanto o linux não bloqueia os arquivos?

0

Notei que quando um arquivo é executado no Windows (.exe ou .dll) para instalação, ele é bloqueado e não pode ser modificado, enquanto o Linux permite que o usuário os modifique por exclusão / edição.

Por que o Windows bloqueia quando o Linux não funciona? Existe uma vantagem para bloquear?

    
por BlueBerry - Vignesh4303 04.03.2014 / 14:10

1 resposta

6

Ambos os sistemas operacionais bloqueiam os dados do arquivo. Qualquer tentativa de modificar um executável enquanto ele estiver em execução ou uma biblioteca enquanto ele estiver mapeado produzirá um erro "arquivo de texto ocupado" no Linux.

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

A diferença é apenas em o que está bloqueado. O Windows bloqueia a entrada de diretório, o Linux bloqueia os dados do arquivo. Essa diferença existe por razões históricas - há muito tempo, o Windows tratava as entradas de diretório e os dados de arquivo como essencialmente equivalentes e, para manter a compatibilidade, muitas das consequências desse design foram mantidas. O Linux sempre tratou as entradas de diretório como um ponteiro para os dados do arquivo.

    
por 04.03.2014 / 14:38