RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR

출처 : 대전국제IT교육센터 정성재 강사

 

1. X-window 의 탄생
X 윈도우 시스템은 DEC의 Athena프로젝트의 일환으로 MIT의 컴퓨터학과 연구실에서 처음으로 개발을
시작하였다. 1984년 최초 버전이 발표되었지만, 좀 더 구체적인 모습은 1986년 X10.4가 공개되면서
그 모습 갖추고 되었다. 1987년 가을경에 현재의 모습과 유사한 X11이 만들어졌다. X11이 공개된 후 수
많은 워크스테이션 업체에서 X 윈도우를 표준 윈도우 시스템으로 채택하기 시작했고, 기술개발과 배
포를 위해 여러 업체가 모여 X 컨소시엄(http://www.x.org)을 결성하여 관리하게 되었다. 그 후 X
컨소시엄이 오픈그룹 산하단체로 바뀌었지만 근본적인 변화는 없으며 비교적 자유로운 라이선스로
인해 무료 또는 저렴한 가격으로 누구나 사용할 수 있다. 이렇듯 X 컨소시엄의 규격에 부합한다면
누구든지 X 윈도우를 개발할 수 있기 때문에 다양한 상용 또는 공개 X 서버가 발표된 상태이다.

2. X-window 와 리눅스
리눅스용 X-window(X 또는 X11이라고 함)는 XFree86프로젝트에서 만들었다. 초기의 XFree86 프로젝
트는 인텔 x86기반 플랫폼으로 개발하였으나 현재는 매킨토시, 알파, 스팍 등으로도 확대 지원한다.
XFree86을 지원해주는 오픈 데스크탑으로는 Gnome과 KDE가 양대 산맥을 이루고 있고 그 외에도 많은
윈도우 매니저가 존재한다.

3. XFree86
Xfree86은 무료로 배포되는 X 윈도우 시스템으로 비영리단체인 xfree86프로젝트에 의해 개발되었다.
Xfree86은 인텔 x86계열 플랫폼으로 개발되었지만 지금은 다양한 플랫폼에서 운영된다. Xfree86의
공식사이트는 http://www.xfree86.org이다.

4. X-window의 구조
(1) 기본구조: X-window는 클라이언트/서버의 구조로 되어 있고 서로간의 통신을 위해 X protocol을
              사용한다. X server란 그래픽하게 보여주는 하나의 시스템을 말하고, X-client란
              X server위에 동작하는 일종의 응용프로그램을 말한다.
(2) X Protocol
   1) 설명: X 프로토콜은 운영체제에 독립적으로 동작하며 많은 플랫폼에 사용되고 있다. 또한
           X 프로토콜은 독립적으로 동작하나 TCP/IP기반위에서도 동작하기 때문에 특정 컴퓨터의
           어플리케이션을 네트워크로 연결된 다른 컴퓨터에서 사용할 수 있다.
   2) 작동: 한 시스템의 X clients 와 X server는 속도가 빠른 Unix domain socket을 이용한다. 이
           소켓은 /tmp/.X11-unix/X# 형태로 존재한다. 보통 #에는 0이 온다.

5. X-window 설정
(1) X-window를 설정하기 위해 알아야 할 사항
   1) 시스템의 비디오카드의 칩의 종류와 메모리 용량
   2) 모니터 모델과 최대 해상도, 수직/수평 재생율
(참고) 현재 공식적으로 Xfree86에서 지원하는 비디오카드의 리스트를 확인하려면
       http://www.xfree86.org/cardlist.html 를 참조한다.
(2) 비디오카드관련 유틸리티
   1) SuperProbe : xfree86에서 제공하는 유틸리티로 비디오카드에 대한 자세한 정보를 보여준다.
                  루트권한자만 가능하며 텍스트모드에서도 사용 가능하다.
                  보통 /usr/bin/X11/SuperProbe 에 위치한다.
   2) xvidtune : X윈도우상에서 비디오모드를 조정할 수 있는 유틸리티이다. 화면의 상/하/좌/우,
                높이와 폭의 조정, 수평/수직의 조절이 가능하다. 또한 /etc/X11/XF86config파일에
                서 해상도 부분에 직접입력하여 조정할 수도 있다.
