Quais males potenciais podem ser trazidos ao 'deletar' um kernel ativo?

5

Eu recentemente excluí meu kernel ativo do Linux e continuei usando o sistema como se nada de drástico tivesse acontecido. Há algum efeito colateral para excluir o kernel do Linux que está atualmente em uso? E quanto a outros kernels não-Windows?

    
por Tshepang 13.04.2011 / 02:49

2 respostas

6

O kernel do Linux é completamente carregado na RAM durante a inicialização. Depois que o sistema é inicializado, ele nunca volta e tenta ler qualquer coisa desse arquivo. O mesmo vale para os drivers, uma vez carregados no kernel.

Se você excluiu a única imagem do kernel no disco, a única consequência é que o sistema não pode ser reiniciado com sucesso, a menos que você instale uma imagem de kernel de substituição antes de reinicializar.

Quanto a outros sistemas operacionais, imagino que seja o mesmo, simplesmente devido à natureza dos kernels do sistema operacional. Eles são intencionalmente pequenos pedaços de código que permanecem em execução o tempo todo, portanto, não há incentivo para continuar voltando ao disco para "ver" o código novamente. Está sempre na memória. (RAM ou VM.)

    
por 13.04.2011 / 04:05
2

Bem, se você tiver acesso adequado e ironicamente, o suporte do kernel para /dev/kmem poderá sobrescrever o kernel em execução na RAM. Completamente realizável com dd ou cat . Você provavelmente fará o kernel entrar em pânico ou bloquear a máquina.

Existe uma opção de kernel que "netuers" /dev/kmem onde somente permite o acesso a determinados intervalos de endereços (espaço de endereçamento PCI entre outros) que eu imagino estar habilitado na maioria dos kernels de distribuição de ações em um sistema real, a menos que você tenha compilado o kernel. Mas ... tente isso em uma instância do Linux rodando em seu navegador completamente em Javascript : cat /dev/zero > /dev/ram - algo semelhante aconteceria em um sistema real.

No entanto, o Linux fornece um recurso (opcional) chamado kexec , que será carregado em outro kernel e, em seguida, será executado, sobrescrevendo o kernel atualmente em execução. Para fazer isso com segurança, isso deve ser feito quando nenhum driver / dispositivo / arquivo estiver ativo, ou seja, o sistema deve passar pelos procedimentos de desligamento, desmontar todos os discos, etc., da mesma forma que estava sendo desligado antes da "transferência". Pode ser usado para reinicializar um sistema sem passar pelo BIOS. Você também pode ignorar totalmente todas essas precauções e kexec para um kernel ou qualquer código, se desejar no meio de um sistema em execução - com o risco de corrupção semelhante ao desligamento sem um desligamento adequado.

    
por 27.12.2011 / 02:49

Tags