나는 pts 장치 파일이 "하드웨어에 직접 연결되지 않은"(ssh, telnet) 의사 터미널에 사용된다는 여러 사이트를 읽었습니다.
여러분의 컴퓨터에서 실행 중인 xterm은 키보드의 출력을 직접 연결하여 화면에 표시하는데 왜 의사 터미널 장치 파일을 사용합니까?
ttys pts에 대한 다른 질문을 읽었는데...이 내용을 다루지 않는 것 같습니다..
또한 "의사 터미널"이 궁극적으로 입력과 출력이 있는 장치 파일이라면 그 출처가 왜 중요한가요?
미리 감사드립니다
답변1
커널 내부에서 관리되는 터미널과 관련하여 키보드 신호와 같은 것이 있습니다(예 Ctrl+Z
:정지 신호), 프런트엔드 및 백그라운드 프로세스 그룹을 관리하며 매우 간단한 레이아웃 메커니즘을 사용하여 전송합니다.한숨을 쉬다터미널이 사라지면그 외 세부 사항.
하드웨어 터미널의 경우 터미널 장치는 애플리케이션과 하드웨어 사이에 위치합니다. 터미널 장치의 유형은 (Linux의 경우) /dev/tty1
PC 키보드 및 화면, /dev/ttyS0
직렬 회선을 통해 연결된 터미널, /dev/ttyUSB0
USB를 통해 연결된 터미널 등과 같은 하드웨어 유형에 따라 다릅니다.
+-------------+ +-----------------+ +-------------+
| text mode | | kernel | | peripheral |
| application |<------->| e.g. /dev/ttyS0 |<------->| e.g. on a |
| | | | | serial port |
+-------------+ +-----------------+ +-------------+
와터미널 에뮬레이터, 원칙은 동일하며 연결은 여전히 커널 드라이버를 통과하지만 다른 쪽 끝도 프로세스입니다.
+-------------+ +-----------------+ +-------------------+
| text mode | | kernel | | terminal emulator |
| application |<------->| /dev/pts/* |<------->| e.g. xterm, sshd, |
| | | | | screen, ... |
+-------------+ +-----------------+ +-------------------+
Xterm, telnetd1, sshd 등은 어떤 하드웨어에도 (직접) 연결되지 않습니다. 키보드에서 키를 입력하면 정보가 키보드(물리적 장치)를 통해 커널 내의 키보드 드라이버로 전달되고, 그런 다음 키보드 장치를 수신하는 프로세스로 전달됩니다. 그래픽 세션에 있는 경우 절차는 다음과 같습니다.X 서버그런 다음 해당 창에 포커스가 있는 프로세스로 정보가 전달됩니다. 대신, xterm 내에서 실행되는 프로그램이 출력을 생성할 때 xterm은 이를 X 서버가 특정 위치에 특정 글꼴로 특정 문자를 표시하는 명령으로 변환합니다. 입력을 처리하거나 출력을 생성하는 프로세스 근처에는 관련된 하드웨어가 없으며 하드웨어도 전혀 관련되지 않을 수 있습니다(예를 들어 xterm 창이 화면에 표시되지 않거나 터미널이 표시되는 경우 적어도 로컬에는 표시되지 않음). Telnet 또는 SSH 서버에서 제공됨).
1단말기는 원격(서버)측에 있습니다.
답변2
다음은 질문에 대한 답변을 찾은 링크입니다. 기본적으로 터미널 에뮬레이션을 사용자 공간으로 옮기기 위해 만들어졌다고 말합니다. 페이지 상단에 있습니다.