2011-09-05 3 views
1

누구나 GUI 프로그래밍을위한 시스템 호출을 알고있어 화면에 다양한 그림을 그릴 수 있습니까?x86-64 (linux)에서 GUI 프로그래밍에 관련된 syscall은 무엇입니까?

내가 하나 here을 찾을 수없는 ..

GUI 바로 커널 지원을 필요로?

+2

Linux 커널 그래픽 출력에 대해 알지 못합니다. X 서버는 Linux에서 디스플레이 관리를 담당합니다. 가장 좋은 방법은 프로그래밍 언어와 필요에 따라 Qt, GTK +, wxWidgets 또는 Tk와 같은 GUI 프로그래밍 프레임 워크를 사용하는 것입니다. –

답변

4

X11 프로토콜을 시스템의 Xserver와 통신하여 화면을 그립니다. (관련된 시스템 호출은 소켓을 통해 이야기하기위한 일반적인 호출이므로 유익하지 않습니다.) 일반적으로 라이브러리를 사용하여이를 수행합니다. 일반적인 기본 라이브러리는 X11 라이브러리 (libX11)이며 일반적으로 GTK 또는 Qt (또는 wxWindows 또는 Tk 또는 ...)와 같은 툴킷 라이브러리로 래핑됩니다. 낮은 수준의 라이브러리 (X 프로토콜보다 얇은 xcb)와 높은 수준의 라이브러리 (Gnome, KDE)도 있습니다. 완전히 다른 접근법 인 OpenGL 라이브러리를 사용할 수도 있습니다.

이 작업을 수행하는 방법에 대한 책 전체가 있습니다.


Xserver 자체는 메모리 매핑 장치를 사용하며 매우 낮은 수준에서 그래픽 하드웨어와 통신합니다. 그것은 그래픽 드라이버보다 엄청나게 높은 수준이 아니며, 매우 높은 권한을 가진 프로세스입니다. (Windows와 비교할 때, 물건이 분할되는 정확한 레벨은 이지만이라는 점에 유의해야합니다. libX11의 레벨은 Windows API의 상당 부분과 비슷합니다.)

+0

xserver는 커널을 지원하지 않고 어떻게 작동합니까? – x86

+2

@ x86 : 간단한 대답 : 복잡하고 장치마다 다릅니다. Xserver의 RTFSource가 마음에 든다면, 그러나 나는 결코 그 많은 세부 사항을 배우고 싶지 않았다. –

관련 문제