Correndo um pseudoterminal dentro de um pseudoterminal

2

Estou tentando entender como os programas como screen e script controlam E / S.

Meu conhecimento de terminal, tty etc. vem da leitura do artigo 'desmistificado' e de todo o SE respostas eu poderia encontrar. Então, pelo que entendi, aproximadamente as interações entre os componentes funcionam da seguinte maneira:

Console(Keyboard+Screen) ---- xterm(pty master) ----- tty line discipline ---- bash/other programs(pty slave)

onde a disciplina de linha está no kernel, e xterm e bash são executados no espaço do usuário.

  1. Isso está correto?

Agora, quando consideramos programas como screen , script , eles são programas userspace que executam em um terminal (o xterm existente), mas são capazes de controlar E / S para / de outros programas. O artigo menciona que isto é porque eles correm outro pseudoterminal dentro do xterm (o pseudoterminal existente).

  1. Isso significa que eles abrem um novo par% mestre-escravo pty , controlam o fim mestre deste novo par e todos os processos lançados a partir deles são executados no novo pty escravo? Por exemplo, toda vez que eu inicio uma nova 'tela', e executo o comando tty , ele me mostra um /dev/pts/x diferente. O script também é executado de maneira semelhante?

  2. Finalmente, alguém pode me indicar algum artigo / livro onde eu possa obter um pouco mais de detalhes sobre isso (não consegui encontrar nada)?

Gostaria também de fazer referência a esta resposta, embora seja muito breve.

    
por forumulator 03.01.2018 / 17:14

1 resposta

2

① Sim, xterm e bash são executados no espaço do usuário. Como a tela e o script.

② Sim, está correto. A tela basicamente é um emulador de terminal, assim como o XTerm. Exceto, é claro, que o XTerm envia comandos ao servidor X11 para exibir o terminal, enquanto a tela envia sequências de controle & texto para um outro terminal (que pode ser um emulador de terminal ou um terminal real).

③ Os melhores detalhes sobre como esses programas funcionam provavelmente são o código-fonte. Perguntas sobre eles são bem-vindas aqui, é claro, ou dúvidas sobre códigos são bem-vindas em estouro de pilha .

    
por 03.01.2018 / 17:25