다음 이전 차례

2. 시작하기

2.1 X 윈도 시스템:역사와 아키텍춰(구조)

X 윈도 시스템은 DEC의 아테나(Athena)프로젝트의 일환으로 MIT의 컴퓨터학과의 연구실에서 1984년 최초로 그 모습을 보였다. 그 후 MIT에서는 1987년 가을 요즘 우리가 알고 있는 것과 같은 X11의 최초 버전을 내어 놓았다. X 윈도의 많은 부분은 1970년대 후반에 제록스에서 나온 Parc과 Star같은 컴퓨터의 기반에서 시작되었다. 물론 그 컴퓨터들은 상용화되지 못했다. 하지만 시제품에서 데모용으로 돌아가는 스몰토크 80을 본 사람들은 그 모습에 매료되고 말았다. 단순히 WIMP 인터페이스(윈도, 아이콘, 메뉴, 포인터)를 보여준 것 뿐 아니라 컴퓨터 업계의 일대 혁명을 일으키고 말았다. 몇년 후 사용자들은 여러 종류의 윈도 시스템을 사용하게 되었고, 아마 옛날처럼 되돌아 가진 않을 것이다.

X 윈도는 X 콘소시엄이 주체가되어 개발하고, 배포한다. 하지만 자유로운 라이센스로 인하여 무료나, 저렴한 시스템도 사용가능하다. 리눅스에서 이런 종류의 X에는 XFree86이 있다. XFree86은 인텔x86계열의 유닉스계열 운영체계에서 동작하는 X 서버이다. XFree86은 X11R6가 발전하는데 많은 공헌을 한 X386으로부터 시작되었다. XFree86을 놓고 본다면 어떤 목적에 사용하든지간에 다른 X 서버를 구입할 필요없이 무료로 사용할 수 있는 리눅스의 X 시스템이라 할 수 있다.

X 윈도는 기초 X 툴킷(X Toolkit Intrinsics) 및 아데나 위젯을 비롯한 다양하고 많은 툴킷이나 라이브러리 위에서 작성되었다. 개중에 많은 프로그램들은 XView나 Mootif 툴킷을 쓴다. 또한 최근에 작성된 툴킷을 이용하거나, 윈도 시스템과 통신 시스템을 통합한 KDE나 GNOME같은 것도 있다. 따라서 많은 프로그램에서 컴파일이 안되거나, 혹은 이상하고 이해할 수 없는 에러가 나오는 것을 볼 수 있을 지도 모른다. 이럴 경우에는 X 윈도 시스템에서 필요로 하는 여러 라이브러리와 툴킷들이 올바르게 설치되었는지 확인해 보는 것이 좋을 것이다. 여러 라이브러리들은 거의 무료이므로 쉽게 구해 설치할 수 있을 것이다.

2.2 데스크탑 분석하기

좀더 편하게 X를 사용하기위해서 반드시 익숙해져야 할 기본과 개념에 대해 짧은 설명을 하도록 하겠다. 이런 것들은 도움이 필요할 때마다 매뉴얼(man page)이나 도움말에서 자꾸 반복해서 나올 것이다.

스크린은 사용자 전체의 "데스크탑(화면)"을 말한다. 이 두가지의 말은 자주 섞여서 나오곤 한다. 기술적으로 본다면 스크린이란 당신이 사용하는 X가 보여주는 가장 자주쓰는 디스플레이 화면이다. 자주 쓰는 이라는 말에는 X가 1개 이상의 화면을 가질 수 있다는 의미이다. 사실 하나의 X 서버를 통해 여러 컴퓨터를 사용할 수 있다. 하지만 여기서 더 깊이 들어가는 것은 이 문서의 범위를 넘어설 것이다. 다른 문서를 통해 자세히 알 수 있을 것이다.

루트윈도란 현재 사용중인 스크린의 바탕화면이다. 이름에서 풍기는 느낌처럼 다른 윈도와는 다른 기능과 모습을 가지고 있다. 하지만 평범한 윈도처럼 그림을 보여준다든가, 색깔을 입힌다든가 혹은 루트윈도 상에서 프로그램을 실행시킨다든지 하는 기능은 다를바 없다.

윈도매니저는 X 윈도 시스템과 사용자 사이를 이어주는 인터페이스이다. 윈도매니저가 없었다면 X는 사용하기에 무척 힘든 시스템이 되었을 것이며 지금처럼 경쟁력있게 발전하지 못하였을 것이다. 윈도매니저에서는 윈도의 둘레(border)나 메뉴, 아이콘, 가상화면, 버튼바, 툴바등을 제공하여 좀 더 편리하게 사용할 수 있게 한다. 또한 X의 윈도매니저는 사용자의 설정 사항을 다양하게 구비하여, 자신의 입맛에 맛는 윈도매니저를 쓸 수 있도록 하고 있다.

포인터는 화면상에 마우스나 포인팅 장치의 위치를 알려주는 화살표 - 종종 다른 모양을 띄고 있을 수도 있다 - 표시이다. 또한 포인터는 모양 변화를 통해 마우스 포인터가 있는 위치에서 무슨 일이 일어날지, 혹은 무슨 일이 일어나고 있는 지에 대한 정보를 알려주기도 한다.

윈도란 윈도매니저에 의해 관리되며 주어진 어플리케이션이 실행되는 하나의 프레임으로 둘러싸인 공간이다. 위에서 언급한 루트윈도와는 좀 다른 모습일 것이다. 윈도의 모습은 타이틀, 둘레, 버튼들등을 가지고 있기도 하며 혹 이런 것들이 하나도 없을 수도 있다. 윈도는 윈도 매니저에 의해 관리된다.