(3) X윈도우 설정 유틸리티
   1) Xconfigurator 이용 : 텍스트 그래픽 인터페이스의 유틸리티로서 X-window을 자동 설정해준다.
                          레드햇 7.x 버전까지 지원된다.
   2) xf86cfg 이용 : GUI방식으로 이 명령은 XFree86 3.3.6버전에서는 XF86Setup명령으로 지원되었
                    다. 콘솔과 엑스윈도우상에서 실행되는 데, 반드시 /etc/X11/디렉토리에
                    XF86Config파일이 있어야 하며, 이 방법을 이용하려면 엑스윈도우가 구동되어야
                    한다. 엑스윈도우를 띄우기 위한 설정이라기 보다는 주변기기에 대한 더욱
                    자세한 설정을 위해 사용된다.
   3) xf86config 이용 : 텍스트 방식의 설정방법으로 엑스 윈도우 설정 섹션들을 일일이 수동으로
                       설정한다. 이 명령을 이용하려면 마우스의 종류, 모니터의 주파수, 그래픽
                       카드등 하드웨어에 대한 지식을 가지고 있어야 한다. 설정된 환경은
                       /etc/X11/XF86Config파일에 저장된다.
(4) 관련파일 : /etc/X11/XF86Config
   1) 설명 : xfree86의 주설정 파일이다. 관련 심볼릭링크파일로 /etc/X11R6/lib/X11/XF86Config가
            이 파일을 가리키고 있다.
   2) 파일의 구성 : 7개의 섹션으로 구성되어 있다.
     ㄱ. Files : 시스템의 중요한 파일이 있는 장소를 지정하는 섹션이다.
        a. RgbPath     "/usr/X11R6/lib/X11/rgb"
            => RGB 데이터베이스 이름과 위치를 지정한다.
        b. FontPath   "unix/:7100"
            => X폰트를 찾을 수 있는 장소를 지정한다. 현재는 'transport/hostname:port-number'로
              구성되어 있다. transport는 폰트서버에 연결하기 위해 사용하는 transport타입을
              나타낸다. 즉 유닉스 도메인 소켓을 나타내는 unix 또는 TCP/IP접속을 나타내는 tcp등
              이 올 수 있다. hostname에는 폰트서버를 운영하고 있는 시스템의 호스트이름을 나타
              낸다. 위의 예처럼 필드가 비어 있는 것은 로컬호스트가 폰트서버를 운영하고 있는
              경우이다. port-number는 폰트 서버가 사용할 포트의 번호를 나타낸다. 일반적으로
              7100번을 사용한다. 또한 폰트경로를 여러개 지정할 수 있다.
              'FontPath   /usr/X11R6/lib/X11/fonts/TrueType'과 같이 지정가능하다.
     ㄴ. ServerFlags : X서버의 몇가지 기능을 활성화하거나 비활성화시킨다.
        a. DontZap : X강제종료를 위한 Ctrl+Alt+Backspace 사용여부를 지정
        b. DontZoom : 해상도 전환을 위한 Ctrl+Alt+[+/-] 사용여부를 지정
     ㄷ. Keyboard : 키보드 종류와 프로토콜등 키보드의 기능과 관련된 정보를 지정한다.
     ㄹ. Pointer : 마우스 종류, 마우스가 연결된 포트등 마우스 관련 설정에 사용된다.
                  이중 Emulate3Buttons은 2버튼마우스에서 좌우 두버튼을 동시에 눌렀을 경우
                  3버튼 마우스의 가운데 버튼 역할을 하도록 한다.
     ㅁ. Monitor : 모니터와 해상도 설정에 관련된 부분이다.
     ㅂ. Graphics Device : X서버가 사용할 수 있는 비디오 카드를 설명한다.
     ㅅ. Screen : Monitor와 Device섹션에 있는 정보를 함께 불러오는데 사용된다.

6. X 폰트 서버(X Font Server:XFS)
(1) 설명: X폰트서버는 XFree86이 글꼴을 사용할 수 있도록 해주는 프로세스로 XFree86의 트루타입
          폰트서버이다. 시스템이 부팅될 때 구동되는 xfs는 X서버와는 독립적으로 동작한다.
