리눅스마스터 2급 필기 14 — X 윈도우 (X 서버·클라이언트, 윈도 매니저, GNOME/KDE, xhost·xauth) 총정리
출제기준: 2차 2과목 리눅스 활용 > X 윈도우
(X 윈도우 개념과 구성, 윈도 매니저·데스크톱 환경·디스플레이 매니저, X 윈도우 사용)
기출 빈도: 2019~2023 기출 기준 약 6.6%.
2과목(리눅스 활용)은 24문항 중 X 윈도우가 약 30%(7문항)를 차지합니다.
난이도는 낮은데 "X 서버 vs X 클라이언트" 개념만 뒤집혀 있어서 여기서 많이들 틀립니다.
2차 시험이 1과목(운영·관리)을 지나 2과목(리눅스 활용) 으로 넘어왔습니다.
이 과목의 특징은 "다음 중 ~가 아닌 것은?" 유형이 많고 용어 매칭이 많다는 점이에요.
카테고리별 키워드를 세로로 묶어서 외우면 됩니다.
1. X 윈도우란? ⭐⭐⭐⭐
- 1984년 MIT 아테나(Athena) 프로젝트에서 탄생한 윈도우 시스템. 텍스트 기반 유닉스/리눅스를 GUI 환경으로 확장했습니다.
- 특정 구현 방식을 강제하지 않는 설계 철학 덕분에 리눅스의 표준 그래픽 환경이 되었습니다.
- 비유: X 윈도우는 "화면에 그림을 그려 주는 공용 무대"이고, 그 위에서 각 프로그램(브라우저 등)이 공연을 합니다.
1-1. 주요 특징 ⭐⭐⭐⭐⭐
| 특징 | 내용 |
|---|---|
| 특징 | 내용 |
| 클라이언트-서버 구조 | X 서버 = 키보드·마우스·디스플레이를 직접 제어하는, 사용자가 앉아 있는 로컬 머신. X 클라이언트 = 브라우저·계산기 등 실제로 실행되는 응용 프로그램 (로컬·원격 어디서든 실행 가능) |
| 네트워크 투명성 | 클라이언트가 원격 서버에서 돌아도 화면 출력은 내 모니터로 |
| 장치 독립성 | 특정 디스플레이 장치(하드웨어)에 의존하지 않음 |
| 메커니즘과 정책의 분리 | X는 그림 그리는 '메커니즘'만 제공, 창 테두리·제목 표시줄 같은 '정책'은 윈도 매니저가 담당 |
| 기타 | 서로 다른 기종을 함께 사용 가능, 이식성 우수, 사용자가 원하는 모양의 인터페이스 구성 가능 (특정 형태로 정의되어 있지 않음) |
⚠️ 최다 함정 — 서버/클라이언트가 뒤집혀 있습니다!
일반 서버 개념과 반대로, 내 앞의 화면·키보드를 가진 쪽이 X 서버입니다.
그래서 "A 시스템의 Firefox를 원격 B 시스템 화면에 띄우는" 상황에서는
A (프로그램이 실행되는 곳) = X 클라이언트 → DISPLAY 환경변수를 B로 설정
B (화면을 보는 곳) = X 서버 → xhost로 A의 접속을 허용
- "로컬 머신에서는 반드시 X 클라이언트만 구동된다" → 틀림
- "X 윈도우는 디스플레이 장치에 의존적이다" → 틀림 (장치 독립적)
- "그래픽 환경 자원이 특정 형태로 정의되어 있다" → 틀림
2. X 윈도우 구성 요소 ⭐⭐⭐⭐⭐
| 요소 | 설명 |
|---|---|
| 요소 | 설명 |
| X 프로토콜 | X 서버 ↔ 클라이언트가 대화하는 통신 규약 |
| 세션 매니저 | 로그아웃 후 재로그인 시 이전 작업 상태를 기억·복원 |
| 위젯 툴킷 | 버튼·스크롤바·메뉴 등 미리 만들어진 부품 모음 (예: GTK+, Qt) |
| Xlib / XCB | X 서버와 통신하는 저수준 C 라이브러리. XCB는 Xlib를 대체하기 위해 등장 |
| 윈도 매니저 (WM) | 창의 배치·크기·제목 표시줄 등 외형 관리 |
| 데스크톱 환경 (DE) | WM + 아이콘 + 패널 + 파일 관리자 + 도구를 묶은 통합 패키지 |
| 디스플레이 매니저 (DM) | 그래픽 로그인 화면 제공, 사용자 인증, 세션 시작 |
하드웨어 → X 서버 → X 프로토콜 → Xlib/XCB → 위젯 툴킷(GTK+·Qt) → 응용 프로그램
(옆에서) 윈도 매니저가 창 외형 관리
2-1. 툴킷 정리 ⭐⭐⭐
- Xlib 위의 고수준 GUI 툴킷: GTK+, Qt, FLTK, MTK(Motif), XView, Xaw, Xt
- Xorg는 툴킷이 아닙니다. X 서버(디스플레이 서버) 구현체입니다. ("Xtoolkit 종류가 아닌 것 → Xorg")
- Xt는 툴킷 프레임워크(뼈대), Xaw는 그 위의 초기 위젯 세트입니다.
2-2. 버전과 구현체 ⭐⭐⭐
| 이름 | 설명 |
| X11R6 | 과거 표준. 모든 구성 요소가 하나로 묶인 거대(monolithic) 구조 |
| X11R7 | 현재 표준. 모듈화(Modular) |
| XFree86 | 과거 대표 구현체 (라이선스 문제로 2004년 분기) |
| X.Org | 현재 가장 널리 쓰이는 구현체 |
| Wayland | X11의 후계. 최신 배포판(Fedora·Ubuntu 등)이 기본 채택 중 |
XFree86의 X 서버 설정 항목은 모니터·마우스·그래픽카드 등이고, 프린터는 관계가 없습니다(기출).
X 서버가 사용하는 TCP 포트는 6000번(기출 정답)입니다. (디스플레이 :0 → 6000, :1 → 6001 …)
3. X 윈도우 실행과 부팅 모드 ⭐⭐⭐⭐⭐
3-1. startx ⭐⭐⭐⭐
- 텍스트 모드에서 그래픽 환경을 수동으로 구동하는 스크립트. 내부적으로 xinit을 호출해 X 서버를 초기화합니다.
| 구분 | 사용자 개별 | 시스템 전체 | 역할 |
| 클라이언트 설정 | ~/.xinitrc | /etc/X11/xinit/xinitrc | 윈도 매니저 및 실행할 앱 지정 |
| 서버 설정 | ~/.xserverrc | /etc/X11/xinit/xserverrc | X 서버 실행 시 옵션 지정 |
기출: X 윈도우 구동 스크립트 순서 = xinitrc → .Xresources → .Xmodmap → Xclients
구분:.Xsession=로그인 세션 시작 스크립트,.Xsetup=XDM 로그인 화면 설정,.Xinitrc=startx 시작 시 초기화 스크립트
3-2. 부팅할 때 X 윈도우로 시작하게 하기 ⭐⭐⭐⭐⭐ (기출 반복)
| 방식 | 텍스트 모드 | 그래픽(X 윈도) 모드 |
| 런레벨 (구방식, SysV) | 3 | 5 |
| systemd 타깃 | multi-user.target | graphical.target |
systemctl get-default # 현재 기본 부팅 모드 확인
systemctl set-default graphical.target # X 윈도 모드로 부팅하도록 변경
systemctl set-default multi-user.target # 텍스트 모드로 부팅하도록 변경
구버전(SysV init)에서는 /etc/inittab 의 id:5:initdefault: 로 설정합니다.
⚠️ 기출 함정
- 현재 모드 확인은
get-default, 변경은set-default(빈칸 문제의 정석) id:3:initdefault:는 콘솔(텍스트) 모드,id:5:initdefault:가 X 윈도 모드- "X 윈도를 강제로 종료하는 키 조합" → Ctrl + Alt + Backspace (최신 배포판은 기본 비활성화인 경우가 많으니, 시험용 정답으로만 기억)
3-3. DISPLAY 환경변수 ⭐⭐⭐⭐⭐
응용 프로그램이 화면을 어디에 출력할지 결정합니다.
형식: 호스트명:디스플레이번호.스크린번호
export DISPLAY=:0.0 # 내 컴퓨터의 첫 번째 디스플레이, 첫 번째 화면
export DISPLAY=192.168.0.10:0.0 # 원격 화면으로 출력
기출: "X 클라이언트를 원격지로 전송하기 위해 변경하는 환경변수"
→ DISPLAY (VISUAL=기본 에디터, TERM=터미널 종류)
4. 윈도 매니저 vs 데스크톱 환경 ⭐⭐⭐⭐⭐
4-1. 윈도 매니저 (WM)
X 클라이언트 중 창을 관리하는 특별한 클라이언트입니다.
역할:
① 창 테두리·제목 표시줄·최소화/최대화/닫기 버튼
② 창 이동·크기 조절·겹치기 순서
③ 정책(클릭해야 활성화 vs 마우스만 올려도 활성화)
| 구분 | 종류 |
| 전통 | mwm(Motif 기반), twm(X11 표준, 단순), fvwm(가상 데스크톱), AfterStep, Enlightenment, WindowMaker |
| 현대 | Mutter(GNOME 3, Metacity의 후속), KWin(KDE), Xfwm(Xfce) |
⚠️ 기출 함정
- Xfce는 윈도 매니저가 아니라 데스크톱 환경입니다 (내부 WM이 xfwm).
- "윈도 매니저 종류로 틀린 것 → XFce" / "성격이 다른 하나 → GNOME" (WindowMaker·twm·AfterStep은 WM, GNOME은 DE)
- "KDE는 Metacity를 사용한다" → 틀림 (Metacity는 GNOME 2.x의 WM, KDE는 KWin)
- GNOME ― KWin 같은 연결은 틀린 짝 (GNOME은 Mutter)
4-2. GNOME vs KDE ⭐⭐⭐⭐⭐
| 구분 | GNOME | KDE |
| 기반 라이브러리 | GTK+ (LGPL) | Qt |
| 개발 언어 | C | C++ |
| 윈도 매니저 | Mutter (과거 Metacity) | KWin |
| 파일 관리자 | Nautilus | Dolphin |
| 디스플레이 매니저 | GDM | KDM(과거) → SDDM(현재) |
| 철학 | 심플·직관 | 다양한 기능·높은 설정 자유도 |
| 시작 | 1997년, 미겔 데 이카자 | 1996년, 마티아스 에트리히 |
- GNOME: GNU Network Object Model Environment의 약자. GNU 프로젝트의 오픈소스(무료) 데스크톱이며 패널·표준 도구·응용 프로그램이 서로 협동하도록 지원합니다. "GNOME은 소스가 공개되지 않은 상용 프로그램" → 틀림
- KDE: Qt 기반, 리눅스뿐 아니라 FreeBSD·Solaris 등도 지원하는 데스크톱 환경
- Xfce: 가벼운 DE (Xfwm, 파일 관리자 Thunar, GTK+). LXDE/LXQt는 더 가벼움
기출 정의 키워드:
"윈도 매니저를 포함해 파일 매니저·도움말·제어판·바탕화면까지 제공하는 X 윈도우 데스크톱 환경 → KDE"
4-3. 디스플레이 매니저 (DM) ⭐⭐⭐⭐
그래픽 부팅 시 사용자 인증을 처리하고 X 세션을 시작하는 프로그램입니다.
기출 표현은 "사용자 로그인 및 세션 관리 역할 → 디스플레이 매니저".
| DM | 연관 데스크톱 | 특징 |
| XDM | 표준 X | 가장 기본적인 표준 DM, 디자인 단순 |
| GDM | GNOME | GNOME 기본 DM |
| KDM | KDE(과거) | 과거 KDE 기본 DM |
| SDDM | KDE(현재) | KDE Plasma 5 이후 표준, QML 기반 |
| LightDM | Xfce, LXDE 등 | 가볍고 범용적, 우분투 등에서 선호 |
로그인 순서: 부팅 → 디스플레이 매니저(로그인·인증) → X 서버 시작 → 세션 매니저·윈도 매니저·데스크톱 환경 실행
5. 원격 X 클라이언트와 접근 제어 ⭐⭐⭐⭐⭐
네트워크 투명성은 편리하지만 곧 공격 표면입니다.
기본적으로 X 서버는 허가되지 않은 외부 클라이언트를 차단하므로, 원격 프로그램을 내 화면에 띄우려면 명시적 허가가 필요합니다. (무단 화면 조작·키 입력 탈취 방지)
5-1. xhost — 호스트(IP) 기반
| 사용법 | 설명 |
xhost + [IP/호스트명] |
특정 호스트 접속 허용 |
xhost - [IP/호스트명] |
특정 호스트 접속 허용 취소 |
xhost + |
모든 호스트 접속 허용 |
xhost - |
모든 호스트 접속 허용 해제 (교재 표현) |
⚠️ 기출 주의
- "X 서버에서 192.168.12.22 클라이언트를 허가하는 명령" 기출 정답은
xhost 192.168.12.22였습니다.
실제 문법은xhost +192.168.12.22이므로, 정답 보기가 "xhost IP" 형태로 나오면 그대로 고르고, 실무에서는+를 붙인다고 이해해 두세요. - 보안 관점:
xhost +는 누구나 접속하게 하는 설정이라 운영 환경에서는 절대 쓰면 안 됩니다.
5-2. xauth — 사용자(쿠키) 기반 ⭐⭐⭐⭐⭐
- MIT-MAGIC-COOKIE-1 이라는 비밀 키(쿠키)를 이용해 인증된 사용자만 접속 허용.
X 서버와 클라이언트가 같은 쿠키 값을 공유해야 연결이 승인됩니다. - 쿠키 정보는 홈 디렉터리의 ~/.Xauthority 에 저장 (기출: "X 윈도 실행 시 관련 키 정보를 저장하는 파일 → .Xauthority")
| 사용법 | 설명 |
xauth list |
저장된 쿠키 목록 확인 (xauth list $DISPLAY) |
xauth add |
새 쿠키 정보 추가 |
xauth extract |
쿠키 정보를 추출해 파일로 저장 |
| 비교 | xhost | xauth |
| 제어 방식 | 호스트(IP) 기반 | 사용자(쿠키) 기반 |
| 보안성 | 낮음 | 높음 |
| 인증 수단 | IP·호스트명 | Magic Cookie |
| 설정 파일 | 없음(즉시 반영) | ~/.Xauthority |
기출: 화면에
MIT-MAGIC-COOKIE-1이 출력된 결과 → xauth list $DISPLAY (xhost는 쿠키 목록을 출력하지 않음)
실무에서는ssh -X(X11 포워딩)가 표준입니다.
6. X 윈도우 응용 프로그램 ⭐⭐⭐⭐
| 구분 | 프로그램 | 포인트 |
| 웹 브라우저 | Firefox, Chromium, Chrome | 콘솔(X 없음)에서는 lynx, links (텍스트 브라우저) |
| 오피스 | LibreOffice | Writer·Calc·Impress |
| 그래픽 | GIMP(비트맵, 포토샵 대체·플러그인 확장), Inkscape(벡터), Blender(3D) |
|
| 이미지 뷰어 | Eog(GNOME), Gwenview(KDE), xv(gif·tiff·jpg·bmp 지원) | |
| 문서 뷰어 | Evince(PDF·PS·DjVu·TIFF·DVI) | |
| 멀티미디어 | VLC, totem(GNOME 기본 동영상 플레이어), XMMS(음악), mplayer, xine |
|
| 파일 관리자 | Nautilus(GNOME), Dolphin(KDE), Thunar | 윈도우의 탐색기 |
| 시스템 | GParted(파티션 관리 GUI), GNOME Terminal, Konsole | |
| 편집기 | gedit(GNOME), kwrite(KDE) | X 윈도 환경에서만 사용 |
⚠️ 기출 반복: "X 윈도 없는 콘솔에서 쓰는 웹 브라우저 → lynx / links" (chrome·firefox·opera·safari는 GUI)
기출 문제 Q&A
Q. X 윈도 시스템에서 화면 출력 하드웨어를 제어하며 사용자가 앉아 있는 쪽은?
A. X 서버 — 프로그램이 실행되는 쪽은 X 클라이언트(로컬·원격 모두 가능).
Q. A 시스템의 Firefox를 원격 B 시스템에서 보려 한다. 알맞은 설명은?
A. B 시스템이 X 서버가 되고 xhost로 A의 접속을 허용합니다. A는 X 클라이언트가 되어 DISPLAY를 B로 변경합니다.
Q. X 클라이언트를 원격지로 전송하기 위해 변경하는 환경변수는?
A. DISPLAY
Q. X 서버와 통신하는 Xlib를 대체하기 위해 등장한 라이브러리는?
A. XCB (Qt·GTK+·FLTK는 화면 부품을 그리는 툴킷)
Q. 사용자 로그인 및 세션 관리를 수행하는 X 윈도 구성요소는?
A. 디스플레이 매니저 (윈도 매니저는 창 배치·표현)
Q. 윈도 매니저의 종류가 아닌 것은? (Metacity / Enlightenment / Window Maker / XFce)
A. XFce — 데스크톱 환경입니다.
Q. X 윈도 모드로 부팅하도록 설정하는 명령의 빈칸은? (systemctl ㉠ ㉡)
A. ㉠ set-default, ㉡ graphical.target (현재 모드 확인은 get-default)
Q. GNOME의 설명으로 틀린 것은?
A. "소스가 공개되지 않은 상용 프로그램" — GNOME은 오픈소스(GPL/LGPL 계열)로 GTK+ 기반입니다.
Q. X 윈도 실행 시 인증 키 정보를 저장하는 파일은?
A. .Xauthority
💡 실무에서는?
서버에 GUI를 올리지 않는 것이 공격 표면 축소의 기본입니다.
운영 서버는 multi-user.target(텍스트 모드)로 두고, X 서버·디스플레이 매니저는 설치하지 않습니다.
그런데 GUI 설치 마법사가 필요한 제품(예: 일부 DB 설치 프로그램)을 깔 때가 있죠.
그때 xhost + 로 문을 활짝 열어 놓는 건 금물입니다. 화면 캡처와 키 입력 가로채기(키로깅)에 그대로 노출돼요.
저는 이럴 때 ssh -X 사용자@서버 로 접속해서 X11 포워딩으로 창만 내 PC에 띄웁니다.
SSH가 터널을 암호화해 주고 DISPLAY도 자동으로 설정해 줘서, 시험 문제에 나오는 xhost·xauth·DISPLAY가 한 번에 정리되는 셈입니다.
설치가 끝나면 GUI 패키지는 지우고 systemctl get-default로 부팅 모드까지 확인해 두는 게 마무리 루틴이에요.
핵심 정리
✅ X 윈도우: 1984년 MIT 아테나, 클라이언트-서버, 네트워크 투명성, 장치 독립성, 메커니즘/정책 분리
✅ X 서버 = 내 앞의 화면·키보드(로컬) / X 클라이언트 = 응용 프로그램(로컬·원격 가능)
✅ 구성: X 프로토콜 / 세션 매니저 / 위젯 툴킷 / Xlib·XCB(XCB가 Xlib 대체) / WM / DE / DM
✅ 툴킷: GTK+, Qt, FLTK, Motif(MTK), XView, Xt, Xaw — Xorg는 툴킷이 아님
✅ X11R6(거대) → X11R7(모듈화), X.Org / X 서버 포트 6000 / Wayland는 후계
✅ startx → xinit, ~/.xinitrc, ~/.xserverrc / 구동 순서 xinitrc → .Xresources → .Xmodmap → Xclients
✅ 부팅: 런레벨 3(텍스트)·5(X), id:5:initdefault: / systemctl get-default·set-default graphical.target
✅ DISPLAY=호스트:디스플레이.스크린 (원격 출력 환경변수)
✅ WM: mwm·twm·fvwm·AfterStep·WindowMaker·Mutter·KWin·Xfwm / Xfce·GNOME·KDE는 DE
✅ GNOME(GTK+·C·Mutter·Nautilus·GDM) vs KDE(Qt·C++·KWin·Dolphin·KDM→SDDM)
✅ DM: XDM, GDM, KDM, SDDM, LightDM — 로그인·인증·세션 시작
✅ xhost(IP 기반, 약함) vs xauth(쿠키 MIT-MAGIC-COOKIE-1, ~/.Xauthority, list·add·extract)
✅ GIMP=비트맵 / Inkscape=벡터 / Evince=PDF / Eog·Gwenview=이미지 / GParted=파티션 / gedit·kwrite=X 전용
✅ 콘솔 브라우저: lynx, links
다음 편 예고: 15편은 네트워크입니다.
기출 빈도 1위(12.7%) 단원이에요! OSI 7계층, TCP/IP, IP 주소 클래스와 서브넷, 포트 번호, 네트워크 설정 명령까지 한 번에 정리합니다.
궁금한 점은 댓글로 남겨주세요!
'자격증 정복 > 리눅스마스터' 카테고리의 다른 글
| 리눅스마스터 2급 필기 16 — 인터넷 서비스 (웹·메일·FTP·DNS·SSH·NFS 총정리) (0) | 2026.10.15 |
|---|---|
| 리눅스마스터 2급 필기 15 — 네트워크 (OSI 7계층·TCP/UDP·IP 주소·서브넷·네트워크 설정 명령) 총정리 (0) | 2026.10.14 |
| 리눅스마스터 2급 필기 13 — 장치 설정 (프린터 CUPS·사운드 ALSA·스캐너 SANE·커널 모듈) 총정리 (0) | 2026.10.11 |
| 리눅스마스터 2급 필기 12 — 소프트웨어 설치 (rpm·yum·dpkg·apt·tar·소스 컴파일) 총정리 (0) | 2026.10.11 |
| 리눅스마스터 2급 필기 11 — 에디터 (vi·vim·emacs·nano·pico) 명령어 총정리 (0) | 2026.10.10 |