tty
"teletypewriter"의 약어로, 초기 컴퓨터와 통신하기 위해 사용되었던 장치입니다. tty는 텍스트 기반의 사용자 인터페이스를 제공하며, 사용자가 컴퓨터와 상호 작용할 수 있는 터미널을 나타냅니다.
리눅스/유닉스: /dev/tty
tty의 장점
- 실제 하드웨어 터미널을 사용하므로 입출력 속도가 빠릅니다.
- 사용자마다 독립된 터미널 환경을 제공하여, 각각의 사용자가 개인 설정과 환경을 유지할 수 있습니다.
tty의 단점
- 실제 하드웨어 터미널을 사용하므로, 추가적인 하드웨어 장치가 필요합니다.
- 멀티태스킹을 지원하지 않으므로, 동시에 여러 작업을 수행할 수 없습니다.
pts
"pseudo-terminal slave"의 약어로, 가상 터미널을 나타냅니다. 가상 터미널은 실제로는 물리적인 장치가 아니라 소프트웨어적으로 구현된 터미널입니다. pts는 실제 터미널 장치를 흉내내며, 여러 개의 가상 터미널을 생성하고 관리하는 역할을 합니다
리눅스/유닉스: /dev/pts/[번호] (번호는 가상 터미널 세션의 식별자입니다. 예: /dev/pts/0, /dev/pts/1 등)
pts의 장점
- 가상 터미널로, 별도의 하드웨어 장치가 필요하지 않습니다.
- 멀티태스킹을 지원하여 여러 개의 가상 터미널 세션을 동시에 실행하고 전환할 수 있습니다.
- 여러 사용자가 동일한 tty에 연결되어 작업할 수 있으므로, 시스템 리소스를 효율적으로 활용할 수 있습니다.
pts의 단점
- 가상 터미널이기 때문에 입출력 속도가 tty에 비해 상대적으로 느릴 수 있습니다.
- 사용자가 독립된 환경을 유지할 수 없고, 여러 사용자가 동일한 tty에 연결되어 작업하므로, 정보의 보안성과 개인 정보 보호 측면에서 주의가 필요합니다.
tty와 pts는 터미널 환경에서 프로세스와 사용자가 통신하는 방식을 제공합니다. 프로세스는 터미널 디바이스에 쓰거나 읽어오는 데이터를 통해 사용자와 상호 작용할 수 있습니다. 사용자가 입력을 터미널에 작성하면 해당 입력은 프로세스로 전달되고, 프로세스는 출력을 터미널에 작성하여 사용자에게 보여줍니다.
일반적으로, 실제 하드웨어 터미널은 tty 장치로 표현되고, 사용자가 로그인하여 세션을 시작하면 가상 터미널인 pts 장치가 생성됩니다. 하나의 tty 장치에는 여러 개의 pts 장치가 연결될 수 있으며, 사용자는 이러한 가상 터미널을 전환하며 작업할 수 있습니다.
이러한 tty와 pts는 다양한 운영 체제에서 사용되며, 터미널 기반의 응용 프로그램, 원격 접속, 멀티유저 시스템 등에서 중요한 역할을 합니다.
tty와 pts 의 차이
실제 장치 vs. 가상 장치: tty는 실제 터미널 장치를 나타냅니다. 이는 이전에 주로 사용되었던 하드웨어 터미널을 의미합니다. 반면에, pts는 가상 터미널을 나타내며, 실제 하드웨어와 무관하게 소프트웨어적으로 구현됩니다.
생성 방식: tty는 시스템이 부팅될 때 미리 정의된 터미널 장치를 사용하여 생성됩니다. 사용자가 로그인하면 시스템은 사용자를 위해 새로운 tty를 할당합니다. 반면에, pts는 tty 장치의 slave로 생성됩니다. 새로운 가상 터미널 세션을 시작하면 pts 장치가 생성되며, 사용자는 이를 통해 작업할 수 있습니다.
독립성: tty는 사용자마다 별도의 물리적 장치를 할당받으므로, 다른 사용자와 상호 작용하는 동안 터미널 설정 및 환경이 공유되지 않습니다. 반면에, pts는 가상 터미널로, 여러 사용자가 동일한 물리적 tty 장치에 연결되어 작업할 수 있습니다. 각각의 pts 장치는 독립적인 환경을 제공하며, 서로 다른 세션 간에 분리되어 있습니다.
멀티태스킹: tty는 단일 작업을 수행하며, 한 번에 하나의 작업만을 처리합니다. 그에 비해, pts는 멀티태스킹을 지원하여 여러 개의 가상 터미널 세션을 동시에 실행하고 전환할 수 있습니다.
tty는 실제 터미널 장치를 나타내며 사용자마다 독립적인 환경을 제공합니다. 반면에, pts는 가상 터미널로 소프트웨어적으로 구현되어 여러 사용자가 동일한 tty 장치에 연결되어 작업할 수 있으며, 멀티태스킹을 지원합니다.
'INFRA > LINUX' 카테고리의 다른 글
[LINUX] Container 컨테이너에 대해 (0) | 2023.07.06 |
---|---|
[LINUX]LINK, 심볼링링크 하드링크 (0) | 2023.07.05 |
RAID에 대하여 (0) | 2023.06.27 |
리눅스 명령어3 (0) | 2023.06.26 |
[LINUX]LVM에 대하여 (0) | 2023.06.26 |