(2) 관련파일 : /etc/X11/fs/config
    => xfs의 설정파일로 어떻게 동작할 지를 결정한다.
(3) 시스템 초기화 스크립트 : /etc/rc.d/init.d/xfs
   1) 설명: xfs를 구동시키거나 멈추는 역할을 한다.
   2) 사용예
     ㄱ. /etc/rc.d/init.d/xfs stop
     ㄴ. /etc/rc.d/init.d/xfs start

7. X-window 실행
(1) X-window 실행
   1) 콘솔모드(run level 3)에서 startx라고 입력한다.
   2) run level 5로 설정하여 X 디스플레이매니저(X Display Manager:XDM)를 사용하여 그래픽하게
     로그인하면서 실행할 수 있다.
(2) startx
   1) 설명: startx에는 X윈도우를 실행하는 최적화된 스크립트로 시스템환경을 초기화하고 시작하
           는데 필요한 여러 프로그램을 호출한다. 최종적으로는 xinit를 호출한다.
   2) 사용법
     startx [option]
   3) option
     -- : 명령행의 아규먼트를 xinit으로 넘겨준다.
   4) 사용예
     ㄱ. [root@www /root]# startx
          => 기본설정된 상태로 X윈도우를 실행시킨다.
     ㄴ. startx -- -bpp 8
          => 256 color mode로 실행시킨다.
     ㄷ. startx -- -bpp 32
          => true color mode로 실행시킨다.
   5) 실행관련 파일 : /etc/sysconfig/desktop
     ㄱ. 이 파일은 startx명령시에 구동해야할 윈도우 매니저값을 가지고 있는 파일이다.
     ㄴ. 만약 X-window 설정시 기본값을 KDE를 설정했을 경우 파일안의 값은 다음과 같다.
        DESKTOP="KDE" (참고로 그냥 KDE라고만 입력해도 된다. 또한 소문자로 써도 무방하다.)
     ㄷ. 기본 X-window 를 그놈(Gnome)으로 바꾸려면 다음과 같이 값을 바꾸면 된다.
        DESKTOP="GNOME"
(2) X-window 종료
    1) 일반적인 종료 : KDE나 GNOME의 패널(윈도우 하단 메뉴바)에 있는 시작 메뉴를 누른 뒤 로그아
                    웃 메뉴로 엑스 윈도우를 종료시킨다.
    2) 강제 종료 : X-window에 장애가 발생되어 정상적으로 로그아웃을 하지 못하는 경우에 사용하는
                 방법으로 CTRL+ALT+Back Space키를 동시에 누른다.

8. X-window실행과 디스플레이 매니저
(1) 개요: 실행레벨을 5로 지정했을 경우에는 그래픽하게 로그인하는 절차가 필요한 데 이러한 역할
          을 하는 것이 디스플레이 매니저(Display Manager)이다.
(2) 디스플레이 매니저 종류
   1) xdm(X Display Manager) : 전통적인 유닉스 시스템에서 사용하던 X 윈도우 디스플레이 매니저
                              로 runlevel 5로 지정했을 경우 실행된다.
   2) gdm(GNOME Display Manager) : GNOME실행과 관련하는 디스플레이 매니저
   3) kdm(KDE Display Manager) :  KDE실행과 관련하는 디스플레이 매니저
(3) xdm의 설정
   1) xdm(X Display Manager) : 시스템을 run level 5로 구동시켰을 경우, 자동으로 X를 실행되고
                              일반적으로 gdm 도 아니고 kdm도 아닌 경우에 사용한다.
   2) xdm 관련 디렉토리 : /usr/X11R6/lib/X11/xdm 디렉토리에 위치한다.
   3) xdm 관련 파일
     ㄱ. 환경설정파일: /usr/X11R6/lib/X11/xdm/xdm-config 또는 /etc/X11/xdm/xdm-config
          => 사용자들에게 보여지는 로그인 화면을 설정하는 파일이다.
     ㄴ. Xsetup_0 : X가 시작될 때 어떤 프로그램들이 구동되어야 하는지를 xdm에게 알려준다.
   4) xdm의 실행 : root권한자만 가능하며 콘솔모드에서는 다음과 같이 명령내려서 실행
     [root@www /root]# xdm --nodaemon &
