자격증 정복/리눅스마스터

리눅스마스터 2급 필기 14 — X 윈도우 (X 서버·클라이언트, 윈도 매니저, GNOME/KDE, xhost·xauth) 총정리

올드 IT직장인 2026. 10. 13. 00:00

리눅스마스터 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 주소 클래스와 서브넷, 포트 번호, 네트워크 설정 명령까지 한 번에 정리합니다.

 

궁금한 점은 댓글로 남겨주세요!

반응형
개인정보처리방침  |  블로그 소개