pty와 tty는 무엇을 의미합니까?


237

나는 많은 오픈 소스 프로젝트에 대해 언급 pty하고 tty있으며, 누군가가 무엇을 의미하는지와 그 차이점은 무엇인지 말해 줄 수 있습니까? 감사!

답변:


225

"tty"는 원래 "teletype"을 의미하고 "pty"는 "pseudo-teletype"을 의미합니다.

UNIX에서 / dev / tty *는 "teletype"처럼 작동하는 장치, 즉 터미널입니다. (이것은 우리가 그날 밤 터미널에서 가지고 있었던 것이기 때문에 전화 텔레타이프였습니다.)

pty는 의사 읽기 (pseudotty)로 프로세스 읽기 및 쓰기에 대한 터미널과 같은 역할을하지만 다른 것에 의해 관리되는 장치 항목입니다. 그것들은 터미널처럼 작동하지만 다른 프로그램에서 사용될 수있는 무언가가 필요한 X Window 및 화면 등에 처음으로 나타났습니다.


나는 주로 Telnet, rsh 및 rlogin을 지원하기 위해 Unix에 추가 된 ptys를 생각합니다.
Fred Foo

5
@CharlieMartin pty가 "터미널처럼 작동하는 것"은 무엇을 의미합니까? 왜 그런 걸 원할까요? 그리고 다른 프로그램이 어떻게이 pty를 사용합니까? 내 생각에 pty는 명령이나 프로그램을 위해 실제 터미널 (tty)에 무언가를 릴레이합니다. 이 올바른지? 그렇지 않다면 내 추측을 무시하고 내 의견의 첫 부분에 대답하십시오.
OKGimmeMoney

16
터미널을 객체로 생각하십시오. 한쪽 끝을 stdin에 연결하고 다른 쪽 끝을 stdout에 연결합니다. 실제 TTY는 실제 터미널에 연결됩니다. PTY는 프로그램, 예를 들어 xterm, 명령 창 또는 쉘 창에 연결됩니다. 그것은 다음 프로그램에 대한 거짓말과 정말 말한다 그렇다 터미널, 정직. PTY 이전에는 이와 같은 프로그램을 파이프와 연결했지만 파이프는 흐름 제어가없는 것처럼 큰 차이가 있습니다. PTY가 이것을 해결하는 것처럼 보였습니다.
Charlie Martin

3
@CharlieMartin "실제 TTY는 물리적 터미널에 연결됩니다". Linux 콘솔은 어떻습니까? 예를 들어, Ubuntu 시스템에는 Linux 콘솔 Ctrl-Alt-F{1..6}이 있으며에 연결되어 /dev/tty{1..6}있습니다. Linux 콘솔은 실제 터미널이 아니지만 ttyN(에 연결되지 않은)에 연결되어 ptyN있습니다. 여기에 뭔가 빠졌습니까?
Utku

1
LINUX와 관련하여 이상한 경우가없는 확실한 것은 말할 수 없습니다. 이 경우 Linux 콘솔은 / dev / tty dev 항목을 사용하지만 여러 가지 항목에 연결되어 사용자에게 전달되는 커널 기능입니다. en.wikipedia.org/wiki/Linux_console
Charlie Martin

234

tty는 터미널입니다 ( 텔레타이프 (teletype) – 원래 터미널은 출력을 위해 라인 프린터를 사용하고 입력을 위해 키보드를 사용했습니다!). 터미널은 기본적으로 입력 및 출력에 텍스트를 사용하는 사용자 인터페이스 장치입니다.

pty는 의사 터미널 (pseudo-terminal)입니다. 이것은 터미널처럼 연결된 프로그램에 나타나는 소프트웨어 구현이지만 "실제"터미널과 직접 통신하는 대신 입력과 출력을 다른 프로그램으로 전송합니다.

예를 들어, machine에 ssh in 및 run을 실행 ls하면 ls명령이 출력을 의사 터미널로 전송하고 다른 쪽은 SSH 데몬에 연결됩니다.


1
PTY에 대한 "정확한"예를 좀 더 주시겠습니까? 나는 아직도 그들이 어디로 와서 어떻게 전화를했는지 이해하지 못했습니다. 감사합니다
user3085931

*nix운영 체제가 언제 그리고 어떻게 기반 운영 체제가이 의사 터미널을 작성 하는지 도울 수 있습니까 ?
크리슈나 오자