(4) gdm의 설정
   1) 설명: GNOME 디스플레이 매니저로 xdm의 환경 설정을 많이 넘겨받아 사용한다.
   2) 관련 디렉토리와 파일
    ㄱ. 주 디렉토리: /etc/X11/gdm
    ㄴ. 환경설정파일: gdm.conf이다.

9. X-window 작업하기
(1) 명령행 옵션 : X-window상의 터미널창에서 명령 수행시 다음과 같은 옵션을 사용할 수 있다.
   1) -display : 어떤 X 서버를 사용할 것인가를 지정하는 옵션이다.
   2) -geometry : 초기 윈도의 위치와 사이즈를 세팅한다. 만약 음수의 값으로 수평,수직위치를 넣으
                 면 상대적으로 거꾸로 움직여진 위치에 놓여지게 된다.
     * 형식 : 윈도우의 폭*윈도우의 높이+/-수평위치+/-수직위치
   3) -font : 생성될 윈도우의 텍스트를 위해 쓰여질 폰트지정
   4) -fn : -font옵션과 같다. 폰트를 지정한다.
   5) -bg : 바탕색을 지정
   6) -fg : 윈도우의 전경색 또는 폰트색을 지정한다.
   7) -bd : border(테두리선)의 색상을 지정한다.
   8) -name : 어플리케이션에서 사용하능한 리소스의 이름을 설정한다. 같은 어플리케이션을 두 개
             실행시키고 그 두개를 구분할 경우에 유용하다.
   9) -title : 윈도우 매니저를 통해 각 윈도우의 상단에 표시하게끔 해주는 옵션이다.
   10) -iconic : 어플리케이션을 실행할 때 아이콘화 되어 실행시킨다.
   11) -xrm : 이미 정해진 리소스 이름에 따르는 값을 새롭게 설정해줄 수 있게 해 준다.

10. X-window 구동원리(1)
(1) 설명: run level 3인 상태에서 X-window의 구동은 startx에 의해 사용자의 클라이언트 리소스와
         서버 리스소를 찾으면서 시작된다.
(2) 구동순서
   1) 사용자의 홈디렉토리에서 .xinitrc파일을 찾아 각종 리소스들은 불러 들여 실행한다.
     (존재하지 않을 경우에는 /usr/X11R6/lib/X11/xinit/xinitrc, /etc/X11/xinit/xinitrc)
    
   2) 사용자의 홈디렉토리에서 .Xclients스크립트를 찾아 실행한다. (존재하지 않을 경우에는
    /etc/X11/xinit/Xclients파일을 실행)
   3) Xclients 스크립트에 의해 어떠한 데스크탑환경을 사용할 것인지 /etc/sysconfig/desktop파일
     을 참조한다.
(3) 각 스크립트의 역할
   1) startx: X 윈도우를 구동시키는 스크립트이다.
   2) ~/.xinitrc(또는 /usr/X11R6/lib/X11/xinit/xinitrc, /etc/X11/xinit/xinitrc)
    ㄱ. ~/.Xresources 나 /etc/X11/Xresources 안의 내용설정 실행
    ㄴ. keymap파일실행: 키맵이란 아키텍쳐별로 지원되는 키코드를 말한다.
       ~/.Xkmap(존재하지 않으면/etc/X11/Xkmap) 또는 ~/Xmodmap(존재하지 않으면 /etc/X11/Xmodmap)
    ㄷ. /etc/X11/xinit/xinitrc.d 라는 디렉토리안의 스크립트를 실행시킨다.
    ㄹ. ~/.Xclients 스크립트 호출한다.
   3) ~/.Xclients(또는 /etc/X11/xinit/Xclients)
    ㄱ. /etc/sysconfig/desktop 을 검사하여 GNOME인지 KDE인지를 확인하고 실행한다.
    ㄴ. 만약 어떠한 설정을 찾지못하면 다음과 같은 순서로 실행하는데 해당 윈도우매니저가 존재
       해야 한다.
       GNOME
       KDE
       RunWM
       twm
    ㄷ. 만약 Xclients가 존재하지 않고 twm 윈도우매니저가 설치되어있다면 윈도우98의 안전모드처
       럼 xclock, xterm, netscape같은 몇가지 응용프로그램과 twm이 작동된다.

