X WINDOW SYSTEM 소개와 설치법

이수준

이 글은 리눅스 월드의 1998년 1월 기사입니다.
글 전체를 홈페이지나 다른인쇄물에 올릴수 있으나 수정하여서는 안됩니다. 일부만을 인용할 경우 리눅스월드 1998년 1월호에 실린글임을 명시하여야하며 리눅스 월드 홈페이지 URL (
http://www.linuxlab.co.kr)도 함께 표시하여야 한다.

WINDOWS SYSTEM

X WINDOWS 는 미국 MIT에서 개발된 그래픽 윈도우와 네트위킹 시스템이다. X WINDOW SYSTEM 은 네트위킹 지향형이고, 그 응용 프로그램들은 장치 독립적이어서 이식성이 뛰어나다  여기서 네트워크 지형적이라는 말은 쉽게 말해 사용자가 데이터나 명령을 입력하고 그 결과를 그래픽 윈도우로 보여주는 컴퓨터와 실지로 입력 받는 것을 계산처리하는 컴퓨터가 달라도 된다는 것이다  즉 네트워크 상에서 다른 곳에 있는 컴퓨터에게 일을 시키고 자기 컴퓨터로는 그 결과가 마치 자신의 컴퓨터가 처리한 것처럼 볼 수 있다는 말이다. 장치 독립적이라는 말은 X -WINDOW 가 이식된 모든 종류의 컴퓨터에서는 특정 디스플레이밍을 할 수 있는 것을 말한다. 무엇보다도 사용자들이 X WINDOW를 좋아하는 이유는 GUI를 통하여 사용자에게 만족할 만한 그래픽 환경을 만들어주고 그것을 구축하기 위한 유용한 툴들을 지원한다는데 가장 큰 이유가 아닐까 ?

X WINDOW 설치

여러분들이 대부분 책자나 인터넷에 받은 Linux 배포판에는 기본적으로 XFREE86이 제공된다. 하지만 자신이 가진 배포판의 버전이 낮거나 혹은 항상XFREE86의 최신 버전을 고집하는 이들은  ftp.xfree86.org에서 최신의 버전의 binary 와 source를 구할 수 있다. (평소에 여기엔 많은 사람들이 몰려 접속하기가 어렵다 ftp.cdrom.com 등 mirror site 로 접속하여 download 받는 것도 좋은 방법이다. ) 여기에는 비단 Linux 용만이 아니라 x86용 FreebBSD 나 Solaris 에서도 돌아가는 X WINDOW 도 구할 수 있다 지금 설명하고자 하는 내용들은 모두 Linux-ix86 directory 에 있는 파일들을 중심으로 한다.( 필자가 글을 쓸 당시 XFREE86의 버전은 3.3.1 이다.) 먼저 파일들을 받아서 설치하기 전에 README 파일과 RELNOTES 파일을 꼭 읽어보기 바란다. . 여기에는 기본적인 설치방법과 그 외 유용한 정보들을 담겨져 있다 기본적으로 필요한 파일들은 다음과 같다.

preinst.sh       Pre-installation  script
postinst.sh      Post-installation script
extract          XFree86 extraction utility
X331bin.tgz      Clints, run-time libs and app-default files
X331doc.tgz      Documentation
X331fnts.tgz     75dpi, misc and PEX fonts
X331lib.tgz      Data files required at run-time
X331man.tgz      Manual pages
X331set.tgz      XF86Setup  utility 
X331VG16.tgz     16 colour VGA server
                 (XF86Setup needs this server)
X331upd.tgz      Changes since 3.3 (except the servers)
X331cfg.tgz      samples config files for xinit, xdm

그리고 자신의 컴퓨터에 설치된 디스플레이 어댑터와 동일한 X SERVER를 구한다.

X3318514.tgz     8514/A server
X331AGX.tgz      AGX  server
X331l128.tgz     l128server
X331Ma32.tgz     Mach 32 server
X331Ma64.tgz     Mach 64 server
X331Ma8.tgz      Mach 8 server
X331Mono.tgz     Mono server
X331P9K.tgz      p9000 server
X331S3.tgz       S3 server
X331S3V.tgz      S3 ViRGE server
X331SVGA.tgz     SVGA server
X331TGA.tgz      DEC 21030 (TGA) server
X331VG16.tgz     16 colour VGA server
                 XF86Setup needs this server)
