Como o bash imprime na tela se não com um framebuffer? [duplicado]

2

Eu notei que um framebuffer nem sempre existe em alguns sistemas. Nesses casos, como o bash imprime na tela (supondo que alguma vez use dispositivos fb)? Como não há dispositivo framebuffer, isso significa que o bash sabe como cada placa gráfica funciona e pode gravar diretamente em seus registradores, ou usa alguma outra API?

    
por AlexRamallo 20.01.2016 / 03:36

2 respostas

1

Shells são utilitários de linha de comando - eles lêem entrada e gravam saída. Normalmente shells interativas são abertas em dispositivos de terminal - que são geralmente dispositivos de caracteres em modo serial com buffer de kernel - algo como | pipes mas com coisas extras como controle de modem e modos de interpretação de i / o. Algum outro programa lê e interpreta dados gravados em dispositivos terminais para exibição e grava sua entrada padrão no final do dispositivo terminal que o shell lê.

Este é um emulador de terminal . Pelo menos - essa é a configuração típica. Um terminal pode ser um terminal real - como uma grande peça de hardware brilhante repleta de tubos de vácuo do tamanho de sua cabeça, ou talvez seja uma impressora do tamanho de um espaço em torno da qual você deve receber cuide de onde você descansa suas mãos para não perdê-las.

Mas normalmente um emulador de terminal é um programa que entende um protocolo mais ou menos padrão para configuração de texto e pode traduzir a entrada / saída do shell em algo que pode ser desenhado em uma tela. O kernel linux vem com os consoles virtuais do kernel - que são portas de exibição integradas e às quais ele conecta seu emulador de terminal integrado. xterm é outro tipo de emulador de terminal - um que atrai para um framebuffer por meio do protocolo X11 .

No entanto, é feito, porém, o shell é bastante removido do processo.

    
por 20.01.2016 / 05:22
0

Primeiro, o bash não imprime em uma tela nem no dispositivo framebuffer diretamente. Ele apenas grava sua saída em um descritor de arquivo simples.

Em segundo lugar, o Linux suporta consoles de modo gráfico e consoles de modo de texto. Portanto, quando sua configuração não usa o driver framebuffer, o console do modo de texto é ativado. Existe um bom artigo na wikipedia sobre o tema.

    
por 20.01.2016 / 04:42