X Window system은 X Server와 X client로 나누어진다.
X server는 출력을 담당하는 프로그램으로, 키보드 / 마우스 등의 입력을 받아들이며
X client는 X용 프로그램이다.
이런 분리구조로 인해 서버에서 X Server 가 구동되어 있지 않아도, 원격지에서 X server가 구동중이면
서버측의 X client의 출력을 로컬로 끌어올수 있다.
아래와 같이 localhost:6010에 대한 주소를 받아오지 못한다고 에러가 나면
/etc/hosts 파일이 존재하는지 확인을 해야한다.
$ gedit
_X11TransSocketINETConnect() can't get address for localhost:6010: Name or service not known
cannot open display:
Run 'gedit --help' to see a full list of available command line options.
파일이 존재한다 하더라도, 내용이 없다면 내용을 추가해준다.
$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
::1 localhost.localdomain localhost
Putty를 사용한 SSH X11 Forwarding은 상당히 유용하지만,
Gnome이나 KDE 같은 윈도우 매니저를 한번에 끌어 올때에는 아름답지 못한 결과를 보여준다.
기본 실행옵션인 -multiwindow로 gnome-session을 실행한 결과
Xming이나 cygwin/X의 경우 기본 실행 옵션이 -multiwindow로 실행되기 때문에
위와 같이 각 윈도우 별로 MS windows(TM)의 윈도우창이 붙게 된다. 그런 이유로 상단의 흰 줄은
Gnome Panel이 떠야 함에도 불구하고 제대로 뜨지 못하는 문제를 보여준다.
그리고 작업표시줄에도 윈도우 별로 별도의 창들이 떠있음을 볼 수 있다.
이를 해결 하기 위해서는
Xwindow 구동 방식옵션을 바꾸어 주어야 하는데,
옵션을 살펴보면 아래와 같이 -multiwindow 외에 -fullscreen 이라는 녀석이 존재한다.
[-fullscreen [-depth depth_in_bits_per_pixel ] [-refresh refresh_rate_in_herz ] ]
● The -fullscreen parameter tells Cygwin/X to open a given screen in fullscreen mode.
● The -depth parameter can only be used with -fullscreen and a DirectDraw based engine to specify the display depth that should be used for the fullscreen Cygwin/X screen.
● The -refresh parameter can only be used with -fullscreen and a DirectDraw based engine to specify the refresh rate that should be used for the fullscreen Cygwin/X screen.
[-multiwindow]
● Start the integrated Windows-based window manager, which launches each top-level X window in its own Windows window. Not to be used together with -rootless nor -fullscreen.
아무튼 multiwindow에서 fullscreen으로 옵션을 바꾸어서 실행하면 아래와 같이 나오게 된다.
아쉽게도, 한번에 창을 잡을수가 없어 윈도우 작업표시줄은 윈도우에서, Gnome 화면은 리눅스에서 잡았다.
아무튼 작업표시줄에 나타난 프로그램도 Xming 하나로 하나의 윈도우를 그대로 끌어 오게 되고,
Xwindow 화면 역시 깔끔하게 위의 Gnome-Panel도 제대로 나오게 된다. (참 쉽죠~?)
참고사항 : 이렇게 구동한 윈도우매니저는 shutdown 시에 gnome-session만 종료를 한다.
다르게 말하자면, 윈도우만 종료되지 컴퓨터 자체가 종료되진 않는다.
XDMCP uses TCP, UDP port 177 and TCP port 6000 to 6005
Setup X. Do not setup with a resolution higher than what the remote users are able to use for their display.
The newer version is now capable of probing the video chipset and determine that for you. Some older (X) version may not!
Test the X Server by typing either startx or telinit 5. Make sure X is running properly.
아직 원하는 것을 실행하기에는 내공이 부족한지라 또 다시 좌절중 OTL
아무튼 최종 목표는 cygwin에 kscope를 구동시키는 것이다.
(kscope는 source insight와 유사한 KDE 프로그램이며, KDE는 QT 기반이며, kscope는 cscope의 GUI Frontend이다.)
Step 1. 다음 눌러도 되는 부분은 패스~하고
이 부분에서는 한국에서 한다면 ftp://ftp.daum.net 으로 설정한다. 엄청난 속도를 자랑한다 -.-b
Step 2. Cygwin/x를 위해서는 별도의 인스톨러가 있는 것이 아니라, 설치시에 원하는 패키지를 추가로 설치해주면 된다.
일단 X-start-menu-icons를 선택하면 자동으로 시작메뉴에 추가해줄 뿐만 아니라, 필수 패키지가 자동으로 선택된다.
필수 패키지 : xorg-server, xinit
Step 3. Cygwin 마지막 단계로, Icon을 생성하는 것에 대한 물음이다.
Step 4. 아무튼 설치가 끝나면(물론 마지막에 Add icon to Start Menu를 해줘야 할 듯?) 이렇게 추가가 된다.
XWin Server를 구동하면, 처음실행시에는 보안경고가 뜨므로, 방화벽에 예외로 추가 하도록 하면된다.
Step 5. 시스템 트레이에 가동중인 XWin Server의 아이콘
Step 6. 위의 메뉴에서 xterm을 구동하고 별도로 설치한 xclock 프로그램을 xterm에서 구동한 모습
Step 7. 별도로 설치한 gvim을 xterm에서 구동한 모습
이녀석을 구동하기 위해서는 fontconfig 라는 패키지를 별도로 설치해주어야 한다.