AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 449315
Accepted
scrapy
scrapy
Asked: 2018-06-13 05:37:05 +0800 CST2018-06-13 05:37:05 +0800 CST 2018-06-13 05:37:05 +0800 CST

Algum conceito confuso: ptmx e tty

  • 772

Todos os comandos a seguir são executados no meu terminal debian.

ls /dev |grep ptmx
/dev/ptmx

ls  /dev/pts
0  1  ptmx 

Qual é a diferença entre /dev/ptmx e /dev/pts/ptmx?

ls  /dev/tty* |sort
/dev/tty
/dev/tty0
/dev/tty1
/dev/tty10

Existe uma relação entre /dev/tty e /dev/tty0 (/dev/tty1....) ?
/dev/tty controla todos os outros /dev/tty[number] ?

tty
  • 1 1 respostas
  • 5999 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2018-06-13T09:21:01+08:002018-06-13T09:21:01+08:00

    /dev/ptmxé o padrão, /dev/pts/ptmxé adicionado para contêineres de software (Docker etc.) e outros casos em que você precisa de várias instâncias do sistema de devptsarquivos.

    A natureza dos nós do dispositivo

    Você deve perceber que a "mágica" de um nó de dispositivo não está em seu nome, mas nos números de dispositivos principais e secundários que ele foi criado para incorporar.

    Por exemplo, se você tiver o privilégio apropriado, você pode usar mknodpara criar um nó de dispositivo de caractere com maior 1 e menor 3 com qualquer nome, em qualquer sistema de arquivos no estilo Unix e - a menos que o sistema de arquivos tenha a nodevopção mount - ele se comportará exatamente como /dev/null, porque para todos os efeitos, será mais uma realização de /dev/null.

    Da mesma forma, ambos /dev/pts/ptmxe /dev/ptmxsão dispositivos de caracteres com o número principal 5 e o número secundário 2. Portanto, eles fornecerão acesso à mesma funcionalidade dentro do kernel.

    $ ls -l /dev/ptmx /dev/pts/ptmx
    crw-rw-rw- 1 root tty  5, 2 Jun 12 20:14 /dev/ptmx
    c--------- 1 root root 5, 2 Jun 12 12:26 /dev/pts/ptmx
    

    O tipo de nó de dispositivo (caractere ou bloco) e os números de dispositivo principal e secundário juntos definem com qual driver de dispositivo de kernel esse nó de dispositivo faz interface. O kernel não se importa com nomes - ele fornece nomes padrão para udev, mas você está livre para reprojetar completamente o esquema de nomenclatura do dispositivo se quiser. Você pode criar nós de dispositivo fora do /dev, se necessário.

    No Debian 9, o /dev/pts/ptmxtem permissões definidas como 000 por padrão, portanto, não é esperado que seja usado. Da mesma forma no RHEL 7.5.

    O comentário na fonte do kernel 4.17 diz:

    /*
     * ptmx is a new node in /dev/pts and will be unused in legacy (single-
     * instance) mode. To prevent surprises in user space, set permissions of
     * ptmx to 0. Use 'chmod' or remount with '-o ptmxmode' to set meaningful
     * permissions.
     */
    

    "modo de instância única" refere-se ao uso como um sistema em conformidade com os padrões UNIX98 e Single Unix Specification v1. Portanto, é muito importante a compatibilidade com versões anteriores.

    O recurso de várias instâncias devptsfoi desenvolvido para suporte a contêiner. Isso pode ser confirmado lendo as versões antigas <Linux kernel source>/Documentation/filesystems/devpts.txtdo ano de 2009 ou mais :

    Para dar suporte a contêineres, agora permitimos várias instâncias do sistema de arquivos devpts, de modo que os índices de ptys alocados em uma instância sejam independentes dos índices alocados em outras instâncias de devpts.

    Para preservar a compatibilidade com versões anteriores, esse suporte para várias instâncias é ativado somente se:

    • CONFIG_DEVPTS_MULTIPLE_INSTANCES=y, e
    • A opção de montagem '-o newinstance' é especificada ao montar devpts

    IOW, o devpts agora suporta semântica de instância única e de várias instâncias.

    Quando os contêineres estão em uso, eles normalmente inicializam um namespace totalmente novo para pseudo-TTYs e podem montar outra instância do sistema de devptsarquivos dentro do contêiner (isso pode até ser omitido se o suporte a pseudo-TTY dentro do contêiner não for necessário). A presença de uma ptmxentrada no sistema de devptsarquivos pode ser útil para minimizar o trabalho necessário para inicializar o ambiente dentro do contêiner.

    • 5

relate perguntas

  • Usando o gpm como entrada do mouse em meu aplicativo iniciado em mc (comandante da meia-noite)

  • systemctl: Só funciona via tty2? (mesmo usuário logado em tty3&tty1.)

  • Executando um pseudoterminal dentro de um pseudoterminal

  • Comportamento do backspace no terminal

  • Por que o utilitário ssh é considerado um pty?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve