Problema do console estranho no linux, geralmente logo antes da OOM

2

Então eu notei isso acontecer mais de uma vez.

Se bem me lembro, isso geralmente acontece logo antes do OOM, e / ou kernel panic que se você digitar em um tty e então tentar voltar, os mesmos caracteres são impressos ao contrário.

Isso foi apenas uma singularidade interessante para mim no passado, mas aconteceu de novo recentemente, e fiquei mais curioso sobre o que realmente está causando isso. (Isso está enviando os caracteres de volta para STD_OUT ou algo assim?)

Alguém tem alguma ideia? Tenho a sensação de que a resposta será interessante.

Estou claro, se você digitar hello world , tente retroceder:

hello world..dlrow olleh
    
por Kevin Quinn 23.06.2011 / 07:18

1 resposta

2

Isso se deve ao terminal ter configurações do terminal confusas - você pode ver isso fazendo stty -a e procurando a opção echoprt que controla isso. A partir da página man stty (1) , esta opção "ecoa os caracteres apagados para trás, entre '\' e '/ '' ".

Para corrigir isso rapidamente, digite stty sane e, em seguida, algo como stty erase '^H' para retrocesso ou 'stty erase' ^? ' para excluir (são dois caracteres no final entre aspas). Veja o backspace / delete parte do Linux HOWTO para mais.

Seria interessante ver se isso acontece em todos os consoles Linux (Alt-F1, Alt-F2, etc) e / ou nas pseudo-tty usadas nas janelas de terminal baseadas em X. Não é possível descobrir como a condição OOM causaria isso, pois é gerenciada pelo kernel.

Nota histórica: a opção echoprt foi originalmente projetada para terminais de teleprinter que tinham uma impressora em vez de uma tela, como era a única maneira de mostrar uma operação backspace / delete - estes eram os terminais padrão quando o Unix era criado. Este artigo tem uma boa explicação do subsistema do terminal Linux (TTY).

    
por 26.08.2011 / 09:41

Tags