1. X-윈도우 개념
리눅스 환경의 각종 애플리케이션과 유틸리티에 대해 그래픽 사용자 인터페이스(GUI)를 제공한다. 플랫폼과 독립적으로 작동하는 그래픽 시스템이다. X-윈도우는 X11, X Window System이라고 한다.
특징
- 네트워크 기반의 그래픽 환경을 지원한다.
- 이기종 시스템 사이에서도 사용가능하다.
- 스크롤바, 아이콘, 색상 등 그래픽 환경 자원들이 특정 형태로 정의되어 있지 않다.
- 디스플레이 장치에 의존적이지 않으며 원하는 인터페이스를 만들 수 있다.
X-윈도우는 네트워크 프로토콜(X 프로토콜) 기반의 클라이언트/서버 시스템이다. 서버 프로그램과 클라이언트 프로그램으로 나누어 작동한다. 서버는 클라이언트들의 디스플레이에 관한 접근 허용, 클라이언트간의 자원공유, 네트워크 메시지 전달, 클라이언트와 입출력 기기와의 중계를 담당한다. 클라이언트는 애플리케이션으로 X서버가 제공하는 기능들을 이용한다.
오픈 데스크톱 환경으로 KDE, GNOME, XFCE 등이 있다.
구성요소의 종류
XProtocol | X서버와 클라이언트 사이의 메시지 타입, 메시지 교환 방법을 규정 request, reply, error, event로 구성 - 서버는 클라이언트에게 request를 받게 되면 신호를 처리해서 응답, 오류, 입력발생등의 신호를 클라이언트에게 전송 Xlib라는 저수준 인터페이스와 Xtoolkit이라는 상위 수준 인터페이스를 사용 |
Xlib | C나 Lisp 언어로 만든 XProtocol 지원 클라이언트 라이브러리 - 윈도우 생성, 이벤트 처리, 창 조회, 키보드 처리와 같은 라이브러리 제공 |
XCB | Xlib를 대체하기 위해 등장한 클라이언트 라이브러리 - Xlib보다 향상된 스레드 기능을 지원하고 확장성이 뛰어남 - 라이브러리의 크기가 작고 단순 - XProtocol에 직접 접근도 가능 |
Xtoolkit | Xlib로 스크롤바, 메뉴, 버튼 등의 GUI 부품을 개발시 효율성 문제 발생 고급 레벨의 GUI 생성시 Xtoolkit 이용 Xtoolkit은 Widget과 Xt Intrinsic을 포함 - Widget : 스크롤바, 메뉴 등 GUI를 구성하는 객체(object) - Xt intrinsic : widget가 Xlib의 기본 함수의 집합 그 밖에 툴 킷으로는 XView, Xaw, Motif, Qt, KTK등이 있음 |
XFree86 | 인텔 X86 계열의 유닉스 운영체계에서 동작하는 x 서버 어떤 목적에 사용하든 무료로 사용할 수 있는 x시스템 |
XF86Config | XF86Config은 XFree86 설정 파일 X 서버는 XF86Config 파일을 찾아 읽음 XF86Config 파일의 위치는 /etc/X11 또는 /usr/X22R6/lib/X11 폰트, 키보드, 모니터 마우스, 비디오카드, 색상 설정에 관한 정보를 포함 - Xconfigurator : 텍스트 터미널에서 쓰는 다른 X 환경 설정 - XF86Config : X를 위한 기본 환경 설정(텍스트 터미널에서 실행) - XF86Setup : X를 위한 X-윈도우 환경설정 |
(1) 파일 /etc/inittab
init 프로세스가 읽는 파일로, init 프로세스가 무엇을 해야 할 것인가를 결정한다. 리눅스 사용 환경을 초기화한다. 파일 시스템을 점검하고, 서비스 프로세스를 관리한다. 가상 콘솔을 관리한다. 실행 level을 관리한다.
이름 : 런레벨 : 옵션 : process -옵션
런레벨 | 기능 |
3 | 텍스트모드(CUI)에 의한 다중 사용자 모드, 제한없음 |
5 | 그래픽모드(GUI)에 의한 다중 사용자 모드 |
(2) X-윈도우 실행
그래픽 환경이 아닌 아닌 터미널 윈도우로 로그인한 경우에는 몇 개의 프로그램을 실행해야 한다. 터미널 윈도우의 명령어 프롬프트상에서 다음의 명령어를 실행시켜야 한다. startx -- [인자값]
startx는 X-윈도우를 실행하는 스크립트로 시스템 환경을 초기화하고 xinit를 호출한다. 명령어 sratrx실행시 인자값을 xinit에 전달하는 옵션은 --이다.
(3) 환경변수 DISPLAY
환경변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 주는 동적인 값이다. shell에서 정의되고 실행하는 동안 프로그램에 필요한 변수이다. 환경 변수 DISPLAY는 현재 X-윈도우 Display 위치를 지정할 수 있다.
export DISPLAY=IP주소:디스플레이번호,스크린번호
(4) 윈도우 매니저
윈도우 매니저는 X window상에서 window의 배치와 표현을 담당하는 시스템 프로그램이다. 창 열기와 닫기, 창의 생성위치, 창 크기 조정, 창의 외양과 테두리를 변화시킬 수 있다. 라이브러리는 Xlib와 XCB를 사용한다. 리눅스에서 사용가능한 윈도우 매니저들은 다양하다.
윈도우 매니저 | 특성 |
fvwm | twm에서 파생되어 나온 것 안정적이고 일반화되어 오랜 기간 동안 많이 사용 Virtual Window Manager의 약자로 가상 윈도우 매니저로서 실제로 가상 데스크톱을 지원 |
twm | X-윈도우 시스템 초창기 창 관리자로 X-윈도우 개발에 큰 영향을 줌 C로 만들어졌고 텍스트 형식의 간단한 윈도우 매니저 GTK+, Qt와 같은 별도의 툴킷을 사용하지 않고 xlib를 사용 크노픽스가 twm을 기본으로 탑재 |
AfterStep | fvwm을 기반으로 만들어진 윈도우 매니저 넥스트스탭의 GUI와 유사한 사용자 인터페이스를 제공 여러 사용자의 요구사항에 맞추어 개선되면서 기능적으로 많은 발전을 가짐 |
Window Maker | 오픈스텝 호환 환경으로서의 넥스트 사의 GUI를 가상으로 구현 그래픽 응용 프로그램들이 유닉스 계열 운영체제에서 실행할 수 있음 GNU 데스크톱을 지원 현재는 GNOME과 KDE에 통합 |
Blackbox | 넥스트스텝의 인터페이스를 기반으로 하는 윈도우 매니저 |
kwm | KDE 1.x의 기본 윈도우 매니저 |
Enlightment | GNOME의 기본 윈도우 매니저 |
(5) 데스크톱 환경(Desktop environment, Desktop Manager)
GUI 사용자에게 제공하는 인터페이스 스타일로 데스크톱 관리자라고도 한다. 윈도우 매니저, 파일관리자, 도움말, 제어판 등 다양한 도구를 제공하는 패키지 형태의 프로그램이다. 아이콘, 창, 도구 모음, 폴더, 데스크톱 위젯도 제공한다. 드래그앤드롭ㅇ과 프로세스간의 통보 기능을 제공한다. 대표적인 데스크톱 환경에는 KDE, GNOME, LXDE, XFCE 등이 있다.
KDE
- 초기에는 자유 sw 라이선스가 아니었으나 추후 GPL 라이선스 기반의 유닉스용 소스로 공개되었다.
- Kool Desktop Enviroment의 약자로, 독일을 중심으로 한 인터내셔널 팀이 개발하는 오픈소스 데스크톱 환경이다
- 파일 매니저, 윈도우 매니저, 헬프 시스템, configuration 시스템과 각종 애플리케이션의 집합체이다.
- 노키아의 QT 툴 킷을 기반으로 한다.
- KDE가 실행되는 시스템은 UNIX/Linux, Solaris, IRIX, HP-UX, FreeBSD 등이 있다.
GNOME
- GNU Network Object Model Environment의 약자이다
- GNU에서 만든 공개형 데스크톱으로 소스 공개 자유 소프트웨어이다.
- GTK+(Gim Tool Kit+)라이브러리를 기반으로 한다.
- BSD와 GNU/리눅스에 포함되어 배포되고 있으며 다른 여러 UNIX 시스템에서도 작동한다.
- 전용 윈도우 관리자가 없는 대신 윈도우 관리자를 선택하여 사용한다.
- 윈도우 매니저가 바뀌더라고 데스크톱의 중요한 부분들은 바뀌지 않는다.
- 세션 매니저로 이전 설정을 저장하여 항상 해당 환경을 유지한다.
- 패널 크기 조정이 가능하고 어디로든 옮기거나 숢길 수 있으며 원하는 만큼 패널을 추가하는 것이 가능하다.
- 드래그 앤 드롭 프로토콜을 지원한다.
- 패널, 표준 데스크 툴, 응용 프로그램 외 다른 프로그램들과의 상호 간 협약으로 동작할 수 있도록 지원하고 있다.
- 라이선스 정책 - 데스크톱&라이브러리 : LGPL, 응용프로그램 : Multer 또는 Metacity
KDE | GNOME | |
그래픽 라이브러리 | QT | GTK+ |
설정 항목 수 | 최대한 많이 보여줌 | 필요한 것만 보여줌 |
기본 텍스트에디터 | kate | gedit |
기본 브라우저 | Konquerer | Web |
파일 탐색기 | Konquerer | Nautilus |
윈도우매니저 | Kwin | Multer 또는 Metacity |
LXDE
- Light X11 Desktop Environment의 약자로 2006년부터 개발되었고 우분투, Peppermint OS, Raspbian등의 배포판들에서 기본 데스크톱으로 채택되었다.
- 창 관리자로 Opnebox, 툴 킷으로는 GTK2를 사용하고 있다.
- 가벼운 데스크톱 환경과 빠른 성능과 에너지 절약을 위해서 개발되었다.
- cpu 성능이 낮고 메모리가 적은 pc와 모바일 디바이스를 위해 디자인되었다.
- 파일 브라우저 PCMANFM은 NAUTILUS, DOLPHIN, THUNAR를 재조합하여 가볍고 빠르다.
XFCE
- XForums Common Environment의 약자로 유닉스 및 유닉스 계열 플랫폼을 위한 자유 소프트웨어 데스크톱 환경이다.
- GNOME 2.x과 같이 GTK+2 툴 킷을 기반으로 하고 있다.
- Xfwm 윈도우 매니저를 사용한다.
- XFCE은 KDE와 GNOME 같은 거대 규모 데스크톱과는 달리 적은 시스템 자원을 활용한다.
- 모듈 간의 의존성이 낮으며 하드 디스크의 공간을 적게 차지하여 설치에 적은 시간이 걸린다.
(6) 디스플레이 매니저
X window system 상에서 작동하는 프로그램이다. 1988년 X11R3에서 xdm 디스플레이 매니저가 도입되었다. 1989년 X11R4에서 원격에서 제어가 가능하도록 xdmcp(X display Manager Control Protocol)가 도입되었다. 디스플레이 매니저의 종류들로는 XDM, GDM, KDM, dtlogin 등이 있다. 로컬 또는 리모트 컴퓨터의 X server의 접속과 세션 시작을 담당한다. 사용자에게 그래픽 로그인 화면을 띄워주고 아이디와 패스워드를 입력받아 인증을 진행하고 인증이 정상적으로 완료되면 세션을 시작한다.
매니저 | 기능 |
xdm | X Display Manger, 초기 X11에 도입된 디스플레이 매니저 그래픽 로그인 화면을 띄우고 세션 관리를 해줌 현재 xdm은 거의 사용되지 않음 |
dtlogin | 유닉스 쪽의 데스크톱 환경인 CDE에서는 디스플레이 매니저로 사용 AIX, HP-UX, Unixware, 구 버전 Solaris에서 사용하는 데스크톱 매니저 Motif 라이브러리를 사용해 구현 RedHat Linux에도 탑재되어 있었으나 GNOME과 KDE에게 밀려남 Solaris도 2011년부터 GNOME으로 넘어가고 CDE를 버림 단지 호환성을 위해 motif 라이브러리만 유지함 |
kdm | KDE(Kool Desktop Environment) Display Manager KDE 데스크톱에서 사용되는 디스플레이 매니저 |
gdm | GNOME의 디스플레이 매니저 그래픽 로그인 프로그램 GTK 라이브러리를 사용해 구현됨 xdm 기반으로 개발되지 않고, 완전히 독립적으로 새롭게 작성 GNU GPL 기반 라이선스 |
2. X-윈도우 활용
(1) xhost
명령어 xhost는 X 서버에 접속할 수 있는 클라이언트를 지정하거나 해제한다. X 서버에게 디스플레이 요청시 해당 요청에 대해 허용 여부를 호스트 단위로 제어한다. 환경변수 DISPLAY로 X 서버 프로그램이 실행될 때 표시되는 클라이언트 주소를 지정한다.
xhost [+|-] [IP|도메인명]
xhost + | X 서버에 모든 클라이언트 접속을 허용 |
xhost - | X 서버에 모든 클라이언트 접속을 금지 |
xhost + IP주소 | 해당 IP주소를 가진 호스트 접속 허용 |
xhost - IP주소 | 해당 IP주소를 가진 호스트 접속 금지 |
(2) xauth
xauth는 .Xauthority 파일의 쿠키 내용을 추가, 삭제, 리스트를 출력하는 유틸리티이다. xhost가 호스트 기반 인증 방식을 사용하기 위해 필요한 유틸리티라면 xauth는 MMC 방식의 인증 방식을 사용하기 위한 필수 유틸리티이다. 원격지에서 접속하는 X 클라이언트를 허가할때 IP주소나 호스트명이 아닌 X-윈도우 실행시에 생성되는 키 값으로 인증할 때 사용한다. 사용자 인증 기반을 지원하기 위해 각 사용자에게 네트워크화된 홈 디렉터리에 파일 $HOME/.Xauthority에 대해 읽기 및 쓰기 권한이 있어야 한다. .Xauthority 파일에는 응용 프로그램이 실행될 표시장치에 대한 "매직쿠키"가 있어야 한다. 매직쿠키는 MIT-MAGIC-COOKIE-1이라는 쿠키값을 가진다.
인증키 설치 명령어는 xauth add $DISPLAY.키값 이다.
(3) X-윈도우 응용 프로그램
응용 프로그램 | 설명 | |
오피스 | LibreOffice | 오피스 프로그램 패키지 - LibreOffice Writer : 문서 작성기 - LibreOffice Impress : 프레젠테이션 - LibreOffice Calc : 스프레드시트 - LibreOffice Draw : 드로잉 프로그램 |
gedit | 텍스트 편집 프로그램 | |
kwrite | KDE 기반의 텍스트 편집기 | |
그래픽 | GIMP | 이미지 편집 프로그램 |
ImageMagick | 이미지 생성 및 편집을 지원하는 프로그램 bitmap, gif, jpeg, png 등 다양한 포맷을 지원 |
|
eog | GNOME의 이미지 뷰어 프로그램 | |
kolourpaint | Ubuntu 이미지 편집 프로그램 | |
gThumb | GNOME 데스크톱 이미지 뷰어 프로그램 JPEG, GIF, TIF, PNG 등 일반적인 이미지 파일 지원 간단한 이미지 편집 |
|
gwenview | KDE의 기본 이미지 뷰어 kio를 이용해 zip, rar 압축 파일도 볼 수 있는 이미지 뷰어 |
|
멀티미디어 | Totem | GNOME 기반의 사운드 및 비디오 재생 프로그램 |
RHYTHMBOX | 통합형 음악관리 프로그램 | |
CHEESE | GNOME 기반의 카메라 동영상 프로그램 | |
Juk | KDE 3.2에 포함되어 있는 음악 재생 프로그램 | |
개발 | Eclipse | 통합 개발환경으로 자바를 비롯한 다양한 언어를 지원 OSGi를 도입하여 범용 응용 소프트웨어 플랫폼으로 발전 |
기타 | Dolphin | KDE용 파일 관리자, KDE 버전에서는 컹커러(Konqueror)가 웹 브라우저와 파일 관리자의 역할 수행 이동 경로 표시, 파일 미리보기, 실행 취소/재실행 기능 등 수행 |
Ksnapshot | 스크린샹 프로그램 |
'네트워크 > Linux' 카테고리의 다른 글
6. 리눅스 프로그램 & 주변장치 연결 (0) | 2021.12.18 |
---|---|
5. 프로세스 관리 (0) | 2021.12.11 |
4. Shell (0) | 2021.12.04 |
3. 파일 시스템 관련 명령어 (0) | 2021.11.27 |
2. Partition & Boot Manager (0) | 2021.10.30 |
댓글