Linux

X Window

Seraphic 2022. 2. 2. 22:20

X Window 개념

X Window 정의

  • X Window 란 플랫폼 독립적으로 작동하는 GUI 환경
  • 서버 클라이언트 구조를 기반으로 X protocol 을 통해 디스플레이 장치에 윈도우를 그려주고 입력장치를 통해 상호작용

X Window 특징

  • X protocol 이라 불리는 네트워크 프로토콜을 사용
  • 서버 클라이언트 모델을 사용하여 네트워크로 연결될 수만 있다면 X 윈도우를 이용할 수 있음
  • X server 는 X client 의 요청에 대하여 처리 후 응답하거나 이벤트를 직접 X client 에게 보낼 수 있음
  • X client 는 remote X server system 에서 동작하는 프로그램을 실행할 수 있음
  • X Window 는 사용자 인터페이스에 독립적
  • 서버 클라이언트 모델을 사용하므로 이론적으로 X protocol 만 준수할 수 있다면 어떤 시스템이든 이식이 가능

X Window 구조

X server

  • 키보드, 마우스, 화면과 같은 디바이스와 직접 통신 수행
  • 디스플레이 장치를 제어하여 X client 에게 디스플레이 서비스 제공
  • X server 는 local X client 와 통신하기 위해 /tmp/.X11-unix/X0 라는 유닉스 도메인 소켓을 사용
  • X server 는 remote X client 와 통신하기 위해 TCP 포트 6000번 사용
  • local 및 remote 의 다수의 X client 연결 허용

X client

  • Xlib 을 사용하여 작성된 응용 프로그램
  • 디스플레이 관련 서비스를 X server 에 요청
  • X server 에서 발생한 이벤트를 처리

X protocol

  • X protocol 이란 X server 와 X client 가 정보를 주고 받기 위한 메시지 형식을 정의한 통신 규약
  • X protocol 기본 메시지는 Request, Reply, Event, Error 로 구성
  • X server 와 X client 는 X protocol 메시지를 처리하기 위해 request queue, event queue 를 운용
  • X protocol 을 통해 X server 와 X client 는 높은 이식성을 갖고, remote 에서 local 에서 접속하는 것과 같은 동일한 사용자 경험을 갖는 것이 가능해 짐

Xlib/XCB

  • Xlib 은 C 언어로 작성된 X Window 시스템 프로토콜 클라이언트 라이브러리
  • 개발자는 Xlib 에서 제공하는 API 를 통해 X client 개발 가능
  • Xlib 기반으로 강력한 라이브러리 제공. e.g. Xt, XaW, Motif, FLTK, GTK+, Qt, Tk, SDL, SFML
  • XCB 는 Xlib 을 대체하기 위해 시작된 프로젝트. X.org 에서는 XCB 를 직접 사용

 

X.Org

 

X.Org

The X.Org project provides an open source implementation of the X Window System. The development work is being done in conjunction with the freedesktop.org community. The X.Org Foundation is the educational non-profit corporation whose Board serves this ef

www.x.org

Documentation for the X Window System

 

Documentation for the X Window System

 

www.x.org

 

'Linux' 카테고리의 다른 글

리눅스 주요 디렉터리 구조  (0) 2022.02.02
리눅스 개요  (0) 2022.01.31