답변:
(저는 그놈과 X의 관계를 조사하고 있습니다. 이해의 일부를 공유하고 싶습니다. 가능한 한 논리적으로 제시하겠습니다.)
아래는 GUI의 기본 구성 요소를 보여줍니다.
핵심 구성 요소는 디스플레이 서버 입니다. 사용 가능한 여러 디스플레이 서버가 있습니다. 같은 :
X, X11 및 X Window System은 동의어입니다. 그들은 모두 창 시스템을 의미 합니다. 윈도우 시스템은 사용자 인터페이스 를위한 WIMP (윈도우, 아이콘, 메뉴, 포인터) 패러다임을 구현하는 그래픽 사용자 인터페이스 (위에서 언급 한 것처럼 GUI )의 한 유형입니다 .
다음 은 Linux 및 Windows 시스템 모두를위한 주요 윈도우 시스템 목록입니다.
윈도우 서버 나 컴포 지터 와 같은 다른 이름 도 사용 되지만 모든 윈도우 시스템의 주요 구성 요소는 일반적으로 디스플레이 서버 라고 합니다 (윈도우 시스템은 일종의 GUI이고 디스플레이 서버는 모든 GUI의 핵심 부분이기 때문에 놀랄 일이 아닙니다) .
GUI를 실행하고 표시하는 모든 응용 프로그램 은 디스플레이 서버 의 클라이언트 입니다 . 디스플레이 서버와 해당 클라이언트는 통신 프로토콜 (일반적으로 디스플레이 서버 프로토콜 이라고 함)을 통해 서로 통신합니다 . 디스플레이 서버는 클라이언트와 사용자 사이의 중재자입니다. 디스플레이 서버는 커널, 키보드, 포인팅 장치 또는 터치 스크린과 같은 연결된 모든 입력 장치에서 커널이받는 모든 입력을 수신하여 올바른 클라이언트로 전송합니다. 디스플레이 서버는 또한 클라이언트의 컴퓨터 모니터 출력을 담당합니다. 디스플레이 서버 프로토콜네트워크가 가능하거나 네트워크가 투명 할 수 있습니다. (이것은 본질적으로 데이터 흐름과 라우팅에 관한 것이며 시각적 데이터는 여전히 데이터입니다.)
그리고 여기 에 따르면 :
X 서버는 다른 프로그램에 디스플레이 및 사용자 입력 서비스 를 제공 하는 프로그램입니다. 이에 비해 파일 서버는 다른 프로그램에 파일 저장 장치에 대한 액세스 권한을 제공합니다. 파일 서버는 일반적으로 원격 위치에 있으며 사용자가있는 시스템에서 파일 서버의 서비스를 사용합니다. 반대로 X 서버는 일반적으로 사용자가 위치한 컴퓨터에서 실행됩니다 . 디스플레이 및 사용자 입력 서비스는 컴퓨터에서 실행되는 프로그램과 원격 컴퓨터에서 실행되는 프로그램에 의해 요청 될 수 있습니다 .
따라서 X는 다음과 같이 구성됩니다.
여기 에 따르면 :
X는 GUI 환경을위한 기본 프레임 워크를 제공합니다 : 디스플레이 장치에서 창 그리기 및 이동 및 마우스 및 키보드와의 상호 작용. X는 사용자 인터페이스를 요구하지 않으며 개별 프로그램에 의해 처리됩니다. 따라서 X 기반 환경의 시각적 스타일은 크게 다릅니다. 다른 프로그램은 근본적으로 다른 인터페이스를 제공 할 수 있습니다.
즉, X는 프로그램에 창 그리기 / 이동 및 입력 상호 작용 과 같은 기본 작업을 수행 할 수있는 기능 만 제공합니다 . X는 비주얼 스타일을 강요하지 않습니다. "당신이 말한 것은" ... UI가 응용 프로그램에 UI를 제공하는 표준을 제공합니다 ... "는 잘못되었습니다.
그놈과 KDE는 모두 리눅스 데스크탑 환경 입니다. 데스크탑 환경은 공통 GUI를 공유 하는 운영 체제에서 실행되는 프로그램 번들입니다 .
그러나 위에서 언급 한 것처럼 X11은 디스플레이 서버로서 Xlib 또는 XCB와 같은 일부 라이브러리를 통해서만 기본 드로잉 기능 을 제공합니다 . 이러한 라이브러리를 통해 X11을 직접 인터페이스하는 응용 프로그램은 시각적 스타일 이 크게 다를 수 있습니다 .
그렇다면 공통 GUI를 만드는 방법은 무엇입니까? 여기 위젯 툴킷이 있습니다. GTK + 및 Qt 와 같은 . Wayland 및 X11 윈도우 시스템 에서 널리 사용됩니다 .
그놈은 GTK +를 사용합니다.
KDE는 Qt를 사용합니다.
그리고 여기에서 X 윈도우 시스템 데스크톱 환경의 비교입니다.
나는 거친 개념적 그림을 그립니다. OS 위의 세 부분은 매우 사용자 정의 할 수 있습니다. 이것이 많은 유연성 (혼동)이 발생하는 이유입니다.
그리고 여기 QT와 GTK에 대한 토론이 있습니다 (이 스레드에서는 주제가 아닐 수도 있습니다 ...)
Xorg (및 이전 Xfree 및 이전 X10 )는 X 윈도우 시스템 이라고하는 프로토콜을위한 서버입니다 . 응용 프로그램을 "화면"에 그릴 수 있습니다. X와 원격으로 연결될 수 있습니다. Gnome / KDE / Xfce 및 기타 창 관리자 / 데스크톱 환경은 X에서 실행되는 테두리 및 아이콘과 같은 것을 그리고 응용 프로그램 자체가 최소화하지 않도록 최소화하고 최대화하는 특수 응용 프로그램입니다.
그리고 Gnome과 KDE는 모두 MS Windows (및 Wayland에서 다양하게)에서 실행될 수 있거나 실행할 수 있기 때문에 X와 독립적이거나 가능할 수 있습니다.