Por que precisamos de tantos pacotes de emuladores de terminal e qual é o seu uso?

8

Isto é algo que tem sido tão confuso para mim há muito tempo.
Estou usando o Linux, mas tenho lacunas na compreensão de certos aspectos e um é sobre o terminal.
Como vim a entender, o que queremos dizer com o console é um emulador de terminais antigos.
Mas eu não consigo entender qual é o problema com isso.
Como eu li os melhores terminais antigos foram a série VT eo tipo de gráficos vetoriais (Tektronix). Então eu suponho que os emuladores atuais imitem estes.
Agora minhas necessidades no Linux em relação à apresentação de telas atingiram tanto quanto usar um esquema de cores para o vim e apreciar as cores ao fazer o diff nos arquivos.
Mas quando tenho problemas, geralmente encontro conselhos para definir xterm-256 ou screen-256 etc.
Além disso, quando eu faço: ls /lib/terminfo/ eu vejo cerca de uma dúzia de diretórios com configuração para (suponho) tipos diferentes de tipos de emulador.

Então, minha pergunta é: como esses xterm-256 ou screen-256 e o resto se encaixam na ideia de emular apenas os terminais superiores nas últimas décadas?
Qual é a necessidade de ter tantos tipos de terminais? É algo que eu deveria procurar mais? E por que hoje com a tecnologia moderna precisa emular esses terminais antigos como VT e não ter algo novo?

Talvez minhas necessidades sejam simples demais para apreciar as sutilezas disso, mas é algo que me intrigou muito. Desde, por exemplo, se eu tiver um problema com um esquema de cores eu apenas copiar e colar o que eu encontrar no google sobre TERM etc sem realmente entender o que estou fazendo ou qual é o problema.

Se alguém me ajudar a entender isso, seria muito apreciado

    
por Jim 30.01.2014 / 22:14

1 resposta

8

Os aspectos estranhos do Unix geralmente existem por um bom motivo, então você está certo em procurar um. Neste caso, porém, a boa razão há muito se tornou obsoleta, e você está olhando para um artefato antigo de uma época passada.

Apenas sobre o único "terminal" existente hoje é xterm & variantes. Suas capacidades variam muito ligeiramente, de maneiras que importam apenas para alguns programas. Se você apenas usa o xterm, e nunca toca na variável TERM ou espia no banco de dados terminfo, sua vida geralmente será melhor.

A variável TERM comunica informações sobre o terminal para a aplicação através do ambiente, cf. man xterm . A alteração não altera o terminal ; apenas representa uma funcionalidade de terminal diferente para o aplicativo.

Nos dias de terminais com fio, era necessário configurar TERM para representar o terminal conectado. No caso do xterm, o software pode definir a variável em si. Um tour rápido pelos docs do vim mostra (como você menciona no seu comentário) que você tem que mudá-lo para suportar a cor. Isso é progresso para você.

why today ... emulate these old terminals like VT and not have something new?

A resposta é tanto antropológica quanto técnica.

Antes da GUI, o acesso a máquinas Unix era via terminais burros, por exemplo VT-100. Shells e utilitários como top já existiam. Quando a GUI se tornou tecnologicamente prática (na qual o X desempenhou um papel) na década de 1980, os usuários do Unix ainda precisavam usar esses programas, então o xterm foi inventado para emular o OLD VT-100.

Foi concebido como um paliativo. "Todo mundo sabia" que os terminais eram o passado e GUIs eram o futuro, e todos esperavam que "tudo" fosse acessado via GUI. O Macintosh original, por exemplo, não tinha chaves de seta porque por que você precisaria delas ? Certamente a linha de comando enigmática do Unix, com suas vogais ausentes e ajuda indefesa

$ help
help: not found

em breve seguiria o caminho da memória do tambor e dos cartões perfurados. E isso aconteceu, de certa forma: 9 usuários em 10 executando o Windows ou OS X nunca vêem a linha de comando, exceto quando o suporte técnico cai para consertar alguma coisa.

Em seguida, duas coisas aconteceram com a GUI do Unix, por exemplo. O Windows, em particular, esgotou o dinheiro do mercado. Houve um grande movimento para padronizá-lo (cf. Sun News e OSF Motif), e então parou por volta de 1990. Naquela mesma época, a Internet decolou e as coisas gráficas no Unix passaram para o navegador. A motivação e o dinheiro (praticamente a mesma coisa) para projetar uma GUI completa para o Unix e renderizar tudo na seção 8 do manual obsoleto desapareceram.

Há outra razão, também, que muito poucos previram: a linha de comando tem certas vantagens sobre a GUI. Pipelines e expressões regulares são notavelmente poderosas, para não mencionar repetíveis com scripts e histórico de shell. Mesmo no contexto de uma GUI, a linha de comando permaneceu útil . Tanto é assim que continua a ser reforçada até hoje.

Como sua pergunta sugere, o que é necessário é um reexame da suposição de que a GUI triunfaria e uma reinvenção do terminal como parte integrante dele. Precisamos de um novo terminal, com fontes proporcionais e gráficos endereçáveis por bits no terminal .

Infelizmente, ninguém parece pronto para fazer isso. Nenhuma entidade corporativa irá empreendê-lo; o mercado é enorme, mas ainda é apenas uma pequena proporção de usuários de computador. O financiador lógico seria uma agência do governo como a DARPA, mas a pesquisa sobre interface humana é considerada "feita" atualmente (já não inventamos a GUI?). Até que mais pessoas - muito mais pessoas - reconheçam a necessidade, o xterm é seu amigo e provavelmente também será amigo do seu neto.

    
por 01.02.2014 / 20:11