11. X-window 구동원리(2)
(1) 설명: run level 5인 경우에는 /etc/inittab 파일설정에 의거하여 /etc/X11/prefdm 스크립트가
          실행된다.
(2) 구동순서
   1) /etc/X11/prefdm에 의거하여 해당 윈도우 디스플레이 매니저 실행한다.
   2) 로그인창이 뜨기전에 /etc/X11/xdm/Xsetup_0 스크립트 실행한다.
   3) 사용자를 인증하고 /etc/X11/xdm/Xsession 스크립트를 실행한다.
   4) 사용자가 로그아웃하면 새로운 로그인 창을 띄운다.
(3) 각 스크립트의 역할
   1) prefdm
    ㄱ. /etc/sysconfig/desktop 파일에 명기되어 있는 윈도우매니저를 실행시킨다.
    ㄴ. /etc/sysconfig/desktop 파일이 없는 경우에는 gdm, kdm, xdm 순으로 검색하여 실행시킨다.
   2) /etc/X11/xdm/Xsetup_0: /etc/X11/Xresources 스크립트를 실행하고 로그인관련 내용을 실행
                            한다.
   3) /etc/X11/xdm/Xsession
    ㄱ. startx 실행시의 /etc/X11/xinit/xinitrc 스크립트의 역할인 /etc/X11/xinit/xinitrc.d 디렉
       토리안의 스크립트를 실행한다.
    ㄴ. 사용자가 설정한 데스크탑 환경을 찾아 실행한다. 만약 찾지못하면 ~/.xsession 이나
       ~/.Xcients를 실행하고 이것도 실패하면 startx 시에 실행하는 /etc/X11/xinit/Xcilents 스크
       립트를 실행한다.

12. X-window의 데스크탑 변경하기
(1) 변경이 필요로 하는 경우 : 만약 일반사용자가 startx하면 보통 /etc/sysconfig/desktop이라는
                           파일에서 선언된 X-window가 구동된다. 만약 기본 설정이 KDE인데 한
                           사용자가 GNOME을 사용하려고 할 때 이용할 수 있다.
(2) /etc/bin/switchdesk 스크립트 : 데스트탑 환경이나 윈도우 매니저를 사용자가 선택적으로 사용
                                  할 수 있도록 해 주는 데스크탑 변환 파일이다.
    1) 사용법
      switchdesk 데스크탑이름
       => 변환가능한 데스크탑이름으로는 KDE, KDE2, GNOME, Enlightenmen, WindowsMaker, twm등
    2) 사용예
      [posein@www posein]$ switchdesk gnome
      Red Hat Linux switchdesk 3.9
      Copyright (C) 1999-2001 Red Hat, Inc
      Redistributable under the terms of the GNU General Public License
      Desktop now set up to run GNOME.
      For system defaults, remove /home/posein/.Xclients
    3) 관련파일 : swichdesk 스크립트를 사용하면 .Xclients파일과 .Xclients-default파일이 생성된
                다.
      -.Xclients : /etc/X11/xinit/Xclients를 참조하지 않고 개인사용자가 독자적인 X-window를
                  사용하도록 해주는 파일이다.
        *[posein@www posein]$ cat .Xclients
         #!/bin/bash

         # Created by Red Hat Desktop Switcher

         if [ -e "$HOME/.Xclients-$HOSTNAME$DISPLAY" ]; then
             exec $HOME/.Xclients-$HOSTNAME$DISPLAY
         else
             exec $HOME/.Xclients-default
         fi
      -.Xclients-default : 설정한 데스크탑이나 윈도우 매니저가 실행될 수 있도록 명령라인이 존재
                          하는 파일이다.
        *[posein@www posein]$ cat .Xclients-default
         # Created by Red Hat Desktop Switcher
         exec gnome-session
           => 참고로 KDE인 경우에는 'exec startkde'라고 표기된다.

