'

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [STUDY05] tty pts가 뭐지??
    FISA 2026. 1. 5. 15:42

     

    리눅스 who를 치면

    tty pts가 떠요

    이게머지??

     

    이 글을 참고하여 적었습니다.

     

    1. 리눅스 특 : 다중사용자 허용

    직접그림ㅋ

    위 사진과 같이 하나의 서버에 다중 사용자를 허용합니다. 이걸 가능케하는게 가상 터미널때문입니다.

     

    가상터미널을 가능케하는 요소가 tty pts입니다.

     

    2. TTY란?

    TeleTYpewriter의 약자로, 물리적인 콘솔(키보드 + 화면)을 의미하던 개념입니다.

    터미널은 개념적 추상적으로 생각해보면 입력하고, 출력하는 문자기반의 입출력 인터페이스입니다.

    tty 는 0부터 6까지 총 7개가 존재합니다. 물리적으로 TTY라는 디바이스 드라이버를 통해 콘솔 또는 터미널에 접근합니다.

    실제 장치 파일 경로라고 보시면돼요. 터미널 경로로써 /dev/tty*가 되는 구조입니다.

     

    ⁉️여기서 드는 궁금증, 그럼 /dev/tty경로 는 어떻게 터미널이 될 수 있는가?

     - 커널이 제공하는 현재 프로세스의 controlling terminal에대한 별칭이긱 때문입니다.

    /dev/tty1 /dev/tty0같은 구체적인 장치!가 아니라, 커널에 접속할 수 있는 터미널이라고 보시면 될것같아요

    문자디바이스처럼 동작하고, tty드라이버로 연결되며 stdin stdout stderr와 연결 될 수 있으므로 

    커널이. 현재 프로세스의 controlling terminal로 연결해주는 추상화된 장치파일이다!

     

    2. PTS란?

    Pseudo Terminal Slave의 약자입니다. 가짜 터미널입니다.

    ssh 터미널 에뮬레이터인 Xterm, gnome-terminal등은 물리적인 콘솔이 아닙니다.

    그러나 쉘이나 프로그램 모두 tty처럼 역할을 해야하기때문에 tty를 기대합니다. 그래서 커널이 만든 것이 PTY입니다.

     

    항상 쌍으로 Master와 Slave 로 다닙니다.

    Master가 실제 터미널  프로그램이 사용하는 쪽이고 ssh. gnome-terminal같은것이고 

    Slave가 tty처럼 보이는 장치. 즉 리눅스 서버의 /dev/pts/*가됩니다.

     

    그래서 tty처럼 동작하는 앱들이 쓰는게 pts라고 쓰입니다.

     

    ⁉️왜 tty랑 pts를 나누지? 바로 tty로 연결해주면 안되나?

     - 물리 tty는 키보드와 VGA/framebuffer 콘솔 드라이버에 직접 의존합니다.

    하드웨어 - tty드라이버 - 프로세스로 네트워크나, GUI, 원격접속, 여러 터미널 동시 사용이 전혀안돼요

    만약 분리하지 않았다면 서브프로그램이 하드웨어에 종속되어야하기때문에 터미널 기능 확장같은 것도 전혀 안된다는것 + 보안문제로 원격사용자가 물리 콘솔을 직접 제어하게되어 생깁니다.

     

    암튼!  한줄 정리하자면, TTY는 하드웨어와 프로세스가 제어하게하는 드라이버로 터미널이라고 말할 수 있는것이고

    PTS는 서브 프로그램이 tty를 쓸 수 있게 만드는 인터페이스??라고 볼 수 있겠습니다.

    728x90

    댓글

Designed by Tistory.
티스토리 친구하기