유명한 "TTY 공개",아래 그림과 같이:
사용자 프로세스는 라인 규칙과 통신하는 "TTY 드라이버"와 통신하는 것으로 보입니다. 그러나오라일리의 책:
사용자 애플리케이션이 라인 규칙과 대화하는 "tty 코어"와 대화하고 tty 드라이버가 하드웨어 이전의 마지막 계층인 것처럼 보입니다. 누군가 "tty 드라이버"가 정확히 무엇인지 설명해 주시겠습니까? 나는 내 질문을 명확하게 말하고 싶습니다.
내가 아는 한, 드라이버는 하드웨어와 통신하는 데 사용되는 소프트웨어입니다. 예를 들어, 디스크 컨트롤러와 통신하는 방법을 아는 장치 드라이버가 있습니다. 이 드라이버는 실제로 장치 컨트롤러의 레지스터를 읽고 쓰는 일을 담당합니다. 반면에 파일 시스템 드라이버와 같이 하드웨어와 통신하는 데 사용되지 않는 드라이버가 있으며 기본적으로 특정 방식으로 데이터를 구성하는 방법을 아는 소프트웨어입니다.
tty 드라이버는 어떤 유형의 드라이버입니까? 라인 규율은 어디에 적용됩니까?
편집하다
O'Reilly 장을 더 읽고 관찰한 후에 O'Reilly가 "TTY 드라이버"라고 부르는 것은 실제로 "The TTY demystified"가 "UART 드라이버"라고 부르는 것과 O'Reilly가 말하는 "TTY 드라이버"인 것 같습니다. "TTY 드라이버"는 실제로 "UART 드라이버"를 의미합니다. "TTY Core"는 "TTY Revealed"에서 "TTY Driver"가 의미하는 것입니다.
즉, O'Reilly의 "TTY 드라이버"는 하드웨어와 상호 작용하는 데 사용되는 장치 드라이버인 반면, "TTY 코어"는 라인 규칙을 통해 사용자 프로세스(그래서 드라이버(?))로부터 데이터를 수신하는 데 사용되는 커널 소프트웨어입니다. 이를 올바른 드라이버에 보냅니다(UART 드라이버 또는 pty 마스터로 두십시오).
그렇죠?
답변1
tty 드라이버와 라인 규율의 관계는 무엇입니까?
프로세스는 규율과 소통합니다. 그러나 규율은 raw
메시지를 전달하는 것 외에 아무 작업도 수행하지 않는 (무작동, 빈 규율)일 수 있습니다.
이것이 O'Reilly의 책에 나오는 스택이 다음과 같은 이유입니다.직접왼쪽이 라인 훈육, 오른쪽이 라인 훈육입니다. 이것이 no-op/raw/null 줄 규칙을 해석하는 방법입니다( raw
설정하는 데 사용할 수 있는 실제 이름입니다 stty raw
).