13. 윈도우 매니저(Window Manager)
(1) 설명: 윈도우 매니저란 X서버와 사용자를 이어주는 인터페이스로 윈도우의 경계(border), 메뉴,
          아이콘, 버튼바, 툴바 등을 제공한다. 윈도우 매니저없이 X윈도우를 사용하는 일은 불가능
          하며 각 사용자들은 자신의 취향에 맞는 윈도우 매니저를 선택할 수 있다.
(2) 종류
   1) twm : 최초의 윈도우 매니저로 다른 윈도우 매니저의 모태이다.
   2) FVWM
    ㄱ. Robert Nation에 의해 개발되었고, Tom LaStrange의 유명한 TWM에서 비롯됨
    ㄴ. 메모리 사용을 최소화하도록 설계되었고, 3D입체 화면과 단순한 가상 데스크탑 지원
    ㄷ. 약간의 수정을 통해서 새로운 느낌의 윈도우 매니저로 기능을 향상시킬 수 있도록 설계됨
    ㄹ. 관련사이트는 http://www.fvwm.org이다.
   3) FVWM95
    ㄱ. FVWM의 2.X버전 소스를 기반으로 만들어짐
    ㄴ. 윈도우95랑 인터페이스가 유사
    ㄷ. 레드햇 5.1에서 채택됨.
   4) AMIWM(Amiga Window Manager)
    ㄱ. Amiga에서 사용한 하던 윈도우 매니저를 X11R6용으로 만듬
    ㄴ. 드래그 업다운할 수 있도록 멀티 스크린을 지원
   5) CTWM
    ㄱ. Claude Lecommnader에 의해 개발된 윈도우 매니저
    ㄴ. TWM을 개선하여 32개의 작업공간(Workspace)창을 제공
    ㄷ. 3D타이틀창과 경계선을 선택적으로 지원
   6) EPIWM
    ㄱ. GPL하의 School Project의 일환으로 만들어짐
    ㄴ. 작으면서 빠르고 설정이 용이
   7) DTWM(The CDE Window Manager)
    ㄱ. CDE(Common Desktop Environment)는 Hewlett-Packard, IBM, Sun Microsystems가 공동개발한
       유닉스용 상용 GUI를 사용하는 윈도우 매니저
    ㄴ. 현재 유닉스 워크스테이션에서 표준 운영체제환경으로 채택
   8) Sawfisk : Lisp 기반의 스크립트 언어를 사용하여 만들어짐 윈도우 매니저로 SawMill이라고
               불림
   9) BlackBox : 간단하면서 빠른 인터페이스를 제공하며, 다중 데스크탑 환경을 제공하는 윈도우
                매니저
   10) Enlightenment
     ㄱ. 맨드레이크 7.0에서 gnome과 함께 기본적으로 채택
     ㄴ. 아주 극단적이고, 세밀하며 여러 설정이 가능한 환경을 제공해 준다.
     ㄷ. 관련사이트는 http://www.enligntment.org 이다.
   11) Window Maker
     ㄱ. GNU 어플리케이션들을 부가적으로 통합할 수 있도록 지원하기 위해 만들어진 X11 윈도우
        매니저
     ㄴ. Alfredo K. Kojima에 의해 개발되었으며, 알짜리눅스 6.0에서 채택됨
     ㄷ. 애프터스텝과 넥스트스텝을 흉내낸 윈도우 매니저이다.
     ㄹ. 설정파일이 변경되면 자동적으로 메뉴가 재정의되므로 변경을 적용하기 위해 윈도우 메이커
        를 다시 실행하지 않아도 된다.
     ㅁ. 다국어를 지원하며 GNU 데스크탑을 지원하므로 GNOME프로젝트에 적합하다.
     ㅂ. 개인의 취향에 맞는 윈도우 매니저의 선택외에 윈도우 매니저와 어플리케이션, 전체적인
        사용자 인터페이스를 제공하는 또 다른 요소들 등으로 구성된 데스크탑 환경을 선택할 수
        있다.
     ㅅ. 관련사이트는 http://www.windowmaker.org이다.
   12) OLVWM(OpenLook Virtual Window Manager) : X 윈도우의 표준을 주도해 온 Open Look 라이브
                                               러리에서 제공하는 윈도우 매니저이다.
   13) Afterstep
      ㄱ. NEXTSTEP의 겉모습과 느낌을 에뮬레이팅하는데서 시작하였다
      ㄴ. NEXTSTEP인터페이스의 장점을 통합하고 좀 더 유용한 기능을 추가하는데 목적이 있다.
      ㄷ. 관련사이트는 http://www.afterstep.org 이다.
   14) KDE(K Desktop Enviroment)
      ㄱ. Microsoft의 윈도우와 구성, 사용법 등이 비슷하다.
      ㄴ. 단순한 윈도우 매니저 역할을 넘어 새로운 데스크탑 환경 구현을 목표로 하고 있다.
      ㄷ. QT라이브러리를 기반으로 한다.
      ㄹ. kwin이라는 윈도우 매니저를 가지고 있다.
   15) GNOME(GNU Network Object Model Environment)
      ㄱ. 시스템과 유기적인 통합을 목표로 한다.
      ㄴ. 다른 윈도우 매니저를 띄운 상태에서 실행할 수 있다.
      ㄷ. GTK+ 라이브러리를 사용한다.
      ㄹ. metacity라는 윈도우 매니저를 가지고 있다.
      ㅁ. 관련사이트는 http://www.gnome.org, http://www.gtk.org 이다.
   16) 기타 : ICEWM, Xfce 등

