who
명령을 사용할 때 항상 pts와 tty가 표시 되지만 어떻게 다른지 이해하지 못합니까? 누군가 나에게 이것을 설명해 줄 수 있습니까?
답변
TTY는 네이티브 단말 장치, 백엔드 에뮬레이트 하드웨어 또는 커널 중입니다.
의 PTY (예 : (의사 단말 장치)가 다른 프로그램에 의해 모방하는 단말 장치 xterm
, screen
또는 ssh
그러한 프로그램이다). 점은 a의 노예 부분입니다 PTY .
(자세한 정보는에서 찾을 수 있습니다 man pty
.)
짧은 요약 :
PTY를 통한 방법에 의해 생성된다 posix_openpt()
(일반적으로 특별한 장치를 개방 /dev/ptmx
), 양방향 문자 디바이스들의 쌍으로 구성된다 :
-
이 호출을 통해이 프로세스에서 얻은 파일 디스크립터 인 마스터 부분은 터미널을 에뮬레이트하는 데 사용됩니다. 초기화 후 두 번째 파트는로 잠금 해제 할 수 있으며
unlockpt()
마스터는이 두 번째 파트 (슬레이브)로 문자를 받거나 보내는 데 사용됩니다. -
파일 시스템에 고정 된 슬레이브 부분
/dev/pts/x
(실제 이름은 마스터를 통해 얻을 수 있음ptsname()
)은 기본 터미널 장치 (/dev/ttyx
) 처럼 작동 합니다. 대부분의 경우 제어 터미널로 사용하는 쉘이 시작됩니다.
답변
A tty
는 일반적인 터미널 장치입니다 (예 : 서버의 콘솔).
A pts
는 유사 터미널 슬레이브 ( xterm
또는 ssh
연결)입니다.
man pts
의사 터미널에 대한 자세한 설명이 있습니다.