X331W32,tgz      ET4000/W32, ET6000 server

그 외의 파일들은 모두 선택적으로 설치하면 된다 일단 자신이 설치하고자 하는 파일들을 /usr/X11R6 directory로 옮긴다. . (RELNOTE 에서는 /var/temp에서 작업할 것은 권하고 있다. ) 파일들을 설치하기 전에 먼저 preinst.sh를 실행시킨다 다음부터 자기에게 필요한 파일들을 설치한다 설치시 tar나 gzip으로 설치하는 것보다 extract 라는 프로그램을 쓰는 것이 좋다. 더 이상 설치할 파일이 없다. 면 마지막으로 postinst.sh를 실행시켜 준다.

RedHat 4.2를 쓰시는 분들은 RedHat ftp site로 가면 /pub/redhat-4.2/updates/i386 directotory 에 XFREE86 3.3.1 version을 rpm 파일로 구할 수 있을 것이다. 역시 필요한 파일들을 다운 받아서 rpm의 -Uvh나 -re placepkgs option을 이용해서 설치를 하면 된다. 파일들을 무사히 설치만 했다고 해서 X WINDOW가 작동이 되는 것은 아니다. X WINDOW를 실행하기 위해서는 자신의 모니터와 디스플레이 어댑터에 맞게 XF86config파일을 만들어주어야 한다.

XF86Config File의 작성

XF86Config File은 X WINDOW를 사용하기 위한 설정파일로 이것은 만드는 방법은 크게 두가지로 나뉘는데 여기서 설명할 XF86Config 이라는 script 와 XF86setup 이라는 script 이다. XF86Setup은 xf86config이 하는 일을  tc/tk 와 XF86_VG!6 server를 이용하여 보다 손쉽게 XF86Config을 작성할수 있도록 도와준다.

먼저 xf86config을 실행시키면 xf86config 에 대한 기본 설명이 나온다. 계속 리턴을 치고 넘어가면 맨 처음자신이 가지고 있는 마우스의 종류를 물어온다.

Fist specify a mouse protocal type . Choose one from the follow list;
1. Microsoft compatible (2-button protocol)
2. Mouse Systems (3-button protocol)
3. Bus Mouse
4. PS/2 Mouse
5. Logitech Mouse (serial, old type,Logitech protocol)
6. Logitech MouseMan (Microsoft compatible)
7. MM Series
8. MM HitTablet
9. Microsoft IntelliMouse
If you have a two-button mouse, it is most likely of type 1. and if you have
a three- button mouse. it can probably support both protocol 1 and 2 There are
two main varieties of the latter type : mice with a switch to the 
portocol , and mice the default to 1 and require a button to be held at
boot-time to select protocol 2.. Some mice can be convince to do 2 by sending
a special sequence to the serial port (see the ClearDTR/ClearRTs options).
Enter a protocol number ;

보통 2버튼의 마우스는 1번을 누르면 되고 특별히 ps/2 타입의 마우스를 가진 사람이면 4번을 선택하자  다음 마우스를 Emulate 3 Buttons 할 것인지 선택을 하고 곧 이어 마우스 디바이스를 선택하는 항목이 나온다.

Now give the full device full name that mouse os connected to.for example
/dev/tty00.Just pressing enter will use the default.. /dev/mouse.
Mouse device : 

Linux를 처음 설치할 때 mouse 드라이버를 제대로 설정해주었다면 여기서는 기본적으로 /dev/mouse 라고 해주기만 하면 잘 될 것이다 다음 XFREE86에서 제공하는 keybord layout을 설정할 것인지를 묻는 메시지를 처리하면 이제 중요한 모니터에 관한 사항이 나타난다. 처음 묻는 것은 자신의 모니터에 맞는 수평주사율(horizontal range)을 선택하는 것인데 만약 자신의 모니터에 대해 잘 모르겠다면 모니터 제품 설명서를 참조하거나 모니터 뒷면에 보면 간단히 나와있을 것이다.

