X11이 그래픽 카드에 액세스할 수 있는 이유는 무엇입니까?

X11이 그래픽 카드에 액세스할 수 있는 이유는 무엇입니까?

이것은 다소 이론적일 수 있지만... X11은 도대체 어떻게 비디오 하드웨어에 액세스할 수 있습니까? 내가 아는 한, X11은 권한이 없는 사용자 모드 프로그램입니다. 그러나 커널 모드 소프트웨어만 하드웨어에 액세스할 수 있습니다. 그래서 뭐?

(이것은 충분히 간단한 질문이지만 이 간단한 문제를 설명하는 문서를 찾을 수 없습니다. 방법에 대한 지침이 많이 있습니다.설정X11 또는 X11 클라이언트/서버 배열이 작동하는 방식이지만 하드웨어를 구동하는 방식에 대해서는 그다지 중요하지 않습니다...)

기본적으로 나는 X11이 얼마나 많은 작업을 수행하는지, 얼마나 많은 코어가 있는지, 그리고 둘이 어디서 만나는지 알고 싶습니다.

답변1

가장 간단한 시나리오에서는 X 서버의 소위 DDX(장치 종속 X) 부분이 비디오 드라이버를 인식하고 ioctl 호출을 사용하여 이를 초기화하고 비디오 어댑터를 구성하며 (일반적으로) 프레임 버퍼 주소를 가져옵니다. 그런 다음 프레임 버퍼가 렌더링에 사용됩니다.여기프로세스에 대한 자세한 설명입니다.

일부 응용 프로그램이 XV 또는 GLX를 사용하기로 결정하면 상황이 더 복잡해집니다. 그러나 궁극적으로 모든 하드웨어 수준 렌더링은 비디오 어댑터 드라이버에 의해 수행되며 X 서버는 하드웨어에 직접 액세스하려고 시도하지 않습니다.

관련 정보