검수요청.png검수요청.png

엑스윈도우

해시넷
Asadal (토론 | 기여)님의 2020년 8월 10일 (월) 10:30 판
이동: 둘러보기, 검색
엑스윈도우(X Window)
엑스윈도우(X Window)

엑스윈도우(X Window)는 리눅스(Linux)와 유닉스(UNIX) 등의 운영체제 위에서 작동하는 그래픽 유저 인터페이스(GUI) 기반의 운영체제이다. 엑스윈도 또는 간략히 X11 또는 X라고도 부른다. 1984년 미국 매사추세츠 공과대학교(MIT)에서 개발했다. 마이크로소프트윈도우(Windows) 시스템과 이름은 비슷하지만, 별개의 운영체제(OS)이다. MIT 라이선스를 따른다.

개요

윈도우는 모니터상의 화면을 여러 개의 다중화면으로 분할하여 각기 다른 작업을 수행할 수 있게 해주는 방법이다. 윈도우의 종류는 여러 가지가 있으나 미국 MIT 공대에서 개발한 X 윈도우가 거의 표준화되어 있다. X 윈도우 체계는 UNIX 워크스테이션의 GUI를 위한 기초 수단으로서 확고한 지위를 누리고 있다. 윈도우 체계는 컴퓨터와 사용자간의 대화를 위한 사용자 인터페이스 기능을 제공한다.[1]

등장배경

컴퓨터의 사용자 인터페이스는 윈도우 체계가 등장하기 이전부터 이미 터미널을 사용하는 방법으로 널리 이용되어 왔다. 그러나 사용자 인터페이스가 사용자에게 사용하기 쉬운 환경을 제공하는 데에는 한계가 있다. 또한 멀티 태스크(Multi-Task)와 같은 운영체계기능이나 고도의 그래픽 기능을 충분히 살리지 못하는 등의 문제가 있다. 윈도우 체계는 터미널이 가지고 있는 이와 같은 사용자 인터페이스의 계약을 극복하기 위하여 출현하였다.[1]

역사

  • 1984년 X Window는 원래 플랫폼과 독립적으로 작동하는 윈도우 시스템 개발을 위해 IBM과 MIT, DEC 공동의 아데나 프로젝트를 통해서 Bob Scheifler와 Jim Gettys가 처음 개발하였다.
  • 1985년 : MIT가 라이센스를 포기하였으며 1988년에 X 컨소시엄이 이를 넘겨받아 오늘 날은 Open Group에서 관리하고 있다.
  • 1986년 : Bob Scheifler이 누구나 자유롭게 X를 사용하고 배포할 수 있는 오픈 소스 프로젝트 디자인을 만들었다.
  • 1987년 : 오픈 소스 프로젝트 하에 X11이 발표된다.
  • 1988년 : 수많은 컴퓨터 제조업체로 이루어진 X컨소시엄이 조직되고, X컨소시엄에 의해서 X11버전이 처음으로 개정되어 X11R2가 발표되었다.
  • 1996년 : X컨소시엄은 최종 개정판인 X11R6 버전을 내놓으면서 X11R6.3 버전을 끝으로 해체되었다.
  • 1996년 : 오픈 소프트웨어 재단과 X/Open으로 형성된 오픈 그룹이 X11R6.4 버전을 발표하였지만, 오픈 그룹은 기존 공개 배포 라이선스 정책을 무시한 채, XFree86와 같은 수많은 프로젝트와 일부 상용 제조업체들의 참여를 가로막는 새로운 라이선스로 인한 잡음으로 결국에는 그 해 가을 기존 배포 라이선스 정책에 따라 X11R6.4 버전을 다시 배포하였다.
  • 1999년 : 오픈 그룹은 X.org를 만들고, X.org에 의해서 X11R6.5.1이 나오게 되었다.
  • 2004년 : X.org 재단이 만들어졌으며, XFree86 4.4RC2와 X11R6.6을 기반으로 한 X11R6.7 버전이 개발되었다.
  • 2004년 9월 : X11R6.8 버전을 발표하였으며, 이 버전은 투명 창 지원, 체계적인 시각 효과 및 해상도 변경 기능, 3차원 가상 현실 디스플레이 장치 도구 지원, 섬네일 기능 등 다양한 시각적인 기능과 효과를 지원한다.
  • 2012년 6월 : 가장 최근 버전 X11R7.7이 개발된었다.[2]