@darth_coder : 응용 프로그램이 요청할 때 생성됩니다. 새로운 그래픽 터미널 창을 열거 나 원격으로 로그인하는 등의 작업을 수행 할 때 발생합니다.
caf

@caf는 터미널 생성을 담당하는 커널 모듈 또는 데몬의 이름을 지정할 수 있습니다.
Krishna Oza

@darth_coder : 모든 응용 프로그램이 그렇게 할 수 있습니다. sshd그리고 xterm두 전형적인 예이다.
caf

21

tty : 텔레타이프. 일반적으로 터미널이 연결된 컴퓨터의 직렬 포트를 나타냅니다.

pty : pseudoteletype. 커널은 xterm 또는 화면과 같은 터미널을 에뮬레이트하는 프로그램에 연결된 의사 직렬 포트를 제공했습니다.


19

시스템에 마운트 된 파일 시스템을 표시하는 명령 행 인수없이 mount 명령을 실행하면 다음과 같은 행이 나타납니다. none on / dev / pts type devpts (rw, gid = 5, mode = 620) 이것은 특별한 유형의 파일 시스템 인 devpts가 / dev / pts에 마운트되어 있음을 나타냅니다. 하드웨어 장치와 관련이없는이 파일 시스템은 "매직"파일 시스템입니다. 리눅스 커널. / proc 파일 시스템과 비슷합니다.

/ dev 디렉토리와 마찬가지로 / dev / pts에는 장치에 해당하는 항목이 포함됩니다. 그러나 일반 디렉토리 인 / dev와는 달리 / dev / pts는 Linux 커널에 의해 동적으로 생성되는 특수 디렉토리입니다. 디렉토리의 내용은 시간에 따라 다르며 실행중인 시스템의 상태를 반영합니다. / dev / pts의 항목은 유사 터미널 (또는 유사 TTY 또는 PTY)에 해당합니다.

Linux는 사용자가 연 모든 새 터미널 창에 대해 PTY를 생성하고 / dev / pts에 해당 항목을 표시합니다. PTY 장치는 터미널 장치와 같은 역할을합니다. 키보드에서 입력을 받고 해당 프로그램에서 실행되는 프로그램의 텍스트 출력을 표시합니다. . PTY 번호가 매겨지고 PTY 번호는 / dev / pts의 해당 항목 이름입니다.

예를 들어, 새 터미널 창의 PTY 번호가 7이면 다른 창에서이 명령을 호출하십시오. % echo 'I virtual a'> / dev / pts / 7 새 터미널 창에 출력이 나타납니다.


2

A는 ttyA는 물리적 t erminal- t elet Y 컴퓨터 (일반적으로 직렬 포트)의 PE 포트.

단어 텔레타이프는 의 단락 인 전신 타자기 또는 텔레타이프 1930에서 디바이스 - 자체 교체 전자기 장치 전신 1830 및 1840의 기계를 인코딩.

텔레 타이프라이터
TTY-텔레 타이프라이터 1930 년대

A는 ptyA는 P seudo- t ELE TY 같은 SSH, xterm 등, 또는 스크린 등의 단자를 연결 에뮬레이션 소프트웨어 프로그램과 컴퓨터 운영 체제 커널에 의해 제공 PE 포트.

여기에 이미지 설명을 입력하십시오
PTY-유사 텔레 타입

터미널은 단순히 입력 및 출력에 텍스트를 사용하는 컴퓨터의 사용자 인터페이스입니다.


OS 구현

이 사용 p는 seudo- t 전자 업계 타이 PE 포트는 그러나, 자신의 이름과 구현은 조금 갈라져있다.

리눅스는 특수 파일 시스템 마운트 devpts을는 / dev 합니다 ( '의'는 아마도에 대한 서 그에 해당하는 항목을 생성 erial) /dev/pts당신이 열 때마다 새 터미널 창, 예를 들어/dev/pts/0


macOS / FreeBSD/ dev 파일 구조를 사용하지만, 열려있는 모든 새 터미널 창에 대해 번호가 지정된 TTY명명 규칙 ttys을 사용합니다./dev/ttys002


Microsoft Windows는 여전히 LPT프린터로 출력하기위한 Command Shell 내에 라인 프린터 터미널 용 포트 개념을 가지고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.