Uma instância em execução do kernel do Linux fica "corrompida" quando algo desonesto acontece. O kernel inicializa no estado não contaminado e fica contaminado se uma dessas coisas desonestas acontecer. A lista completa de eventos duvidosos está documentada em sysctl/kernel.txt
, e o atual estado de contaminação do kernel pode ser lido a partir de /proc/sys/kernel/tainted
(0 significa não contaminado).
O motivo mais comum para a contaminação é o carregamento de um módulo que declara uma licença diferente da GPL. Todos os módulos oficiais do kernel possuem uma licença GPL. Drivers não oficiais ou experimentais que se declaram como tais também marcam o kernel como corrompido. Alguns erros internos do kernel ou erros de hardware são recuperáveis, então o sistema continua, mas marca o kernel como corrompido.
A mancha não tem efeito no kernel em execução, mas aparece em vários rastreios e logs, incluindo a saída de lsmod
. O efeito social da mancha é que os mantenedores do kernel geralmente não o ajudarão se você estiver executando um kernel corrompido: você escolheu fazer algo suspeito e tem que viver com as conseqüências.