특징

  • 클라이언트/서버 구조 - X서버와 X클라이언트로 이루어져 있으며 X서버는 사용자가 클라이언트 프로그램을 사용하기 위해서 필요한 키보드의 입력 등의 정보를 X클라이언트에게 전송해주는 역할을 하고 X클라이언트는 사용자가 작업을 하기 위해 실행시킨 X윈도우용 프로그램을 말한다.
  • 장치의 독립성 - X윈도우 시스템은 하드웨어의 제어에 필요한 것들을 모두 처리해주는 X서버가 있기 때문에 X클라이언트가 다양한 키보드나 마우스 등이 시스템에서도 실행될 수 있는 장치의 독립성을 지닐 수 있다. 네트워크 환경에서 다른 시스템의 X클라이언트를 H/W가 틀린 자신의 시스템에 실행시킬 때 유용하게 사용된다.
  • 네트워크의 투명성 - 다른 시스템에서 실행중인 X클라이언트를 동시에 볼 수 있고 다른 시스템에서 동작하고 있는 프로그램을 자신의 시스템을 통해서 볼 수 있다. 또 자신의 시스템에서 실행되고 있는 것을 다른 시스템으로 보낼 수 있다. 이런 네트워크의 투명성은 분산처리 환경에서 매우 중요하다. 전체 네트워크의 투명성이 보장되면 사용자들은 네트워크에 연결된 모든 컴퓨터들을 마치 하나의 컴퓨터처럼 사용할 수 있게 된다.[3]

구조

엑스윈도우가 유닉스용 그래픽 사용자 인터페이스(GUI)이므로 네트워크 시스템에 알맞게 되어있어야 한다. 즉, 여러 가지 다른 시스템을 하나의 방식으로 묶어 관리할 수 있도록 할 필요가 있다. 그래서 서버(Server)와 클라이언트(Client) 개념을 도입했고, 이에따라 프로그램 개발자는 각각의 아키텍처(Architecture)를 신경쓰지 않고도 개발을 할 수 있으며 각각의 아키텍처에 맞도록 운용되므로 그 시스템 나름의 장점을 활용할 수 있다. 엑스윈도우 시스템을 이루는 것은 아래와같이 4가지로 나눌 수 있다.[4]

  • 서버-클라이언트: 기본적으로, 클라이언트는 응용프로그램을 말한다. 엑스윈도우 클라이언트는 직접적으로 사용자와 통신할 수 없다. 클라이언트는 서버로부터 키보드 누름이나 마우스 버튼의 누름같은 사용자의 입력을 얻을 수 있다. 클라이언트는 서버가 그림을 그리도록 요구하는 엑스윈도우 명령을 실행한다. 엑스서버(X서버)란 애플리케이션 사용자의 컴퓨터에서 작동하며 그래픽 디스플레이 하드웨어를 제어하고 입출력을 담당한다. 엑스서버는 엑스클라이언트 애플리케이션이 스크린에 무엇인가를 그리거나 키보드와 마우스로부터 입력을 받으라는 요청을 받아 처리한다. 마우스 이동과 버튼 눌림같은 입력 신호를 클라이언트 프로그램에 전달도 한다. 또한 복잡한 데이터 구조체들을 관리한다.[4]
  • X 프로토콜: 엑스 윈도우에서 각종 처리는 클라이언트와 서버라는 두가지 프로그램이 나누어서 하고 있다. 즉 클라이언트는 IPC(Inter-process communication)를 이용하여 서버의 장치 입출력을 제어한다. 이러한 X 서버와 X 클라이언트의 상호 작용은 메세지 교환을 통해 이루어지는데, 메세지 형태와 사용법을 X 프로토콜(Protocol)이라 한다. 엑스윈도우의 중요한 특징 중 하나가 이러한 메세지 교환이 같은 컴퓨터 뿐이 아닌 컴퓨터 사용자도 네트워크 컴퓨터에 존재하는 X 클라이언트 프로그램을 자신의 화면에 표시하여 실행시키는 것이 가능한 것이다. X 프로토콜은 서버와 클라이언트 사이에서 통신되는 요청, 응답, 에러의 기본 메시지다. 클라이언트가 윈도우를 생성해달라거나 도형을 출력해달라는 요구를 request queue에 넣어 서버에게 보내면 서버는 하드웨어를 제어, 화면에 디스플레이한 후 답신을 보낸다. 또한 서버는 하드웨어로부터 들어오는 입력을 받아들여 event queue에 넣어 클라이언트에 보내면 클라이언트가 그에 따른 처리를 한다.[4]
  • X 라이브러리: X에서의 프로그램 개발은 시스템의 운영체제(OS)나 하드웨어에 의존적인 조작을 처리해주는 서버와 대화할 수 있도록 X 프로토콜을 이해해야 한다. 그런데 이 X 프로토콜은 Xlib라는 라이브러리 루틴으로부터 발생시킨다. 그러나 Xlib의 기능은 그다지 많지 않다. 화면에 그림을 그리고 마우스에 반응하는 등의 기능만을 갖고 있다. 즉, 저수준 인터페이스다.[4]

