Para poder executar programas, um computador busca instruções sobre o que fazer da memória. (os programas são carregados na memória). As instruções são apenas seqüências numéricas e é a linguagem dos computadores.
Vamos construir uma linguagem simples onde
1 = cópia
3 = de,
4 = para
1 (cópia), 50,3 (de), 100,4 (a), 200;
Assim, a seqüência numérica 1,50,3,100,4,200 pode, para o computador, copiar 50 bytes de dados da memória 100 para o local de memória 200. Isso é o mesmo que mover 50 meias de uma gaveta para outra.
Agora, se a memória estiver com defeito e houver um único erro de bit, um número pode, por exemplo, mudar de 1 para 129. Portanto, supondo que qualquer número na sequência acima possa ser alterado, você poderá obter muitos erros interessantes.
Se 50 for alterado para 35 ou 188, ou seja o que for, é muito fácil entender que a quantidade de dados a serem copiados será incorreta e possivelmente poderá sobrescrever outros dados (que podem ser instruções) na memória. se 1 for alterado para 5, o computador pode nem mesmo entender que é necessário copiar qualquer coisa.
Então, como demonstrado, um erro de bit único pode levar não apenas a uma única falha, mas possivelmente a outros erros causados pelo primeiro erro também.
O Linux (ou qualquer outro sistema operativo) é basicamente o mesmo que o resto dos programas que são executados no seu computador: uma sequência de números que informa ao computador o que fazer.
Se esta sequência ficar corrompida, os programas não farão com que o computador faça o que foi planejado e, portanto, você poderá ter todos os tipos de problemas.
Lembre-se também de que música, vídeo ou imagens também são apenas uma seqüência de números, então o mesmo princípio também é aplicado. Vale a pena acrescentar que, dependendo do seu arquivo, uma corrupção pode não ser perceptível (por exemplo, um pixel ruim em uma imagem), mas isso não significa que o arquivo está ok. Pode até haver um erro de digitação no texto que você lê em uma página da Web se esse caractere específico estiver armazenado em um local de memória ruim.
Existem chips ram projetados para recuperar erros de bit único e que podem detectar erros de dois bits (ECC ram).
Espero que isso explique por que qualquer sistema operacional não funcionará se a memória que contém seus dados e / ou instruções estiver corrompida. Sua maneira mais segura de resolver isso é substituir o carneiro quebrado. Enquanto isso, você pode querer mapear a área de memória ruim usando o parâmetro do kernel memmap (o seguinte é copiado de uma resposta que recebi em outra pergunta).
memmap=nn[KMG]$ss[KMG]
[KNL,ACPI] Mark specific memory as reserved.
Region of memory to be used, from ss to ss+nn.
Example: Exclude memory from 0x18690000-0x1869ffff
memmap=64K$0x18690000
or
memmap=0x10000$0x18690000