Por que você não pode desinstalar vários programas ao mesmo tempo no Windows?

96

Por que o Windows não permite que você desinstale ou remova vários programas de uma só vez? Qual é o raciocínio por trás disso? Será que vai atrapalhar um sistema interno?

Eu não estou procurando como desinstalar vários programas ao mesmo tempo, estou simplesmente procurando uma razão pela qual não seria uma opção.

    
por Jeroen Bollen 19.03.2014 / 16:31

4 respostas

100

Se você ler alguma coisa sobre como o sistema instalador do Windows funciona, é óbvio que eles aplicaram algumas ideias de bancos de dados transacionais para programar a instalação e manutenção, sem mencionar que os arquivos .msi são um banco de dados.

Há sempre a questão em projetar qualquer banco de dados - você quer velocidade ou precisão / segurança? Dado que os instaladores podem modificar a configuração do sistema e que um acidente poderia deixar o sistema inoperável, a segurança recebeu prioridade sobre a velocidade. Uma das razões pelas quais .msi instaladores são tão lentos é porque os arquivos de reversão são feitos para cada arquivo, etc. que serão modificados e depois excluídos depois - permitindo que quaisquer alterações sejam "revertidas" se algo der errado no meio de coisas (como falta de energia ou falha do sistema).

Agora, acredito que o próprio mecanismo MSI imponha a instalação, modificação ou remoção de apenas um programa por vez - se você tentar executar um .msi enquanto outro está desinstalando, por exemplo, ele não será executado ou será Aguarde a conclusão da desinstalação em execução no momento. Os instaladores não-MSI podem não se comportar dessa maneira, pois não usam o mecanismo MSI. Mas, devido a essa decisão de design de segurança, provavelmente é por isso que appwiz.cpl insiste em permitir que apenas um desinstalador seja chamado de uma só vez.

O CCleaner permite que você inicie desinstaladores sem esperar que os que estão sendo executados anteriormente terminem. Os instaladores da MSI provavelmente ainda não funcionarão em paralelo devido ao acima.

    
por 19.03.2014 / 16:49
19

Isso realmente se aplica a programas que usam o sistema Windows Installer .

Se um programa usa seus próprios (des) sistemas de instalação, então não há nada que o impeça de executar outro desinstalador ao mesmo tempo.

O Windows Installer limita o número de instâncias para evitar conflitos que estão sendo feitos por vários programas enquanto eles estão alterando configurações e arquivos em todo o sistema (geralmente compartilhados).

A maioria dos desinstaladores rastreia o que eles estão alterando para que possam reverter com êxito se houver uma falha. Se alguém não está ciente de todas as alterações que estão sendo feitas (por outros desinstaladores), então pode realmente tornar as coisas PIOR se ele tentar reverter uma instalação com falha.

O sistema Windows Installer foi criado com a intenção de ser um sistema unificado para todos os desenvolvedores de aplicativos usarem (no Windows), para ajudar a evitar problemas como esses.

    
por 19.03.2014 / 16:40
9

Tarefas de desinstalação freqüentemente modificam arquivos que são compartilhados por vários programas, ou arquivos do sistema \ o Registro (uma razão parcial para a necessidade de poder administrativo para fazê-lo). Se várias tarefas de desinstalação fossem executadas ao mesmo tempo, elas poderiam entrar em conflito. Se você já teve uma corrida com "Hell DLL", seria o mesmo. Outros programas ou o próprio Windows podem ser deixados em um estado inconsistente.

    
por 19.03.2014 / 16:40
-1

Desinstalar programas simultaneamente, além de ter os possíveis problemas mencionados, tem muito pouco benefício: não será muito mais rápido do que desinstalar os programas sequencialmente. Desinstalar um programa é uma tarefa que envolve o disco IO. Executar vários programas que executam E / S não é mais rápido do que executá-los sequencialmente (a menos que os programas estejam instalados em dois discos físicos separados). Na verdade, é provável que seja mais lento porque as duas tarefas de IO concorrentes tornarão o cache de disco menos eficiente e as cabeças físicas do disco terão que pular de um lugar para outro.

    
por 20.03.2014 / 20:33