Fedora에는 왜 두 개의 "ptmx" 파일이 있습니까?

Fedora에는 왜 두 개의 "ptmx" 파일이 있습니까?

/dev/ptmx이 파일은 의사 터미널의 메인 파일을 생성하는데 사용되는 것으로 알고 있습니다 . 하지만 Fedora에 다른 ptmx파일( ) 이 있다는 것을 발견했습니다 /dev/pts/ptmx.

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

두 번째 파일의 목적은 무엇입니까?

답변1

컴퓨팅 세계의 많은 것들과 마찬가지로 그 이유는 역사와 이전 버전과의 호환성 때문입니다.

Linux에 존재하기 전인 2.4.* 커널에는 루트 파일 시스템의 실제 디렉터리에 장치를 배치하는 "전통적인 Unix udev방식 "과 첫 번째 가상 파일 시스템이라는 /dev두 가지 경쟁 솔루션이 있었습니다. devfs. 파일 시스템 솔루션 /dev.

문제는 저자가 devfs다양한 장치에 대해 완전히 새로운 명명 체계를 구축했고 사람들이 그것에 대해 매우 강하게 느낀다는 것입니다. 어떤 사람들은 새로운 체계로 이동하고 이전 것을 폐기하고 싶어하지만 다른 사람들은 이동할 필요성을 느끼지 않습니다. 일부 배포판에서는 기존 정적 장치를 사용하고 다른 배포판에서는 devfs.

이 시점에서 설치 중에 고정된 수의 의사 TTY 장치가 생성됩니다. (그런데 CONFIG_LEGACY_PTYS커널을 컴파일할 때 해당 옵션을 설정하면 여전히 가능합니다.)

그런 다음 Unix98 스타일의 PTY 장치 동적 할당이 도입되었습니다. 이를 정적 /dev디렉터리 에 구현하려면 파일 시스템 /dev/pts이라고 하는 가상 파일 시스템이 필요합니다 devpts. 또한 이를 별도의 파일 시스템으로 사용하면 코드를 복제하지 않고도 동적으로 적용할 수 있습니다 devfs.

동적으로 할당된 PTY 장치는 빠르게 가장 인기 있는 선택이 되었습니다. /dev수백 개의 정적으로 할당된 PTY 장치가 서로 어수선하게 배치되어 있는 것은 명백히 터무니없는 일이었으며, 이들 장치 중 대부분은 시스템 수명 동안 절대 사용되지 않을 가능성이 컸기 때문입니다.

그런 다음 Linux 2.6이 udev나왔습니다. 정적 /devdevfs솔루션을 신속하게 제거합니다. 이전 버전과의 호환성 때문에 파일 시스템은 여전히 ​​존재하지만 이제는 완전히 RAM 기반이기 때문에 devpts동일한 기능을 기본 파일 시스템으로 다시 이동할 수 있습니다 ./dev

예를 들어, 오늘날 Debian 9는 레거시 호환성을 devpts위해 여전히 파일 시스템을 마운트 /dev/pts하지만 /dev/pts/ptmx기본적으로 권한을 0으로 할당합니다. 이는 devpts파일 시스템이 더 이상 사용되지 않을 수 있으며 향후 어느 시점에 제거될 것임을 나타냅니다.

# ls -l /dev/ptmx /dev/pts/ptmx
crw-rw-rw- 1 root tty  5, 2 Nov 22 11:47 /dev/ptmx
c--------- 1 root root 5, 2 Nov 12 14:59 /dev/pts/ptmx

일부 프로그램에서 여전히 이를 요구하는 경우 /dev/pts/ptmx기본 권한을 조정하여 허용할 수 있지만 이를 통해 사람들은 더 이상 사용되지 않는 이전 장치 이름을 여전히 사용하고 있는 프로그램을 알 수 있습니다.

답변2

프로세스가 /dev/ptmx를 열 때(사용posix_openpt()), 이는 의사 터미널 마스터(PTM)의 파일 설명자를 가져오고 /dev/pts 디렉터리에 의사 터미널 슬레이브(PTS)를 생성합니다.

마스터 장치가 켜지면 슬레이브 장치가 잠깁니다. 슬레이브의 이름을 얻고 권한 등을 설정한 다음 슬레이브를 잠금 해제할 수 있습니다. 이를 통해 슬레이브 장치에 액세스하기 전에 제어할 수 있습니다.

슬레이브는 실제 텍스트 터미널 장치를 시뮬레이션하고 호스트는 슬레이브를 제어하기 위한 터미널 에뮬레이터 프로세스에 대한 방법을 제공합니다.

슬레이브는 물리적 터미널의 가상 구현이고, 마스터는 해당 터미널에 입력하는 가상 구현입니다. 컴퓨터는 슬레이브에 전송된 문자를 사람이 실제 터미널에 입력하는 것처럼 처리합니다(권한 설정에 따라 다름). 마스터가 생성되었습니다).

관련 정보