Notei que há muitas menções pty
e, tty
em alguns projetos de código aberto, alguém poderia me dizer o que eles significam e qual é a diferença entre eles? Obrigado!
fonte
Notei que há muitas menções pty
e, tty
em alguns projetos de código aberto, alguém poderia me dizer o que eles significam e qual é a diferença entre eles? Obrigado!
"tty" originalmente significava "teletipo" e "pty" significa "pseudo-teletipo".
No UNIX, / dev / tty * é qualquer dispositivo que age como um "teletipo", ou seja, um terminal. (Chamado teletipo, porque era o que tínhamos para terminais naqueles dias de folga.)
Um pty é um pseudotty, uma entrada de dispositivo que age como um terminal para o processo de leitura e gravação lá, mas é gerenciado por outra coisa. Eles apareceram pela primeira vez (pelo que me lembro) para o X Window, a tela e afins, onde você precisava de algo que agisse como um terminal, mas pudesse ser usado em outro programa.
Ctrl-Alt-F{1..6}
e eles estão conectados/dev/tty{1..6}
. O console do Linux não é um terminal físico, mas está conectado a umttyN
(não aptyN
). Estou faltando alguma coisa aqui?Um tty é um terminal (significa teletype - os terminais originais usavam uma impressora de linha para saída e um teclado para entrada!). Um terminal é basicamente apenas um dispositivo de interface do usuário que usa texto para entrada e saída.
Um pty é um pseudo-terminal - é uma implementação de software que aparece no programa anexado como um terminal, mas, em vez de se comunicar diretamente com um terminal "real", transfere a entrada e a saída para outro programa.
Por exemplo, quando você faz o ssh em uma máquina e executa
ls
, ols
comando está enviando sua saída para um pseudo-terminal, cujo outro lado está conectado ao daemon SSH.fonte
*nix
o sistema operacional baseado cria esses pseudo terminais.sshd
exterm
são dois exemplos típicos.tty: teletipo. Geralmente refere-se às portas seriais de um computador, às quais os terminais foram conectados.
pty: pseudoteletype. O kernel forneceu uma porta pseudo-serial conectada a programas que emulam terminais, como xterm ou screen.
fonte
Se você executar o comando mount sem argumentos de linha de comando, que exibe os sistemas de arquivos montados em seu sistema, notará uma linha semelhante à seguinte: nenhum em / dev / pts type devpts (rw, gid = 5, mode = 620) Isso indica que um tipo especial de sistema de arquivos, devpts, é montado em / dev / pts. Este sistema de arquivos, que não está associado a nenhum dispositivo de hardware, é um sistema de arquivos "mágico" criado pelo Kernel do Linux. É semelhante ao sistema de arquivos / proc
Como o diretório / dev, / dev / pts contém entradas correspondentes aos dispositivos. Porém, diferentemente do / dev, que é um diretório comum, / dev / pts é um diretório especial criado dinamicamente pelo kernel Linux. O conteúdo do diretório varia com o tempo e reflete o estado do sistema em execução. As entradas em / dev / pts correspondem a pseudo-terminais (ou pseudo-TTYs ou PTYs).
O Linux cria um PTY para cada nova janela do terminal que você abre e exibe uma entrada correspondente em / dev / pts. O dispositivo PTY atua como um dispositivo de terminal - ele aceita entrada do teclado e exibe a saída de texto dos programas executados nele. . PTYs são numerados e o número PTY é o nome da entrada correspondente em / dev / pts.
Por exemplo, se o número PTY da nova janela do terminal for 7, chame este comando de outra janela:% echo 'Sou um di virtual>> / dev / pts / 7 A saída aparece na nova janela do terminal.
fonte
Um
tty
é um física t erminal- t elet y porta pe em um computador (normalmente uma porta série).A palavra teletipo é um curto-circuito da máquina de escrever telégrafo ou dispositivo de teletipo da década de 1930 - ela própria um dispositivo eletromagnético que substituiu as máquinas de codificação de telégrafo das décadas de 1830 e 1840.
TTY - Teletypewriter 1930
Um
pty
é um p seudo- t ELE ty pe porta fornecido por um computador com sistema operacional Kernel para programas de software Connect emulando terminais, tais como ssh, xterm, ou na tela.PTY - PseudoTeletype
Um terminal é simplesmente a interface de usuário de um computador que usa texto para entrada e saída.
Implementações de SO
Estes usam p seudo- t ELE ty pe portas no entanto, sua nomeação e implementações divergiram um pouco.
Linux monta um especial do sistema de arquivos devpts em / dev (o 's', presumivelmente, de pé para s erial) que cria uma entrada correspondente na
/dev/pts
para cada nova janela de terminal de abrir, por exemplo,/dev/pts/0
O macOS / FreeBSD também usa a estrutura de arquivos / dev , no entanto, eles usam uma
TTY
convenção de nomenclatura numeradattys
para cada nova janela de terminal que você abrir, por exemplo/dev/ttys002
O Microsoft Windows ainda tem o conceito de uma
LPT
porta para terminais de impressora em linha no Shell de Comando para saída para uma impressora.fonte