활용

윈도우 매니저

윈도우 매니저는 엑스윈도우 시스템의 외형을 결정짓는 프로그램이다. 윈도우 메뉴의 구성, 마우스 버튼의 동작, 스크롤바, 아이콘 등을 윈도우 매니저가 결정한다. (Shell)의 종류가 여러가지가 있고, 윈도우(Windows)에서도 프로그램 매니저 외에 다른 프로그램들을 쉘로 사용할수 있듯이 XFree86에서도 사용하는 윈도우 매니저가 여러가지가 있다. 윈도우 매니저마다 모양과 기능의 차이가 있고, 마우스 버튼을 사용하는 것도 차이가 있다. XFree86이 실행되면 위의 윈도우 매니저 중 하나로, 혹은 2개 이상의 매니저로 실행된다. 각각의 매니저별로 약간의 구성과 마우스 키, 메뉴 등에 차이가 있다. 만약, 이 매니저 중 아무것도 실행이 안된다면 윈도우 같은 것이 뜨지만 한 쪽 구석에 single tasking 모듈(Module)의 화면 하나가 나올 뿐이다. 이 상태에서는 단지 하나의 콘솔(Console) 상태와 비슷한 상황인데, 여기에서 fvwm& 이라고 치면 매니저가 실행된다.[4]

  • fvwm: 가장 많이 사용되는 윈도우 매니저로 startx로 엑스윈도우를 구동하면 나타나는 윈도우 매니저다. 마우스 버튼 3개를 모두 사용한다. 왼쪽 버튼은 윈도우의 백그라운드에서 X용 프로그램 메뉴를 부른다. 가운데 버튼은 윈도우 메뉴를 호출한다. 백그라운드에서 부를 수 있고, 윈도우의 타이틀 바에서 윈도우 메뉴를 호출할 수 있다. 백그라운드에서 윈도우 메뉴를 호출하면 선택되는 것은 어느 윈도우에 지정할 수 있고, 타이틀 바에서는 그 윈도우에 한정된다. 가운데 버튼이 없는 마우스는 두 개의 버튼을 동시에 누르면 된다. 오른쪽 버튼은 현재 실행되고 있는 윈도우의 리스트를 보여준다.[4]
  • olvwm, olwm: olvwm은 openwin으로 윈도우를 실행했을 때 사용되는 윈도우 매니저다. 이것은 썬 스팍스테이션의 OpenWindow와 비슷한 인터페이스(Interface)다. 화면이 단순하고 화려하지 않다. 마우스 오른쪽 버튼으로 프로그램을 호출한다. olvwm은 olwm에 가상 화면을 사용하도록 기능을 추가한 것이다. 마우스의 오른쪽 버튼으로 프로그램을 호출한다. 여기에 등록된 메뉴로 거의 모든 애플리케이션으르 실행할 수 있다.[4]
  • mwm: mwm은 Motif의 윈도우 매니저로 리눅스(Linux)에 기본적으로 들어 있는 것은 아니다. Motif는 사용이며 엑스윈도우의 하나의 표준이다. 전용으로 개발된 프로그램은 컴퓨터의 기종에 상관없이 소스를 가져와 컴파일(Compile)하는 것만으로 다른 기종의 컴퓨터에 이식할 수 있다는 장점이 있다. mwm은 fvwm과 비슷하게 오른쪽 마우스 버튼으로 프로그램 매니저를 대신 하지만 fvwm에 비해 기능이 현저히 적다. 프로그램을 실행하기 위해서는 프롬프트 상태에서 입력하거나 파일 매니저에서 실행해야 한다.[4]
  • WindowMaker: 설치와 설정이 간단하고 메뉴편집이나 여러가지 면에서 간단하고 쉬우며 또 멋진 화면을 구성할 수 있다. 설정파일은 설치하고 난 후 홈디렉토리에서 wmaker.inst를 실행하면 생기는 GNUstep 디렉토리에 모여있다.[4]