hysnc in kHz : monitor type with characteristic modes
1.  31.5; Standard VGA, 640x480 @ 60Hz
2.  31.5-35.1 ; Super VGA, 800x600 @ 56Hz
3.  31.5, 35.5 ; 8514 Compatible, 1024x768 @ 87Hz  interlaced (no 800x600)
4.  31.5, 35.15. 35.5 ; Super VGA, 1024x768 @ 87hz interlaced, 800x600 @ 56Hz
5.  31.5-37.9 ;Extended Super VGA, 800x600 @ 60 Hz, 640x 480 @ 72Hz
6.  31.5 -48.5; Non-Interlaced SVGA, 1024x768 @ 60Hz, 800x600 @ 72Hz
7.  31.5 -57.0 ; High Frequency SVGA, 1024x768 @ 70Hz
8.  31.5 -64.3 ; Monitor that can do 1280x1024 @ 60 Hz
9.  31.5 -82.0 ; Monitor that can do 1280x1024 @ 74Hz
10. 31.5-82.0 ; Monitor that can do 1280x1024 @ 76Hz
11. Enter your own horizontal sync range
Enter your choice(1-11):

다음 설정해주어야 하는 것은 수평 주사율(vertical range)인데 이는 대부분 1번이나 2번을 선택하여 주면 된다.

You must indicate the vertical sync range of your monitor. You can either
select one of the prefefined ranges below that correspond to indstrystandard
monitor types. or give a specific range. For interlaced modes, the number
that counts is the high one(e.g 87Hz rather than 43 Hz)
 
1. 50-70
2. 50-90
3. 50-100
4. 40-100
5. Enter your own vertical sync range
Enter your choice : :

다음은 이제껏 설정한 모니터에 대한 이름을 부여한다. 대부분 자신의 모니터의 이름을 적어주면 되지만 귀찮다면 그냥 리턴을 두드리면 기본이름이 설정된다. 다음 설정해 주어야 할 것은 자신이 가진 그래픽 어댑터를 지정해주는 작업인데 그리 만만한 편이 아니다 대부분 그래픽 어댑터 들이 그것이 어떤 종류의 칩셋을 쓰는지는 잘 알려주지 않고 이상한 상품명으로만 팔리기 때문에 잘못하게 되면 X WINDOW를 구경도 못하게 될지도 모르거나 16색으로만 써야 하는 불상사가 일어날지도 모른다. 가장 많이 쓰는 칩들은 S3 계열이거나 ET4000/6000 이다 역시 자신의 그래픽 어뎁터 매뉴얼을 꼼꼼히 읽은 후 그것이 어떤 칩셋을 쓰는지 확인 후에 설정하길 바란다. 제대로 설정했다면 선택된 X 서버는 /var/X11R6/bin/X라는 이름으로 link 될 것이다. 다음 그래픽 어댑터의 메모리사이즈를 선택해 주고 역시 모니터에서처럼 이름을 설정해준다. 다음엔 RAMDAC 과 Clockchip을 설정해주는 부분인데 이것은 그래픽 어댑터 메모리 사이즈와 밀접한 관련이 있다 대부분 1Mega 이하의 그래픽 어댑터는 800x600 16bpp 이상을 쓰지 못하고 2Mega 라 하더라도 1024x768 16bpp 이상은 못쓴다 리스트를 보고 자신이 쓰고자 하는 화면크기와 색상수를 정하자

For each depth , a list of modes(resolutions) is defined The defaul
t resolution that the server will start-up with will be the first listed 
mode that can be supported be the monitor and card.
Currently it is set to :
"640x480" "800x600" "1024x768" for 8bpp
"640x480" "800x600" for 16bpp
"640x480" for 24bpp
"640x480" for 32bpp
Note that 16, 24 and 32bpp are only supported on a few configurations.
Mode that cannot be support due to monitor or clock constrains will 
be automatically skipped by the server.
 
