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

"엑스윈도우"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
잔글
31번째 줄: 31번째 줄:
  
 
*네트워크의 투명성 - 다른 시스템에서 실행중인 X클라이언트를 동시에 볼 수 있고 다른 시스템에서 동작하고 있는 프로그램을 자신의 시스템을 통해서 볼 수 있다. 또 자신의 시스템에서 실행되고 있는 것을 다른 시스템으로 보낼 수 있다. 이런 네트워크의 투명성은 분산처리 환경에서 매우 중요하다. 전체 네트워크의 투명성이 보장되면 사용자들은 네트워크에 연결된 모든 컴퓨터들을 마치 하나의 컴퓨터처럼 사용할 수 있게 된다.<ref>CoolJY 네 다락방, 〈[https://cooljy.tistory.com/155 X윈도의 개념과 특징]〉《TickTalk》, 2008-05-19</ref>
 
*네트워크의 투명성 - 다른 시스템에서 실행중인 X클라이언트를 동시에 볼 수 있고 다른 시스템에서 동작하고 있는 프로그램을 자신의 시스템을 통해서 볼 수 있다. 또 자신의 시스템에서 실행되고 있는 것을 다른 시스템으로 보낼 수 있다. 이런 네트워크의 투명성은 분산처리 환경에서 매우 중요하다. 전체 네트워크의 투명성이 보장되면 사용자들은 네트워크에 연결된 모든 컴퓨터들을 마치 하나의 컴퓨터처럼 사용할 수 있게 된다.<ref>CoolJY 네 다락방, 〈[https://cooljy.tistory.com/155 X윈도의 개념과 특징]〉《TickTalk》, 2008-05-19</ref>
 +
 +
==구조==
 +
엑스윈도우가 유닉스용 [[그래픽 사용자 인터페이스]](GUI)이므로 네트워크 시스템에 알맞게 되어있어야 한다. 즉, 여러 가지 다른 시스템을 하나의 방식으로 묶어 관리할 수 있도록 할 필요가 있다. 그래서 [[서버]](Server)와 [[클라이언트]](Client) 개념을 도입했고, 이에따라 프로그램 개발자는 각각의 [[아키텍처]](Architecture)를 신경쓰지 않고도 개발을 할 수 있으며 각각의 아키텍처에 맞도록 운용되므로 그 시스템 나름의 장점을 활용할 수 있다. 엑스윈도우 시스템을 이루는 것은 아래와같이 4가지로 나눌 수 있다.<ref name="구조">우짤래, 〈[https://m.blog.naver.com/PostView.nhn?blogId=belfe7&logNo=30047586536&proxyReferer=https:%2F%2Fwww.google.com%2F X-Window System에 관하여]〉, 《네이버 블로그 》, 2009-05-10</ref>
 +
*서버-클라이언트: 기본적으로, 클라이언트는 응용프로그램을 말한다. 엑스윈도우 클라이언트는 직접적으로 사용자와 통신할 수 없다. 클라이언트는 서버로부터 키보드 누름이나 마우스 버튼의 누름같은 사용자의 입력을 얻을 수 있다. 클라이언트는 서버가 그림을 그리도록 요구하는 엑스윈도우 명령을 실행한다. [[엑스서버]](X서버)란 애플리케이션 사용자의 컴퓨터에서 작동하며 그래픽 디스플레이 하드웨어를 제어하고 입출력을 담당한다. 엑스서버는 엑스클라이언트 애플리케이션이 스크린에 무엇인가를 그리거나 키보드와 마우스로부터 입력을 받으라는 요청을 받아 처리한다. 마우스 이동과 버튼 눌림같은 입력 신호를 클라이언트 프로그램에 전달도 한다. 또한 복잡한 데이터 구조체들을 관리한다.<ref name="구조"></ref>
 +
*X 프로토콜: 엑스 윈도우에서 각종 처리는 클라이언트와 서버라는 두가지 프로그램이 나누어서 하고 있다. 즉 클라이언트는 IPC(Inter-process communication)를 이용하여 서버의 장치 입출력을 제어한다. 이러한 X 서버와 X 클라이언트의 상호 작용은 메세지 교환을 통해 이루어지는데, 메세지 형태와 사용법을 X [[프로토콜]](Protocol)이라 한다. 엑스윈도우의 중요한 특징 중 하나가 이러한 메세지 교환이 같은 컴퓨터 뿐이 아닌 컴퓨터 사용자도 네트워크 컴퓨터에 존재하는 X 클라이언트 프로그램을 자신의 화면에 표시하여 실행시키는 것이 가능한 것이다. X 프로토콜은 서버와 클라이언트 사이에서 통신되는 요청, 응답, 에러의 기본 메시지다. 클라이언트가 윈도우를 생성해달라거나 도형을 출력해달라는 요구를 request queue에 넣어 서버에게 보내면 서버는 하드웨어를 제어, 화면에 디스플레이한 후 답신을 보낸다. 또한 서버는 하드웨어로부터 들어오는 입력을 받아들여 event queue에 넣어 클라이언트에 보내면 클라이언트가 그에 따른 처리를 한다.<ref name="구조"></ref>
 +
*X 라이브러리: X에서의 프로그램 개발은 시스템의 [[운영체제]](OS)나 하드웨어에 의존적인 조작을 처리해주는 서버와 대화할 수 있도록 X 프로토콜을 이해해야 한다. 그런데 이 X 프로토콜은 [[Xlib]]라는 라이브러리 루틴으로부터 발생시킨다. 그러나 Xlib의 기능은 그다지 많지 않다. 화면에 그림을 그리고 마우스에 반응하는 등의 기능만을 갖고 있다. 즉, 저수준 [[인터페이스]]다.<ref name="구조"></ref>
  
 
==활용==
 
==활용==

2020년 8월 10일 (월) 10:07 판

엑스윈도우(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]

활용

윈도우 매니저

startx의 명령어로 X를 처음 실행시키면 리눅스에서 볼 수 있는 초기 화면은 윈도우 95의 GUI환경을 모방한 fvwm95라는 윈도우 매니저를 사용하고 있는 상태로 녹색배경의 화면 아래쪽에 콘트롤 패널과 Windows95의 시작 버튼이 있는 것을 볼 수 있다. 그리고 Openwin 명령어를 사용하여 X를 실행시키 Open Look 환경을 제공하는 owlm 윈도우 매니저를 사용하여 X를 실행시킬 수도 있다. X는 이처럼 다양한 형태의 윈도우 매니저를 갖고 있다. 기본적인 fvwm을 포함해 Open Look과 비슷한 환경을 제공하는 olwm, motif 환경을 제공해주는 mwm(motiff windowmanager)등 다양한 윈도우 매니저를 갖고 있다. 간혹 X가 불안정하게 동작하거나 다운되는 경우가 있지만 그렇다고 리눅스 시스템 자체가 다운되는 것은 아니다. 이럴 땐 간단하게 ctrl+alt+backspace를 사용해 X만 종료시킬 수 있다.

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 우짤래, 〈X-Window System에 관하여〉, 《네이버 블로그 》, 2009-05-10
  5. 사제스, 〈X window 정의〉《초보개발자의 꿈과 사랑》, 2006-08-25

참고자료

같이 보기


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