Xorg는 어떻게 작동하나요?

Xorg는 어떻게 작동하나요?

Xorg가 어떻게 작동하는지 이해하려고 노력 중입니다.

이해를 보여주기 위해 다음 이미지를 만들었습니다(이미지는 Ctrl+Alt+F7을 누른 후의 구성 요소 상태를 보여줍니다).

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

이미지에 대한 설명은 다음과 같습니다.

  • /dev/tty7Xorg의 제어 터미널입니다.
  • Xorg는 화면에 그리기 위해 VGA 드라이버와 직접 대화합니다(그리려는 내용을 TTY 드라이버로 보내지 않습니다).
  • Xorg는 키보드 및 마우스 드라이버로부터 직접 입력을 받습니다(TTY 드라이버로부터 키보드 및 마우스 입력을 받지 않습니다).
  • 가상 터미널은 또한 키보드 드라이버로부터 입력을 받습니다(그러나 제가 테스트한 결과 키 누름에 대한 스캔 코드를 받았습니다).
  • X 클라이언트(그림의 xterm 및 Firefox)에는 제어 터미널이 없습니다.

내 이해가 맞나요?

답변1

귀하의 설명이 다이어그램과 일치하지 않으며 다이어그램보다 더 정확합니다.

X 서버는 입력 또는 출력에 tty 드라이버를 사용하지 않습니다. 다양한 입력 장치의 드라이버에서 직접 입력을 읽고 출력을 그래픽 카드 드라이버로 직접 보냅니다.

입력 장치를 나열한 xinput다음 추가 정보를 얻는 데 사용할 수 있습니다 xinput list-props. 예를 들어:

$ xinput | tail -n 1
    ↳   USB Keyboard                            id=10   [slave  keyboard (3)]
$ xinput list-props 10 | tail -n 1
        Device Node (263):      "/dev/input/event2"

를 읽으면 내 X 서버가 USB 키보드에서 입력을 받는 것을 볼 수 있습니다 /dev/input/event2.

출력의 경우 비슷한 사용자 수준 도구가 있는지 모르겠습니다. xrandr --listproviders사용 중이거나 사용 가능한 그래픽 드라이버를 나열하지만 /dev항목은 나열하지 않습니다. lsof -p$(pgrep Xorg)또는 를 사용하여 X 서버가 어떤 그래픽 장치를 열었는지 확인할 수 있습니다 less /var/log/Xorg.0.log.

제어 터미널 개념은 텍스트 모드 대화를 위해 설계되었습니다. X 서버는 시작된 방법에 따라 제어 터미널을 가질 수도 있고 없을 수도 있습니다. GUI 메뉴에서 실행되는 X 프로그램에는 일반적으로 제어 터미널이 없습니다. 창 관리자에는 제어 터미널이 없기 때문입니다. 터미널에서 실행되는 쉘에서 시작된 X 프로그램은 해당 터미널을 제어 터미널로 사용합니다.

관련 정보