Xorg와 Gnome / KDE / Xfce의 차이점


21

UNIX 시스템에 대해 더 많이 배우고 싶은데 아주 간단한 질문이 있습니다. 나는 X가 무엇을 위해 사용되는지 알고 있다고 생각한다. 그것은 응용 프로그램에 UI를 제시하는 표준을 제공한다.

그렇다면 왜 Gnome / KDE가 필요하며 X와 어떤 관련이 있습니까? 그들은 X를 응용 프로그램과 GUI 사이의 일종의 인터페이스로 사용하고 있다고 생각 했으므로 GUI는 사용자 정의 가능하지만 인터페이스는 응용 프로그램간에 동일하게 유지됩니다.

사실입니까, 아니면 Gnome / KDE가 X와 독립적입니까?

답변:


29

(저는 그놈과 X의 관계를 조사하고 있습니다. 이해의 일부를 공유하고 싶습니다. 가능한 한 논리적으로 제시하겠습니다.)

1. GUI는 무엇으로 구성되어 있습니까?

아래는 GUI의 기본 구성 요소를 보여줍니다.

여기에 이미지 설명을 입력하십시오

핵심 구성 요소는 디스플레이 서버 입니다. 사용 가능한 여러 디스플레이 서버가 있습니다. 같은 :

  • X11 (주로 * nix)
  • 웨이 랜드 (주로 * nix)
  • Mir (주로 * nix)
  • SurfaceFlinger (Google Android 용)
  • Quartz Compositor (Apple MacOS가 사용하는 것입니다.)
  • 데스크톱 창 관리자 (Microsoft Windows에서 사용)

2. X 란 무엇입니까?

X, X11 및 X Window System은 동의어입니다. 그들은 모두 창 시스템을 의미 합니다. 윈도우 시스템은 사용자 인터페이스 를위한 WIMP (윈도우, 아이콘, 메뉴, 포인터) 패러다임을 구현하는 그래픽 사용자 인터페이스 (위에서 언급 한 것처럼 GUI )의 한 유형입니다 .

다음 은 Linux 및 Windows 시스템 모두를위한 주요 윈도우 시스템 목록입니다.

윈도우 서버컴포 지터 와 같은 다른 이름 도 사용 되지만 모든 윈도우 시스템의 주요 구성 요소는 일반적으로 디스플레이 서버 라고 합니다 (윈도우 시스템은 일종의 GUI이고 디스플레이 서버는 모든 GUI의 핵심 부분이기 때문에 놀랄 일이 아닙니다) .

GUI를 실행하고 표시하는 모든 응용 프로그램 은 디스플레이 서버클라이언트 입니다 . 디스플레이 서버와 해당 클라이언트는 통신 프로토콜 (일반적으로 디스플레이 서버 프로토콜 이라고 함)을 통해 서로 통신합니다 . 디스플레이 서버는 클라이언트와 사용자 사이의 중재자입니다. 디스플레이 서버는 커널, 키보드, 포인팅 장치 또는 터치 스크린과 같은 연결된 모든 입력 장치에서 커널이받는 모든 입력을 수신하여 올바른 클라이언트로 전송합니다. 디스플레이 서버는 또한 클라이언트의 컴퓨터 모니터 출력을 담당합니다. 디스플레이 서버 프로토콜네트워크가 가능하거나 네트워크가 투명 할 수 있습니다. (이것은 본질적으로 데이터 흐름과 라우팅에 관한 것이며 시각적 데이터는 여전히 데이터입니다.)

그리고 여기 에 따르면 :

X 서버는 다른 프로그램에 디스플레이 및 사용자 입력 서비스제공 하는 프로그램입니다. 이에 비해 파일 서버는 다른 프로그램에 파일 저장 장치에 대한 액세스 권한을 제공합니다. 파일 서버는 일반적으로 원격 위치에 있으며 사용자가있는 시스템에서 파일 서버의 서비스를 사용합니다. 반대로 X 서버는 일반적으로 사용자가 위치한 컴퓨터에서 실행됩니다 . 디스플레이 및 사용자 입력 서비스는 컴퓨터에서 실행되는 프로그램과 원격 컴퓨터에서 실행되는 프로그램에 의해 요청 될 수 있습니다 .

