리눅스마스터1급 : X 윈도우의 개념 및 특징
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 4,418 조회
- 0 추천
- 목록
본문
리눅스마스터1급 : X 윈도우의 개념 및 특징
X 윈도우 시스템(X Window System)은 리눅스에서 GUI(Graphic User Interface) 환경을 위한 것이다.
이런 그래픽 환경은 사용자들에게 직관적으로 다가오고 마우스를 이용하여 편하다.
그렇기 때문에 여러 가지 형태로 개발되고 있다.
네트워크를 통해 관리해야 할 환경이라면 X 윈도우를 사용하지 않는 경우가 대부분이겠지만 시스템을 근처에 두고 관리한다면 X 윈도우를 사용하는 것이 다반사일 것이다.
다음에는 리눅스에서의 X 윈도우 시스템에 대해서 간단하게 살펴보도록 하자.
X 윈도우 시스템의 정의
X 윈도우 시스템은 모든 종류의 애플리케이션과 유틸리티에 대해 GUI를 사용할 수 있는 기본 플랫폼을 제공하는 클라이언트/서버 시스템이다.
X 윈도우 시스템은 분산형 개방 시스템을 개발하기 위한 목적으로 수행된 아데나(Athena) 프로젝트의 일환으로 MIT에서 1984년 최초로 개발되었다.
X란 이름이 유래한 것은 W라는 윈도우 시스템을 기반으로 개발하였기에 붙여진 이름이다.
현재 X 윈도우 시스템은 X.org에서 개발과 관리를 맡고 있다.
리눅스가 사용자층을 급격히 증가시킬 수 있었던 것도 GUI 환경을 사용할 수 있도록 해 주는 X 윈도우가 있음으로 해서 가능하였다.
X 윈도우는 여러 가지 다른 시스템에서 GUI 환경을 사용할 수 있도록 제공해 주는 기본 플랫폼으로서, KDE, GNOME 등의 오픈소스 소프트웨어들이 구동되는 토대이기도 하다.
네트워크 시스템에 알맞은 방식으로 구현하기 위해서 서버/클라이언트 모델을 도입하였고, 이에 따라 개발자들은 각기 다른 아키텍처에 신경쓰지 않고 개발하는 것이 가능해졌으며 이로써 프로그램에 높은 이식성이 부여되었다.
1) X 윈도우 시스템을 이루는 4가지 요소
① 서버/클라이언트윈도우 시스템은 두 개의 개별 소프트웨어 부분에 의해 제어되는 서버/클라이언트 시스템이다.
한 부분은 클라이언트에서 실행하고, 다른 부분은 서버에서 실행한다.
클라이언트와 서버는 다른 시스템에 있거나 개인용 컴퓨터의 경우처럼 두 부분이 동일한 기계에 상주하여 실행될 수 있다.
일반적으로 서버/클라이언트와 달리 X 윈도우에서의 서버/클라이언트 관계는 일반 사용자가 알고 있는 것과 반대이다.
윈도우에서 클라이언트는 응용 프로그램을 실행하기 위해 필요한 프로그램과 자원을 제공하고, 서버는 응용 프로그램에서 수행된 결과를 출력 장치에 표시하는 역할을 한다.
② X Protocol윈도우에서 각종 처리는 클라이언트와 서버라는 두 가지 프로그램이 나누어서 하고 있다.
즉, 클라이언트는 IPC를 이용하여 서버의 장치 입·출력을 제어한다.
이러한 X 서버와 X 클라이언트의 상호 작용은 메시지 교환을 통해 이루어지는데, 메시지 형태와 사용법을 X 프로토콜이라 한다.
X 윈도우의 중요한 특징 중 하나가 이러한 메시지 교환이 같은 컴퓨터뿐이 아닌 네트워크를 통해서도 이루어질 수 있다는 것이다.
그렇기에 시스템 사양이 낮은 컴퓨터 사용자도 네트워크 컴퓨터에 존재하는 X 클라이언트 프로그램을 자신의 화면에 표시하여 실행시키는 것이 가능하다.
protocol은 서버와 클라이언트 사이에서 통신되는 Request, Reply, Event, Error의 기본 메시지이다.
클라이언트가 윈도우를 생성해 달라거나 도형을 출력해달라는 요구를 request queue에 넣어 서버에게 보내면, 서버는 하드웨어를 제어, 화면에 디스플레이한 후 답신을 보낸다.
또한 서버는 하드웨어로부터 들어오는 입력(예를 들어, 마우스나 키보드의 입력)을 받아들여 event queue에 넣어 클라이언트에 보내면 클라이언트가 그에 따른 처리를 한다.
③ Xlib, XtoolkitX에서의 프로그램 개발은 시스템의 OS나 하드웨어에 의존적인 조작을 처리해 주는 서버와 대화할 수 있도록 X protocol을 이해해야 한다.
그런데 이 X Protocol은 Xlib라는 라이브러리 루틴으로부터 발생시킨다.
그러나 Xlib의 기능은 그다지 많지 않다.
화면에 그림을 그리고 마우스에 반응하는 등의 기능만을 갖고 있다.
즉, 저수준 인터페이스이다.
그래서 상위 라이브러리인 Xtoolkit을 사용한다.
Xt Intrinsics, Xaw, XView, Motif, Qt, GTK 등이 그것이다.
2) XFree86
XFree86은 IBM PC에 호환되는 첫 번째 X 윈도우 시스템인 X386(이것은 X11R5 시리즈로 통합되었다)을 오픈소스 소프트웨어로서 개발을 지속하기 위해 1992년 9월에 시작되었다.
이것은 이후로 X의 일종의 이식 버전으로 발전되어 인기를 얻었고 결국 X 개발의 사실상 표준으로 자리잡았다.
그리고 1999년경 X11R6.5.1 버전이 발표되면서 X 서버의 개발은 중단 위기에 있었는데, 이때 XFree86 프로젝트가 기술 혁신을 이끌었는데, XFree86 팀이 X.Org에 명예 회원으로 참여했다.
결국 2004년 4월에 X11R6.6을 업그레이드하면서 XFree86의 4.4c2 버전을 포함시켰고, 그 결과 GPL에 상응하는 라이선스를 가지는 X.org 서버 X11R6.7이 발표되었다.
XFree86의 개발은 2008년 12월 15일에 발표된 4.8.0까지 지속되었다.
3) X.org
X.org 재단은 2004년 4월 6일에 X.Org X11R6.6과 XFree86 4.4.0 RC2에 기초하여 X.Org 6.7을 발표하였는데, 이것이 X11R6.7이다.
이것은 X.Org 재단의 모놀리식 버전으로서 2005년 12월 21일에 발표된 X.Org 6.9까지 개발이 진행되었다.
그리고 주요 소스코드를 리팩토링하여 “모듈 오토툴 버전(modular autotooled version)”이 X11R7.0으로 발표되었다.
이것은 EXA를 포함하였다.
현재는 2012년 6월 6일에 발표된 X11R7.7이 최신 버전이고, X11R7.8 버전이 개발중에 있다.
한편 이것에 포함된 xorg server는 X11R7.x의 코어이다(xorg server의 ChangeLog에는 2005년 7월 2일에 Daniel Stone이 초기 빌드 시스템이 착수된 것으로 기술되어 있다).
X.org 6.7 버전이 발표된 시점부터 레드햇 페도라, SuSE, 데비안 등의 리눅스 배포판에서 이것을 사용하기 시작했다.
4) 윈도우 매니저
리눅스를 쓸 때 GUI 환경을 제공하는 Metacity(GNOME 2.x의 윈도우 매니저), Mutter (GNOME 3.x의 윈도우 매니저), KWin(KDE의 윈도우 매니저), Window Maker, TWM 등이 바로 이 윈도우 매니저(Window Manager)이다.
그리고 이러한 윈도우 매니저는 고유의 라이브러리를 사용하는데, 그것이 Motif, GTK, QT 등이며 현재 리눅스에서는 대표적으로 GTK와 QT가 각각 GNOME과 KDE에 사용되고 있다.
이러한 윈도우 매니저는 윈도우들의 디스플레이를 제어하여 사용자가 그들과 상호 작용할 수 있도록 하는 방법들을 제공한다.
관련자료
-
이전
-
다음