추가 읽기

추가 읽기

Linux 프로그래밍 인터페이스에서

의사 터미널의 핵심은슬레이브 장치는 표준 터미널처럼 보입니다.. 단말 장치에 적용할 수 있는 모든 작업은 의사 단말 슬레이브 장치에도 적용할 수 있습니다. 이러한 작업 중 일부는 의사 터미널에 적합하지 않지만(예: 터미널 회선 속도 또는 패리티 설정) 의사 터미널이 해당 작업을 자동으로 무시하므로 괜찮습니다.

터미널 지향 프로그램의 경우 슬레이브 장치는 표준 터미널처럼 작동합니다. 또한 터미널 프로그램의 프로세스를 제어하는 ​​터미널과 같습니다.

마스터 장치가 표준 터미널처럼 드라이버에 표시됩니까? 그렇다면 제어단말처럼요? 그렇지 않은 경우 장치 파일 또는 일반 파일과 비슷하지만 반드시 터미널용 장치 파일일 필요는 없습니까?

감사해요.

여기에 이미지 설명을 입력하세요.

답변1

마스터 장치는 tcgetattr()// &c를 통해 tcsetattr()액세스할 수 있는 라인 규칙이 있는 터미널 장치 파일처럼 보입니다. 그리고 성공 isatty(). 사실은 그렇지같은라인 제어 인스턴스는 슬레이브 역할을 하며, 이는 마스터 측 프로그램이 창 크기 변경과 같은 정보를 슬레이브 측 프로그램에 전송하는 방식입니다. 이는 또한 메인 측 프로그램이 회선 속도를 0으로 설정하여 회선 규율의 끊기 메커니즘을 트리거함으로써 (시뮬레이션된) 모뎀 끊김을 신호하는 방법이기도 합니다. (따라서 본문의 선형 속도에 대한 설명은 올바르지 않습니다.회선 속도가 적합한 상황. )

차이점은 읽기/쓰기 I/O입니다. 읽혀지는 것은 실제 터미널의 경우 실제 기본 직렬 장치를 통해 전송되는 일련의 문자입니다. 실제 터미널의 경우 기록되는 내용은 실제 기본 직렬 장치가 수신한 문자 시퀀스입니다. 즉, 그것은이다반대편라인 분야별 표준/비표준 입력 및 출력 처리.

여기에는 몇 가지 복잡성이 있습니다.패킷 모드그리고원격 모드. 후자는 오랫동안 사용되지 않았으며 금세기 초에도 대부분의 운영 체제에 존재하지 않았기 때문에 Daniel J. Bernstein의 이전 pty 도구에 대한 패치가 필요했습니다. 전자는 대부분의 작업에 특별히 유용하지 않으므로 이 답변에서는 이에 대해 자세히 설명하지 않겠습니다.

주요 장치는 일반적으로아니요마스터 프로세스가 실행되는 세션의 제어 터미널입니다. 개념적으로 이것은 다음과 같습니다.내부 구조실제 터미널이 잘못된 위치에 있습니다. 해당 세션에 대한 제어 터미널은 다음과 같습니다(존재하는 경우).다른단말기.

script:terminal이는 다른 터미널 장치에 직접 렌더링되고 해당 터미널 장치가 제어하는 ​​대화형 세션에서 실행되는 NeoVIM , emacs 및 ptybandage(파이프라인의 일부가 아닌 경우) 과 같은 프로그램의 경우입니다.

SSH 서버, GUI 터미널 에뮬레이터,console-terminal-emulatornosh 도구 세트 ptyrun(일반적으로 사용되는 경우) 또는 zhcon과 같은 모놀리식 프레임 버퍼 터미널 에뮬레이터에서. 이는 파일 시스템의 버퍼 및 FIFO( console-terminal-emulatorTCP 소켓을 통해)부터 프레임 버퍼 및 HID 유사 장치에 이르기까지 다양한 I/O 장치로 렌더링되며 이들 중 어느 것도 터미널이 아닙니다. 또한 console-terminal-emulatorSSH 서버 및 프레임 버퍼 터미널 에뮬레이터는 일반적으로 데몬 프로세스의 컨텍스트에서 호출되며 물론 제어 터미널 없이 세션이 시작됩니다.

이 그래프는 결정적이지 않습니다. 마스터 프로세스가 반드시 슬레이브 프로세스를 생성하는 것은 아닙니다. 예를 들어 nosh-toolset 사용자 공간 가상 터미널에서 슬레이브 프로세스는 ttylogin@*서비스 관리자에 의해 분기되는 일반 서비스이며 마스터의 에뮬레이터 프로세스와 마스터의 로그인 세션 프로세스 사이에는 직접적인 프로세스 관계가 없습니다. 노예 쪽. 그러나 이는 이 답변의 범위를 벗어납니다.

추가 읽기

답변2

주요 장치는 대부분 파이프처럼 보입니다. 파이프처럼 파일 설명자를 읽고 쓸 수 있으며 크기가 적합합니다. 짧은 읽기 내용을 얻게 되므로 read(2)가 반환하는 내용을 확인하십시오.

관련 정보