14. 클라이언트에서 X Server 프로그램 사용하기
(1) 개요 : X-window는 서버와 클라이언트에서 동시에 작동하는 네트워크 지향시스템이기 때문에,
          클라이언트 X-window시스템에서 서버의 X-window프로그램을 구동할 수 있다.
(2) 관련명령과 환경변수
    1) xhost : X server에 접속할 수 있는 클라이언트를 지정하거나 해제하는 명령
      ㄱ. 사용법
        xhost + 또는 - [IP 또는 도메인명]
      ㄴ. 사용예
       xhost + : X server에 모든 클라이언트의 접속을 허용함
       xhost - : X server에 모든 클라이언트의 접속을 해제함
       xhost + 192.168.0.5 : 192.168.0.5의 접속을 허용함
    2) DISPLAY : 환경변수로써 X server의 프로그램이 실행될 때 표시되는 클라이언트의 주소 지정
(3) 사용예
   1) 조건: A라는 시스템과 B라는 시스템이 있다. A라는 시스템에는 네스케이프과 없고 B라는 시스
           템에는 네스케이프라는 프로그램이 있다고 가정하자. A라는 시스템에서 네스케이프를
           사용하고자 한다.
   2) 조건: A시스템의 IP가 192.168.0.2, B시스템을 192.168.0.3 이라고 가정한다.
   3) 방법
    ㄱ. A시스템에서 B시스템의 프로그램이 실행되는 것이므로 A시스템에서 B시스템의 접근을 허가해
       야 한다.
       예) 1. 전체허가: 모든 호스트허가
             [root@A_host root]$ xhost +
             access control disabled, clients can connect from any host
           2. 부분허가: 특정 호스트만 허가
             [root@A_host root]$ xhost + 192.168.0.3
             192.168.0.3 being added to access control list

    ㄴ. B 시스템에서 실행되는 디스플레이의 방향을 A 호스트로 해야 한다.
       [root@B_host root] export DISPLAY=192.168.0.2:0.0
    ㄷ. B 시스템에서 다음과 같이 네스케이프를 실행해보자.
       [root@B_host root]$ netcape &
       [1] 11980
        => A시스템에서 네스케이프가 실행됨을 알 수 있다.
   4) 참고
    위의 조건에서 xhost + 로 허가한 A시스템과 A시스템으로 접근가능한 B시스템사이중 어느 시
   스템이 보안상 더 위험할지 생각해보자. 사실 A,B 시스템 모두 보안상 취약하다고 볼 수 있다.
   A시스템은 모든 X client에서 접근가능하므로 불필요한 프로그램으로 인해 작업을 방해받을 수
   있다. 또한 B시스템에서도 root 사용자로 로그인한 상태에서 아무생각없이 다음과 같이 전송했
   다고 하자.
    [root@B_host root]$ xterm &
   그러면 A시스템에서는 root권한이 있는 B시스템의 X터미널하나를 전송받게 된다. 이 경우 A시스템
   에서 "rm -rf /home" 과 같은 명령을 내리게 되면 B시스템의 /home디렉토리는 사라지게 된다.

