Existem duas “portas seriais virtuais” na implementação do terminal virtual?

4

A imagem a seguir representa como um terminal físico (por exemplo: VT100 ) foi conectado a um computador executando o Unix (por exemplo: PDP-11 ):

Observeoscomponentesdestacadosemazul,oquemostraqueoterminalestáconectadoaocomputadoratravésdeumaportaserial(aimagemdiz"UART" em vez de "porta serial"). Então, basicamente, o terminal tem uma porta serial conectada através de um fio a uma porta serial no computador (a imagem também não mostra um componente para a porta serial do terminal).

Você pode alterar a taxa de transmissão da porta serial no lado do terminal, e também pode alterar a taxa de transmissão da porta serial no lado do computador (consulte aqui ).

Agora, a imagem a seguir representa como um terminal virtual é implementado em uma máquina Linux / Unix moderna:

Observeoscomponentesdestacadosemazul,oquemostraqueoemuladordeterminalestáconectadodiretamenteàdisciplinadelinhasemusarduas"portas seriais virtuais".

Agora minha pergunta é: esta imagem (a implementação do terminal virtual) mostra os componentes inteiros, ou deveria existir uma "porta serial virtual" após o emulador de terminal e outra "porta serial virtual" antes da disciplina de linha? / p>

Se essas duas "portas seriais virtuais" existirem, você também pode alterar sua taxa de transmissão?

Eu tenho estas duas imagens de aqui .

    
por Joseph 31.10.2017 / 13:09

2 respostas

1

A disciplina de linha controla o manuseio de caracteres especiais (como o controle de fluxo de software ou caracteres que geram sinais) sobre a "linha" (ou seja, fio elétrico nos primeiros sistemas unix). Existem várias disciplinas de linha possíveis, e o driver tty chama a disciplina de linha responsável por esse tty.

Portanto, não faz absolutamente nenhum sentido ter uma "porta serial virtual" na frente da disciplina de linha. Não na primeira foto, e não na segunda foto.

A disciplina de linha, por sua vez, apenas chama outras partes do kernel (o driver de porta serial (USB, UART, qualquer), ou o emulador para um console virtual, etc.) e também é chamado pelo driver correspondente se caracteres chegar. Então, em certo sentido, este é um "switch virtual", onde você pode ligar em diferentes componentes.

Mas não há nenhum par de drivers de porta serial que de alguma forma simulem o envio de um byte como bits sobre a linha com uma determinada velocidade e, em seguida, remontá-lo de bits como um byte. Porque isso seria desnecessário lento, e não dá uma funcionalidade.

No entanto, você pode definir a taxa de transmissão, a quantidade de bits de parada, etc. para todos os tty's. Esses parâmetros são apenas ignorados pelos drivers que não precisam deles, como o console virtual.

    
por 01.11.2017 / 07:44
-1

As taxas de transmissão são definidas em /etc/inittab :

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

A taxa de transmissão é 38400 neste exemplo.

    
por 31.10.2017 / 13:19