추가 읽기

추가 읽기

내 Archlinux에서는 /dev/ptsdevpts에 의해 마운트되는데, /dev/pts/ptmx장치 노드를 만든 사람은 누구입니까? 이 노드의 목적은 무엇입니까? 동일한(Major=5 Minor=2) 장치 노드이지만 /dev/ptmx/액세스 모드가 다릅니다. 무엇을 위한 것입니까?

답변1

기존 AT&T 시스템 5 의사 터미널 슬레이브 장치 메커니즘은 평범하다는 것입니다지속성 있는아래의 문자 장치 노드 /dev. 멀티플렉서가 있다주인장비 /dev/ptmx. 이전 4.3BSD 의사 터미널 장치 메커니즘에는 병렬 공통이 있었습니다.지속성 있는아래의 마스터 및 슬레이브 장치 노드입니다 /dev. 이는 일반 디스크 파일 시스템의 특수 장치 노드입니다.

OpenBSD에서는 이 중 일부가 여전히 적용됩니다. /dev여전히 디스크 볼륨이고 슬레이브 장치는 여전히 실제 디스크 노드입니다. 그러나 필요에 따라 생성됩니다. PTMGETI/O 제어가 장치에 실행 되면 커널은 내부적으로 관련 호출을 실행하여 새 장치 노드를 생성합니다 /dev/ptm.

FreeBSD에서는 이것이 더 이상 사실이 아닙니다. 더 이상 멀티플렉서 장치도 없습니다. /devCD 볼륨이 전혀 아닙니다. 파일 시스템 입니다 devfs. 슬레이브 장치는 시스템 호출에 대한 응답으로 devfs해당 디렉토리 pts/아래의 파일 시스템 에 나타납니다. 이는 일부 "멀티플렉서" 장치의 열린 파일 설명자를 둘러싸는 posix_openpt()것이 아니라 완전한 시스템 호출입니다 .ioctl()

한동안 Linux에서는 의사 터미널 슬레이브 장치가 영구 장치 노드였습니다. 당신이 보고 있는 것은 "새로운" devpts파일 시스템(여기서 "새로운"은 몇 년 전에 도입되었음을 의미함)과 devtmpfs.거의FreeBSD에서 사용이 허용됩니다 devfs.

그러나 몇 가지 차이점이 있습니다. 특히 "멀티플렉서" 장치가 있습니다.

  • 내부에나이가 많은자동으로 생성/파기된 슬레이브 장치 파일만 포함하는 다른 파일 시스템 의 장치 인 "새" devpts시스템입니다 . 관례대로, 설정에는 마운트가 준비되어 있습니다.ptmxdevtmpfsdevpts/dev/ptmxdevpts/dev/pts
  • 하지만 Linux 사람들은 갖고 싶어합니다.다중 완전 독립컨테이너 등에 사용되는 파일 시스템 인스턴스 devpts. 존재하는 경우 두 파일 시스템을 (올바르게) 동기화하는 것이 매우 어렵습니다.많은 devtmpfs그리고 devpts파일 시스템. 그래서최신"새" devpts시스템의 모든 장치(멀티플렉서 및 슬레이브)는 동일한 파일 시스템에 있습니다.

    ptmx이전 버전과의 호환성을 위해 새 ptmxmode마운트 옵션을 설정 하지 않으면 기본적으로 새 노드에 액세스할 수 없습니다 . 이전 버전과의 호환성 모드에서 사람들은 여전히 ​​이전 단일 인스턴스 방식으로 작업을 실행할 수 있으며 이는 newinstance설치 되지 않는 한 기본적으로 수행됩니다 devpts.

  • 내부에심지어 업데이트됨파일 시스템의 "새로운" devpts(2016년부터 이미 존재함) devpts인스턴스별 다중화기 장치는 이제 기본 다중화기이며 심볼릭 링크, 바인딩 설치 또는 일반 이전 버전을 에뮬레이션하려고 시도하는 커널에서 제공하는 심 ptmx입니다 .devtmpfs실제에 대한 심볼릭 링크 pts/ptmx. 현재 다중 인스턴스 접근 방식은 다음과 같습니다.오직방법.

추가 읽기

관련 정보