15. 클라이언트에서 X Server 프로그램 사용하기(2)
(1) 개요: xhost로 사용하여 전체 클라이언트를 허가하거나 또는 IP주소, 호스트네임으로 허가한다
          고 하더라도 원치않는 불필요한 클라이언트 프로그램이 구동될 수 있다. 이 때 주어진 키
          값을 이용해서 접속하는 xauth를 이용하면 이 문제를 어느정도 해결할 수 있다.
(2) Xauthority
   1) 개요: X 윈도우에서는 xhost처럼 호스트기반 인증도 하지만 그 외에 사용자기반 인증도 한다.
           특정사용자가 X윈도우를 실행시키면 $HOME/.Xauthority라는 파일이 생성된다. 이 파일에
           는 MIT-MAGIC-COOKIEs 라는 키값을 가지고 있어 그 키값을 가지고 X서버로 접근하면 해당
           사용자로 인증하여 사용가능하도록 하고 있다.
   2) 관련명령어: xauth
    ㄱ. 설명: Xauthority파일관련 명령어로 ~/.Xauthority파일의 내용인 MIT-MAGIC-COOKIEs값을
             보여주거나 값을 변경할 수 있다.
    ㄴ. 사용법
       xauth 옵션
    ㄷ. 사용예
      a. [root@www root]# xauth list $DISPLAY
         zzang:0  MIT-MAGIC-COOKIE-1  e1076eee8a02769d81e87725c968dcf9
         www/unix:0  MIT-MAGIC-COOKIE-1  59b4c2fe30a68e02c70cbaa4001f5ddc
          => 현재 .Xauthority파일의 MIT-MAGIC-COOKIEs값을 보여준다.
      b. [root@www root]# xauth add $DISPLAY . e1076eee8a02769d81e87725c968dcf9
          => ~/.Xauthority 파일에 MIT-MAGIC-COOKIEs값을 추가한다.
(3) 사용예
   1) 조건: Xauthority를 이용하여 A 시스템(192.168.0.2)의 X 서버에 B 시스템(192.168.0.3)의
          클라이언트 프로그램이 실행되도록 한다.
   2) 방법
    ㄱ. A 시스템의 ~/.Xauthority파일의 MIT-MAGIC-COOKIEs값 확인
       [root@A_host root]# xauth list $DISPLAY
       A_host/unix:0  MIT-MAGIC-COOKIE-1  e1076eee8a02769d81e87725c968dcf9
    ㄴ. B 시스템의 X 윈도우 DISPLAY를 A 시스템으로 변경
       [root@B_host root]# export DISPLAY=192.168.0.2:0.0
    ㄷ. B 시스템의 ~/.Xauthority파일의 MIT-MAGIC-COOKIEs 키값을 입수하여 추가한다.
       [root@B_host root]# xauth add $DISPLAY . e1076eee8a02769d81e87725c968dcf9
    ㄹ. B 시스템에서 키값 확인
       [root@www root]# xauth list $DISPLAY
       A_host:0  MIT-MAGIC-COOKIE-1  e1076eee8a02769d81e87725c968dcf9
       B_host:0  MIT-MAGIC-COOKIE-1  59b4c2fe30a68e02c70cbaa4001f5ddc
        => 추가되었음을 알 수 있다. 경우에 따라 X윈도우 터미널에서는 바뀐 A 시스템의 키값만
         보일 수도 있다. 콘솔이나 외부에서 접속하여 확인하면 전부볼 수 있다.
    ㅁ. 클라이언트 프로그램 전송
      [root@B_host root]# xterm &
       => A 시스템에 B 시스템의 터미널창이 뜬다.

우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
Tips! (1)
OpenSource (1)
«   2018/07   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)