1. Change the modes for 8pp (256)
2. Change the modes for 16bpp (32K/64K color)
3. Change the modes for 24bpp (24-bit colors)
4. Change the modes for 32bpp (24-bit color)
5  The modes are OK , continue.
Enter your choice : :

이제 모든 작업이 끝났다. /etc.XF86Config으로 지금껏 설정한 내용들이 모두 알맞게 저장될 것이다. ( 끝에 y를 선택하는 것을 잊지 말자) 이제 X WINDOWS를 뛰워보자. 처음이라면 다소 밋밋하지만 그래도 반가운 X WINDOW가 제대로 떳다면 CTRL-ALT- +와 CTRL-ALT-  -를 이용하면 자신의 컴퓨터가 지원하는 화면모드를 보여준다. 대부분 800x600 이하는 잘쓰지 않을 것이다 나중에 필요없는 화면 모드는 XF86config에서 지우도록 하자 .

X WINDOW 가 뜨기는 했지만 좀 이상하게 뜨는 경우가 있을 것이다. 화면이 너무 한쪽으로 치우칠 때가 있다 모니터 스위치를 이용해 맞추어 주면 되기는 하지만 DOS/WINDOW를 오가며 매번 맞추어 주기는 어렵다. 그럴 경우에는 xvidtune이라는 것을 사용하면 된다. X WINDOW 가 뜬 상태에서 터미널(한텀)을 하나 띄워놓고 vi 로 /etc/XF86Config 파일을 읽어들인다. 그리고 다른 창으로 xvidtune을 실행시킨다. 자신의 XF86Config 파일에 있는 자신의 모니터의 주파수 정보가 나온다. xvidtune은 오른쪽과 왼쪽이 각각 따로 나타나는데 오른쪽은 수직주파수에 관한 부분과 왼쪽이 각각가 따로 나타나는데 오른쪽은 수직 주파수에 관한 부분이고 왼쪽은 수평주차수에 관한 부분이다. 각각의 버튼들을 보면 대충 화면을 어떻게 잡아준다는 것을 알터인데 그냥 눌러주기만 한다고 그것이 바로 나타나는건 아니다. 아래쪽 버튼을 살펴보면 Auto 라는 것은 각각의 버튼을 누를 때마다 바로 바로 그 설정을 잡아주면 Apply는 제일 적절한 화면일 때 선택하면 그 환경으로 설정이 된다 그러나 Apply를 했다고 해서 다음번에도 계속 지금의 환경대로 나오는 것은 아니다 Show라는 버튼을 누르면 지금껏 행한 환경을 문자로 출력해주는데 이것을 XF86Config의 해당부분에 그대로 적어주면 된다 그러면 다음X WINDOW실행때부터 지금의 화면 그대로 실행이된다.

나가는글

지금까지 순전히 X WINDOW를 실행하기 위한 작업들을 지루하게 나열했다.

어떻게 보면 너무 쉬운 부분들을 많은 지면을 할애하여 설명한 것이 낭비라고 생각하는 독자들도 있겠지만 초보자들의 많은 요청에 의해 한번쯤 이렇게 정리해본 것도 나쁘지는 않다고 생각한다. 다음호에는 X WINDOW에서 할수 있는 많은 일들, 프로그램들에 대해소개할 예정이며 계속 초 / 중 급자들을 위해 Motif프로그래밍을 몇회 연재할 예정이다.

이제 LInux  는 무시 못할만큼 많은 사용층을 확보하고 있으며 왠만한 통신망엔 모두 LInux 동호회가 있다.Chollian 에도 UNIX 동호회에서 독립하여 Linux 동호회가 생겻다 여기서 못다한 X WINDOW에 대한 내용들은 각각의 Linux  동호회에서 가면 더 많은 정보를 얻을 수 있다. 필자는 Hitel , Chollian Nounuri 세곳에 모두 활동을 하고 있다. 기타 궁금증이 있으면 필자에게 연락하면 성심성의껏 답변해드리겠습니다.

hitel : dltnwns
chollian noenuri :
dislevel