따라서 X는 다음과 같이 구성됩니다.

  • 디스플레이 서버
  • 디스플레이 서버 프로토콜
  • 개발을위한 라이브러리들
  • 그리고 다른 것들

여기에 이미지 설명을 입력하십시오

여기 에 따르면 :

X는 GUI 환경을위한 기본 프레임 워크를 제공합니다 : 디스플레이 장치에서 창 그리기 및 이동 및 마우스 및 키보드와의 상호 작용. X는 사용자 인터페이스를 요구하지 않으며 개별 프로그램에 의해 처리됩니다. 따라서 X 기반 환경의 시각적 스타일은 크게 다릅니다. 다른 프로그램은 근본적으로 다른 인터페이스를 제공 할 수 있습니다.

즉, X는 프로그램에 창 그리기 / 이동입력 상호 작용 과 같은 기본 작업을 수행 할 수있는 기능 만 제공합니다 . X는 비주얼 스타일을 강요하지 않습니다. "당신이 말한 것은" ... UI가 응용 프로그램에 UI를 제공하는 표준을 제공합니다 ... "는 잘못되었습니다.

3. 그놈 / KDE 란 무엇입니까

그놈과 KDE는 모두 리눅스 데스크탑 환경 입니다. 데스크탑 환경은 공통 GUI를 공유 하는 운영 체제에서 실행되는 프로그램 번들입니다 .

그러나 위에서 언급 한 것처럼 X11은 디스플레이 서버로서 Xlib 또는 XCB와 같은 일부 라이브러리를 통해서만 기본 드로잉 기능제공합니다 . 이러한 라이브러리를 통해 X11을 직접 인터페이스하는 응용 프로그램은 시각적 스타일크게 다를 수 있습니다 .

그렇다면 공통 GUI를 만드는 방법은 무엇입니까? 여기 위젯 툴킷이 있습니다. GTK +Qt 와 같은 . Wayland 및 X11 윈도우 시스템 에서 널리 사용됩니다 .

그놈은 GTK +를 사용합니다.

KDE는 Qt를 사용합니다.

그리고 여기에서 X 윈도우 시스템 데스크톱 환경의 비교입니다.

요약...

나는 거친 개념적 그림을 그립니다. OS 위의 세 부분은 매우 사용자 정의 할 수 있습니다. 이것이 많은 유연성 (혼동)이 발생하는 이유입니다.

여기에 이미지 설명을 입력하십시오

추가 1-1:26 PM 9/21/2018

그리고 여기 QT와 GTK에 대한 토론이 있습니다 (이 스레드에서는 주제가 아닐 수도 있습니다 ...)


""서버 "라는 용어가 사용자 앞의 소프트웨어에 적용된다는 사실은 종종 원격 컴퓨터의 서비스를 클라이언트로 사용하는 프로그램에 익숙한 사용자에게는 놀라운 일입니다. , 사용자의 그래픽 디스플레이 및 입력 장치는 로컬 X 서버가 사용자와 통신하기 위해 사용자의 그래픽 및 입력 장치를 공유해야하는 로컬 및 원격 호스팅 X 클라이언트 프로그램 모두에 사용할 수있는 리소스가됩니다. " ( wiki 참조 )
야 오빈

1
"X 서버가 일반적으로 현재있는 컴퓨터에서 실행되고 있습니다"라는 문장이 누군가 혼동 될 경우 위의 설명을 참조하십시오. 믿을 수 없을만큼 멋진 답변을 주신 @smwikipedia에 감사드립니다!
yaobin

5

Xorg (및 이전 Xfree 및 이전 X10 )는 X 윈도우 시스템 이라고하는 프로토콜을위한 서버입니다 . 응용 프로그램을 "화면"에 그릴 수 있습니다. X와 원격으로 연결될 수 있습니다. Gnome / KDE / Xfce 및 기타 창 관리자 / 데스크톱 환경은 X에서 실행되는 테두리 및 아이콘과 같은 것을 그리고 응용 프로그램 자체가 최소화하지 않도록 최소화하고 최대화하는 특수 응용 프로그램입니다.

그리고 Gnome과 KDE는 모두 MS Windows (및 Wayland에서 다양하게)에서 실행될 수 있거나 실행할 수 있기 때문에 X와 독립적이거나 가능할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.