X 어플리케이션

  • xterm : GUI환경을 가지고 있다고 해서 모든 것을 마우스 클릭만으로 해결할 수 있는 것은 아니다. 그래서 마우스라는 편리한 입력장치가 개발된 지금 까지도 그리고 PC에서 사용되는 주변장치 중에서 유일하게 커다란 변화의 물결을 겪지 않고 아직까지 이 키보드라는 입력장치는 한결같이 사용되고 있다. X에서도 마찬가지로 키보드를 사용하여 시스템을 사용하는 경우가 많다. 그래서 마치 윈도우95를 사용하다가 도스창을 열어서 사용하듯 리눅스의 X에서도 터미널 모드에서 키보드 입력을 통하여 시스템을 사용할 수 있도록 해주는 윈도우를 띄울 수 있는데 이러한 프로그램을 xterm이라고 한다.
  • 한텀 : 한텀이란 xterm을 개조하여 한글을 사용할 수 있도록 한 것이다. X가 아닌 일반적인 콘솔 상태에서는 HAN을 사용하여 한글을 사용할 수 있듯이 xterm 상태에서는 한텀을 사용하여 한글을 구현할 수 있는 것이다. 그리고 콘솔에서 한글을 사용할 수 있게 해주는 HAN 프로그램과 마찬가지로 한텀에서도 한글 bash를 셸로 사용해야 정상적인 한글 입출력을 할 수 있다.
  • File manager : X에서도 윈도우95 등에서 볼 수 있는 파일메니저 프로그램을 사용하여 파일 관리를 할 수 있다. X의 파일매니저에는 xfileman 과 xfm 두 가지가 있다. 이중에서 xfm은 xfileman보다 좀더 강력한 기능을 제공해 준다. xfm이 실행되면 두 개의 윈도우가 생긴다. 하나는 디렉토리간의 이동을

표시해 주는 File manager 윈도우이고, 다른 하나는 자주 사용하는 애플리케이션들을 등록해 놓는 Application 윈도우이다.

  • 세연(seyon) : seyon은 X용 통신프로그램으로 한텀과 림크시켜서 사용하면 한글을 사용하는 일반 통신망에 자유로이 접속할 수있다. 그리고 일반적인 통신 프로그램이 갖고 있는 기능은 기본적으로 모두 갖추고 있기 때문에 별 불편 없이 사용할 수 있을 것이다.
  • xv : X에서도 xv를 사용하여 화면캡처, 그림파일 형식의 변환 등 다양한 그래픽관련 작업을 할 수 있다. xv 윈도우 안에서 마우스의 왼쪽버튼을 누르면 그래픽작업을 위한 콘트롤패널이 나타난다. GIF, jpeg, tiff, postscript, bmp 등 다양한 형식의 그림을 지원하기 때문에 원하는 형태의 파일 형식으로 저장할 수 있다.
  • Xpaint : Xpaint는 X에서 그림을 그리기 위한 프로그램이다. xv와 마찬가지로 다양한 파일 형식을 지원하며, 마우스를 통해서 그림을 그린다.
  • xclipboard : 윈도우에서 사용되는 클립보드와 마찬가지로 X에서도 Cut & Paste를 위한 클립보드가 있다. xterm을 사용하다가 복사하고자 하는 부분이 생기면 마우스의 왼쪽 버튼을 누른 채로 원하는 부분까지 드래깅하여 범위를 설정한다. 그 다음에 클림보드 윈도우로 가서 마우스의 두 개의 버튼을 동시에 누른다. 그러면 클립보드에 앞에서 설정한 부분이 그대로 복사되어 지는 것을 볼 수 있을 것이다.
  • 그 외의 유틸리티 : 이 외에도 계산기, Xcpustate, xspread, xload, game, xbiff, xwininfo등이 있다.[5]

각주

  1. 1.0 1.1 X Window〉《네이버 지식백과》
  2. X윈도 시스템〉《위키백과》
  3. CoolJY 네 다락방, 〈X윈도의 개념과 특징〉《TickTalk》, 2008-05-19
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 우짤래, 〈X-Window System에 관하여〉, 《네이버 블로그 》, 2009-05-10
  5. 사제스, 〈X window 정의〉《초보개발자의 꿈과 사랑》, 2006-08-25

참고자료

같이 보기


  검수요청.png검수요청.png 이 엑스윈도우 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.