항상 그런 것은 아니지만 전통적으로 마우스 포인터가 가리키고 있는 윈도는 사용자의 키보드 입력을 받을 수 있으며 흔히 활성 윈도 - 액티브 윈도라고 부른다. 이런 이유로 활성 윈도를 '포커스 되었다(focused)'고도 한다. 한 윈도가 포커스 되면 다른 윈도는 '포커스 되지 않은(unfocused)' 비활성 윈도가 되어 사용자의 입력을 받아들일 수 없다. (요즘은 포커스 하기 위해 마우스 버튼을 누르기도 한다)

메뉴, 아이콘은 다른 윈도 시스템에서와 같은 전형적인 동작을 보여준다. 문자 위주로 이루어진 콘솔 같이 보이는 텍스트 기반의 윈도를 터미널 에뮬레이터라고 한다. hanterm, xterm등이 그것이다. 터미널 에뮬레이터는 기본적으로 콘솔의 디스플레이를 에뮬레이팅 한다. X를 쓰는 이점중 하나로 동시에 여러개의 터미널 에뮬레이터를 띄워놓고 여러개를 동시에 감시(?)할 수 있다는 것이다. 또한 터미널 에뮬레이터를 사용함으로 X에서 제공하는 여러 다른 이점을 이용할 수 있을 것이다. 이런 것들에 대해서는 추후 이야기 하도록 하겠다.

2.3 X 윈도 시스템 불러내기

X 윈도 시스템을 시작하는데에는 여러가지 방법이 있다. 만일 컴퓨터를 켜자마자 X가 뜬다면 이부분을 건너뛰고 넘어가도 좋다. 하지만 대부분의 리눅스 시스템에서는 택스트 기반의 로긴 화면을 거쳐 로긴하고, 명령행으로 X를 실행하도록 세팅되어 있다. X를 실행하는 것은 전적으로 사용자 마음이다.

가장 간단한 방법으로는 xinit를 이용하는 것이다. xinit를 실행하면 아마 아무 것도 놓여지지 않은 데스크탑을 볼 수 있을 것이다. 아무런 설정없이 xinit를 수행하면 윈도 매니저조차 뜨지 않는다.(배포본을 사용할 경우 xinit로 X를 수행해도 윈도 매니저나, 터미널 에뮬레이터등이 뜰 수 있게 이미 세팅해 놓은 경우도 있다.) 이 경우 다음과 같이 콘솔에서 타이핑 함으로 X 시스템에 터미널 에뮬레이터가 뜨는 것을 볼 수 있을 것이다.(콘솔 가상 화면으로 가는 핫키는 alt-f1 f6이고, X가 떠있는 상태에서 X는 alt-f7/f8을 이용한다. X에서 콘솔로 가는 핫키를 누를때는 ctrl 키를 함께 눌러 ctrl-alt-f1 f6이 된다. 역주)

xterm -geometry +1 +1 -n login -display :0
매번 이런 명령행을 이용해 터미널 에뮬레이터를 띄우고 싶지 않다면 .xinitrc를 시작 쉘 스크립트로 쓸 수 있다. 하지만 너무나 불편한 방법이다. 배포본이라면 .xinitrc 파일에 어떤 내용이 있을 지도 모른다.

좀 더 보편적인 방법으로는 startx를 사용하는 것이다. 좀 더 많은 설정화일들을 부를 수 있으며, 좀 더 강력하다. 아마 startx 명령을 통해서는 좀더 화려한 화면을 볼 수 있을 지도 모른다.(많은 배포본에서 startx를 통해 수행되는 X 시스템에서 윈도 매니저를 비롯한 여러 세팅을 기본적으로 제공하고 있다.) 이를 통해 좀더 쉽게 X를 사용할 수 있다. 여전히 많은 사용자들이 이용하지만 텍스트 기반의 쉘로 로긴한 후 명령행을 통해 X를 수행시킨다는 것은 단점이자 장점으로 남는다. 장점으로는 개개의 사용자가 자신이 원하는 방식으로 윈도를 세팅하여 띄울 수 있다는 것이다.

startx -- -bpp 8    #start x in 256 color mode
startx -- -bpp 32   #start x in true color mode

위 명령에서 '--' 의 표시는 명령행의 아규먼트(옵션)을 xinit로 넘겨주는 역할을 한다. 위 명령을 통해 X의 해상도를 자신이 원하는 목적에 맞게 바꾸어 실행시킬 수 있다. 물론 설정화일을 읽어들이는 것은 여전하다. 설정에 대해서는 나중에 다루도록 하겠다.

2.4 X 디스플레이 매니저(xdm) 사용하기

xdm은 텍스트 터미널의 gettylogin 명령이 하는 일과 비슷한 일을 한다. 즉 사용자가 사용할 수 있는 디스플레이를 열고 로긴을 통해 사용자를 인증한다. xdm을 이용하며 무엇을 해야 할지 직관적으로 느껴지는 친숙한 로긴화면에 사용자 이름과 패스워드를 넣는 것으로 모든 일이 끝난다! 적합한 사용자라면 바로 X 시스템의 그래피컬한 환경을 쓸 수 있다. 아마 인터넷 카페나, 회사, 학교 컴퓨터실등 유닉스에 친숙하지 않은 사용자를 위한 공간에서 자주 보았을 것이다. xdm은 다른 추가장비 없이 좀 더 쉽게 접근하도록 해준다.(외국에서는 X를 인터넷 카페나 학교에서 쓰나보죠? 좋겠다.^^)

xdm의 설정 파일은 /usr/X11R6/lib/X11/xdm에 놓여지고 매우 편리하게 관리할 수있게 해 준다. xdm-config 파일을 확인해 보기 바란다. 또한 매뉴얼(man page)을 참고 하는 것을 잊지 말기 바란다.


다음 이전 차례