tty 파일에서 장치를 찾으시겠습니까?

tty 파일에서 장치를 찾으시겠습니까?

이게 내 우분투야

$ ls /dev/*tty*
/dev/tty    /dev/tty17  /dev/tty26  /dev/tty35  /dev/tty44  /dev/tty53  /dev/tty62      /dev/ttyS12  /dev/ttyS21  /dev/ttyS30
/dev/tty0   /dev/tty18  /dev/tty27  /dev/tty36  /dev/tty45  /dev/tty54  /dev/tty63      /dev/ttyS13  /dev/ttyS22  /dev/ttyS31
/dev/tty1   /dev/tty19  /dev/tty28  /dev/tty37  /dev/tty46  /dev/tty55  /dev/tty7       /dev/ttyS14  /dev/ttyS23  /dev/ttyS4
/dev/tty10  /dev/tty2   /dev/tty29  /dev/tty38  /dev/tty47  /dev/tty56  /dev/tty8       /dev/ttyS15  /dev/ttyS24  /dev/ttyS5
/dev/tty11  /dev/tty20  /dev/tty3   /dev/tty39  /dev/tty48  /dev/tty57  /dev/tty9       /dev/ttyS16  /dev/ttyS25  /dev/ttyS6
/dev/tty12  /dev/tty21  /dev/tty30  /dev/tty4   /dev/tty49  /dev/tty58  /dev/ttyprintk  /dev/ttyS17  /dev/ttyS26  /dev/ttyS7
/dev/tty13  /dev/tty22  /dev/tty31  /dev/tty40  /dev/tty5   /dev/tty59  /dev/ttyS0      /dev/ttyS18  /dev/ttyS27  /dev/ttyS8
/dev/tty14  /dev/tty23  /dev/tty32  /dev/tty41  /dev/tty50  /dev/tty6   /dev/ttyS1      /dev/ttyS19  /dev/ttyS28  /dev/ttyS9
/dev/tty15  /dev/tty24  /dev/tty33  /dev/tty42  /dev/tty51  /dev/tty60  /dev/ttyS10     /dev/ttyS2   /dev/ttyS29
/dev/tty16  /dev/tty25  /dev/tty34  /dev/tty43  /dev/tty52  /dev/tty61  /dev/ttyS11     /dev/ttyS20  /dev/ttyS3

7개의 가상 콘솔이 있습니다.

또한 gnome 터미널에 몇 개의 탭이 열려 있고 두 개의 emacs(일부 쉘이 실행 중이지만 모두 닫았을 수도 있음) 및 스크린 세션(그러나 지금은 닫혀 있음)이 있습니다.

  1. /dev/tty/dev/tty[[:digit:]]+이들,, 그리고 그리고 /dev/ttyprintk의 차이점은 무엇인가요 /dev/ttyS[[:digit:]]+?
  2. 각 tty 파일이 어떤 장치에 해당하는지 확인하는 방법은 무엇입니까?
  3. 어떤 사람들은 pseudo-tty의 장치 파일이 /dev/라고 말합니다.푸티, 그런데 여기에 pty 파일이나 디렉터리가 없는 이유는 다음과 같습니다.

    $ ls /dev/*pty*
    ls: cannot access /dev/*pty*: No such file or directory
    
  4. 무슨 뜻인지 잘 모르겠습니다 /dev/*pts*.

    $ ls /dev/*pts* 
    0  1  10  11  12  13  14  15  16  17  18  2  20  21  22  23  24  26  3  4  5  6  7  8  9  ptmx
    

감사드립니다!

답변1

터미널이란 무엇입니까?

터미널은 화면과 키보드로 구성되어 있으며, 컴퓨터(호스트)와 원격 통신을 하기 위해 사용됩니다. 거의 개인용 컴퓨터처럼 사용하지만 터미널은 통신하는 호스트 컴퓨터와 멀리 떨어져 있습니다(방 반대편, 심지어 세계 반대편).

질문 1

  1. /dev/tty현재 프로세스의 제어 터미널을 나타냅니다(있는 경우). 어떤 tty가 어떤 프로세스에 연결되어 있는지 확인하려면 ps -a쉘 프롬프트(명령줄)에서 이 명령을 사용하세요. tty칼럼을 읽어보세요 . 현재 사용 중인 쉘 프로세스의 경우 /dev/tty현재 사용 중인 터미널입니다.
  2. Linux에서는 PC 모니터를 콘솔이라고 하며 이와 관련된 여러 장치 특수 파일( , tty0등 ) 이 있습니다. 로그인하시면 에 있습니다 . 이동하려면 - 를 누르세요 . , 등.tty1tty2tty1tty2AltF2tty1tty2가상 터미널(때때로 "가상 콘솔"이라고도 함). 다양한 가상 터미널에 로그인하여 컴퓨터에서 동시에 여러 가지 세션을 가질 수 있습니다. "?"에서 - 키를 사용하여 Alt둘 사이를 전환 할 수 있습니다. F?원하는 가상 터미널 번호입니다. 콘솔 이라고도 하는 /dev/tty0시스템 메시지는 장치로 전송되어 콘솔에 표시될 수 있습니다. 시스템 또는 루트 사용자만 때때로 에 링크된 /dev/tty0콘텐츠 에 쓸 수 있습니다 /dev/console.
  3. ttyprintkprintk사용자가 장치에 출력하여 메시지를 보낼 수 있도록 하는 의사 TTY 드라이버입니다 .ttyprintk
  4. /dev/tty/S[[:digit:]]직렬 포트를 나타냅니다. 각 터미널은 호스트 시스템(일반적으로 PC)의 직렬 포트에 연결됩니다. 포트에는 이름/번호가 있습니다. 처음 몇 개는 ttyS0, ttyS1등 입니다. 이는 (장치) 디렉토리 ttyS2에 있는 특수 파일로 표시됩니다 . DOS나 Windows의 COM1에 해당합니다. COM2 등입니다./devttyS0ttyS1

질문 3그리고질문 4관계가 있습니다.자일스의 멋진 설명이 있습니다.여기. 그의 답변에서 발췌한 내용은 다음과 같습니다.

의사 터미널은 애플리케이션인 터미널 에뮬레이터에서 제공됩니다. 의사 터미널의 일부 유형은 다음과 같습니다.

  • GUI 응용 프로그램(예: xterm, gnome-terminal, konsole 등)은 키보드 및 마우스 이벤트를 텍스트 입력으로 변환하고 출력을 특정 글꼴로 그래픽으로 표시합니다.
  • 멀티플렉서 애플리케이션(예: screen 및 tmux)은 다른 터미널의 입력 및 출력을 릴레이하여 실제 터미널에서 텍스트 모드 애플리케이션을 분리합니다.
  • 원격 쉘 애플리케이션(예: sshd, telnetd, rlogind 등)은 클라이언트의 원격 터미널과 서버의 pty 사이에서 입력 및 출력을 중계합니다.

게다가,의사 터미널 위키 페이지, 다음 메시지가 표시됩니다.

기본 장치 파일의 이름은 일반적으로 /dev/pty[p-za-e][0-9a-f]이며 터미널 에뮬레이터와의 통신을 위한 끝점입니다. 이 [p-za-e] 명명 체계를 사용하면 최대 256개의 tty 쌍을 가질 수 있습니다. 또한 잠금 방식을 사용하지 않는 한 첫 번째 무료 pty 마스터를 찾는 것은 위험할 수 있습니다. 따라서 최신 BSD 운영 체제(예: FreeBSD)는 Unix98 PTY를 구현합니다. [4]

BSD PTY는 Unix98 pty에 의해 제거되었습니다. Unix98 pty의 명명 시스템은 의사 터미널 수를 제한하지 않으며 의사 터미널에 대한 액세스는 경쟁 조건의 위험을 초래하지 않습니다. /dev/ptmx는 "의사 터미널 마스터 멀티플렉서"입니다. 이를 열면 마스터 노드의 파일 설명자가 반환되고 연결된 슬레이브 노드 /dev/pts/N이 생성됩니다.

그래서 나는 그것을 사용할 수 없다고 생각합니다 . /dev/pty그래서 당신은 ./dev/pts

인용하다

http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-7.html

Linux: /dev/console, /dev/tty 및 /dev/tty0의 차이점

http://lkml.iu.edu/hypermail/linux/kernel/1009.0/00333.html

관련 정보