CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
    • 1.X 윈도의 구조와 발전
    • 2.라이브러리와 툴킷 계층
    • 3.윈도 매니저 · 디스플레이 매니저 · 데스크톱 환경
    • 4.X 실행과 원격 화면
    • 5.Week 8 종합 복습: X 윈도 이름표
  • Week 9
  • Week 10
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 8/Day 5

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 8 · Day 5읽기 약 10분
핵심 정리
  • 화면을 가진 쪽이 X 서버, 프로그램이 X 클라이언트다. 웹과 반대다.
  • 발전 순서는 XFree86 → X.org Server → Wayland.
  • 계층은 아래부터 X 서버 → Xlib·XCB → 툴킷 → 응용 프로그램. XCB가 가장 저수준이다.
  • 끝이 DM이면 디스플레이 매니저다. 이 규칙 하나로 분류 문제 상당수를 가를 수 있다.
  • DISPLAY는 호스트:디스플레이.스크린, 로컬은 :0.0.

Day 5 - Week 8 종합 복습: X 윈도 이름표

이름표 한 장

이 주차는 이름을 어느 칸에 넣느냐가 전부다.

   계층                      이름들
   ─────────────────────────────────────────────────────────────
   X 서버 구현     XFree86 → X.org Server → Wayland
                   (XWayland 는 호환 계층)
 
   저수준 라이브러리  Xlib · XCB          ← XCB 가 더 아래(저수준)
 
   툴킷            GTK+(C, GIMP Toolkit) · Qt(C++) · FLTK · Motif · Tk
 
   윈도 매니저      KWin(KDE) · Mutter(GNOME) · Metacity(GNOME2)
                   Xfwm(Xfce) · Openbox(LXDE) · Marco(MATE) · Muffin(Cinnamon)
                   Windowmaker · Afterstep · Enlightenment · Fluxbox · twm · FVWM
 
   디스플레이 매니저  XDM(기본) · GDM(GNOME) · KDM(구 KDE)
                   SDDM(KDE Plasma) · LightDM(우분투·Xfce) · LXDM
 
   데스크톱 환경     GNOME · KDE · Xfce · LXDE · LXQt · MATE · Cinnamon · CDE
 
   파일 관리자      Nautilus(GNOME) · Dolphin(KDE) · Thunar(Xfce) · PCManFM(LXDE)

데스크톱 환경 한 줄로 묶기

환경툴킷윈도 매니저파일 관리자디스플레이 매니저
GNOMEGTK+MutterNautilusGDM
KDEQtKWinDolphinSDDM
XfceGTK+XfwmThunarLightDM
LXDEGTK+OpenboxPCManFMLXDM
CDEMotif———

가로 한 줄을 통째로 외운다. GNOME 줄과 KDE 줄만 확실히 해도 대부분의 짝짓기 문제가 풀린다.

헷갈리는 짝 대조

구분AB가르는 기준
X 서버 vs X 클라이언트화면을 가진 쪽프로그램자원을 누가 제공하나
Xlib vs XCB전통적, 무겁다더 저수준, 가볍다X 서버와의 거리
라이브러리 vs 툴킷Xlib·XCBGTK+·Qt·FLTK위젯 제공 여부
GTK+ vs QtC, GNOMEC++, KDE언어와 진영
Xfce vs Xfwm데스크톱 환경윈도 매니저한 글자 차이다
윈도 vs 디스플레이 매니저창로그인 화면언제 동작하나
윈도 매니저 vs 데스크톱 환경창만전부 포함포함 관계
XFree86 vs X.org이전현재 표준세대
X vs Wayland기존대체 프로토콜새 버전이 아님
xhost vs xauth호스트 단위, 약함사용자 단위, 강함인증 방식
런레벨 3 vs 5텍스트그래픽부팅 모드

자주 틀리는 지점

  1. 원격 서버가 X 서버다 → 아니다. 내 앞의 컴퓨터가 X 서버다.
  2. Xlib이 가장 저수준 → XCB가 더 아래다.
  3. GTK+가 C++ → C다. Qt가 C++ 이다.
  4. Xfce가 윈도 매니저 → 데스크톱 환경이다. 윈도 매니저는 Xfwm.
  5. Wayland는 X의 새 버전 → 대체품이다. 구조가 다르다.
  6. X 윈도가 커널의 일부 → 아니다. 응용 프로그램이라 없어도 된다.
  7. xhost + 를 쓰면 편하다 → 모두에게 화면을 여는 위험한 명령이다.
  8. DISPLAY=0:0 → 순서가 반대다. :0.0 — 콜론이 앞이다.
  9. 런레벨 5가 텍스트 → 3이 텍스트, 5가 그래픽이다.
  10. KDM이 현재 KDE의 디스플레이 매니저 → 지금은 SDDM이다. KDM은 예전 것이다.

시험에 그대로 나오는 값

값무엇
1984 / MITX 윈도의 시작
X11현재까지 쓰이는 버전
:0.0로컬 첫 화면의 DISPLAY 값
3 / 5텍스트 / 그래픽 런레벨
/etc/X11/xorg.confX 서버 설정 파일
~/.Xauthority매직 쿠키 저장 파일
MIT-MAGIC-COOKIE-1xauth의 인증 방식
줄임말풀네임
XCBX protocol C-language Binding
GTK+GIMP Toolkit
FLTKFast Light Toolkit
CDECommon Desktop Environment
GDM / KDM / XDMGNOME / KDE / X Display Manager

창 하나를 층별로 해부하기

이름표를 외웠다면 이번에는 화면에 떠 있는 창 하나를 놓고 어느 부분을 누가 맡는지 짚어 본다. GNOME에서 gedit를, KDE에서 Kate를 띄운 경우다.

화면에서 보이는 것맡는 층GNOME의 경우KDE의 경우
부팅 직후의 로그인 화면디스플레이 매니저GDMSDDM
위쪽 패널, 메뉴, 설정 창데스크톱 환경GNOMEKDE Plasma
창의 제목 표시줄·테두리·닫기 버튼윈도 매니저MutterKWin
창 안쪽의 메뉴·버튼·글상자툴킷GTK+Qt
편집기라는 프로그램 자체응용 프로그램(X 클라이언트)geditKate
그리기 요청을 X 프로토콜로 바꿔 보내기저수준 라이브러리Xlib · XCBXlib · XCB
실제로 화면에 그리고 키 입력을 전달X 서버X.org ServerX.org Server
  • 창의 테두리와 창의 안쪽은 그리는 주체가 다르다. 테두리·제목 표시줄은 윈도 매니저가, 안쪽 내용은 프로그램이 툴킷을 써서 그린다. GNOME에서 Qt 프로그램을 띄우면 테두리는 GNOME 모양인데 안쪽 버튼만 다르게 생긴 까닭이다.
  • 아래 두 줄은 GNOME이든 KDE든 같다. 진영이 갈리는 것은 툴킷부터 위쪽이다.
  • 그래서 프로그램이 멈춰 안쪽이 굳어도 테두리를 잡고 창을 옮길 수는 있다. 윈도 매니저는 별개의 프로그램이라 살아 있기 때문이다. 이때 xkill로 창을 찍어 닫는다.
  • 요즘 GNOME 프로그램 가운데에는 제목 표시줄까지 프로그램이 직접 그리는 것도 있다. 시험이 묻는 것은 위 표의 전통적인 역할 분담이다.

전원부터 창까지 — 시간순으로

   부팅        graphical.target (런레벨 5)        ← multi-user.target(3) 이면 여기서 텍스트 로그인
     │
   디스플레이 매니저 시작 (GDM · SDDM · LightDM)
     │           X 서버(X.org Server)를 디스플레이 :0 으로 띄운다   ← 설정 /etc/X11/xorg.conf
     │           로그인 화면을 그린다
     │
   세션 시작    데스크톱 환경 = 윈도 매니저 + 패널 + 파일 관리자 …
     │
   프로그램     X 클라이언트가 DISPLAY=:0 을 보고 X 서버에 접속
     │           툴킷(GTK+ · Qt) → Xlib · XCB → X 프로토콜
     ▼
   화면에 창
  • 텍스트로 부팅했다면 X 서버를 띄우고 세션을 시작하는 일을 startx 한 줄이 대신한다. 이미 텍스트로 로그인했으므로 로그인 화면은 거치지 않는다.
  • 이번 주 나흘이 이 그림의 한 칸씩이다 — 1일차가 X 서버와 클라이언트, 2일차가 라이브러리와 툴킷, 3일차가 세 매니저, 4일차가 실행과 DISPLAY 다.

머리글자가 같은 이름 가르기

보기를 만드는 쪽은 같은 글자로 시작하는 이름을 한데 모은다. 미리 갈라 둔다.

X로 시작정체
XFree86예전의 X 서버 구현
X.org Server현재의 X 서버 구현
X11X 프로토콜의 버전
Xlib · XCB저수준 라이브러리
XDM디스플레이 매니저
Xfce데스크톱 환경
XfwmXfce의 윈도 매니저
XWaylandWayland에서 X 프로그램을 돌리는 호환 계층
xterm · xclock · xeyesX 클라이언트(응용 프로그램)
xhost · xauth · xrandr · xkill · xdpyinfoX 관련 명령
머리글자데스크톱 환경윈도 매니저디스플레이 매니저툴킷그 밖의 프로그램
GGNOME(Mutter)GDMGTK+GIMP, gedit
KKDEKWinKDM (지금은 SDDM)(Qt)Konsole, Kate
LLXDE, LXQt(Openbox)LXDM, LightDM——
MMATEMutter, Metacity, Marco, Muffin—Motif—
  • G줄에서 GNOME·GDM·GTK+·GIMP는 넷 다 종류가 다르다 — 환경, 로그인, 툴킷, 응용 프로그램이다. "GNOME과 같은 종류"를 고르라면 KDE·Xfce 쪽에서 찾아야지 G로 시작하는 것에서 찾으면 안 된다.
  • M줄에서 MATE만 데스크톱 환경, Motif는 툴킷, 나머지 넷은 윈도 매니저다.

판별 연습 — 다른 하나 고르기

정답을 가리고 "나머지 셋의 공통점"부터 말해 본다. 공통점이 말로 나오면 다른 하나는 저절로 보인다.

보기다른 하나나머지 셋의 공통점
GTK+ · Qt · Motif · XlibXlib툴킷
XCB · Xlib · FLTK 가운데 위젯을 제공하는 것FLTK(나머지 둘은 저수준 라이브러리)
Mutter · KWin · Xfwm · SDDMSDDM윈도 매니저
GDM · KDM · XDM · twmtwm디스플레이 매니저
GNOME · Xfce · LXDE · KDE (툴킷 기준)KDEGTK+ 기반
KDE · LXQt · Xfce 가운데 Qt 기반이 아닌 것Xfce(나머지 둘은 Qt 기반)
Nautilus · Dolphin · Thunar · EvinceEvince파일 관리자 (Evince는 문서 보기)
XFree86 · X.org Server · Wayland · XlibXlib화면을 맡는 서버·프로토콜 쪽 (Xlib은 클라이언트 라이브러리)
xhost · xauth · ssh -X · xrandrxrandr원격 화면의 접근·연결 (xrandr는 해상도)
Windowmaker · Afterstep · Fluxbox · CinnamonCinnamon단독 윈도 매니저

판별 연습 — 값 읽기

주어진 것읽는 법
DISPLAY=:0로컬, 0번 디스플레이, 스크린 생략(0) — :0.0과 같다
DISPLAY=192.168.0.10:1.0192.168.0.10의 두 번째 X 서버, 첫 화면. TCP 6001번
DISPLAY=localhost:10.0ssh -X로 들어온 세션이다. sshd가 만든 가짜 디스플레이
access control disabled, clients can connect from any host누군가 xhost + 를 했다 — 닫으려면 xhost -
Error: Can't open display:DISPLAY가 비어 있다
systemctl get-default → multi-user.target텍스트로 부팅한다(런레벨 3). 그래픽은 startx로
id:5:initdefault:예전 /etc/inittab에서 그래픽 모드로 부팅하라는 줄
Section "Device"xorg.conf의 그래픽 카드 구역 (키보드·마우스가 아니다)

옛것과 지금 것

영역옛것지금 것
X 서버 구현XFree86X.org Server (그리고 대체 프로토콜 Wayland)
저수준 라이브러리XlibXCB (Xlib도 함께 쓰인다)
X 서버 설정 파일XF86Configxorg.conf
GNOME의 윈도 매니저MetacityMutter
KDE의 디스플레이 매니저KDMSDDM
부팅 모드 지정런레벨 (/etc/inittab)타깃 (systemctl set-default)
원격 표시xhost + DISPLAYssh -X
  • 시험은 옛 이름도 그대로 낸다. "현재 표준"을 물을 때와 "발전 순서"를 물을 때 답이 달라지므로, 두 칸을 짝으로 기억한다.

다음 주는 네트워크의 개념이다. OSI 7계층, TCP/IP, IP 주소와 서브넷을 다룬다.

📖 용어

  • X 서버 / X 클라이언트 : 화면과 입력장치를 가진 쪽 / 화면에 그려 달라고 요청하는 프로그램.
  • XCB : Xlib보다 얇고 X 서버에 더 가까운 저수준 라이브러리.
  • 툴킷 : 버튼·메뉴 같은 위젯을 제공하는 상위 라이브러리. GTK+, Qt 등.
  • 윈도 매니저 / 디스플레이 매니저 / 데스크톱 환경 : 창 담당 / 로그인 화면 담당 / 전체 통합 환경.
  • DISPLAY : 출력할 화면을 지정하는 환경 변수.
  • X11 forwarding : X 통신을 SSH의 암호화된 연결에 실어 보내는 기능. ssh -X로 쓴다.
  • 컴포지터 : Wayland에서 화면 출력과 창 관리를 함께 맡는 프로그램.
  • Wayland : X를 대체하기 위해 새로 설계된 디스플레이 서버 프로토콜.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 X 윈도 시스템의 계층에서 가장 아래에 위치해 X 서버와 직접 통신하는 것으로 알맞은 것은?

문제 2

다음 중 디스플레이 매니저에 해당하지 않는 것으로 알맞은 것은?

문제 3

다음 중 Xfce 데스크톱 환경이 사용하는 윈도 매니저로 알맞은 것은?

문제 4

다음 중 X 윈도의 텍스트 모드에 해당하는 런레벨로 알맞은 것은?

문제 5

다음 중 Qt 툴킷을 기반으로 만들어진 데스크톱 환경으로 알맞은 것은?

문제 6

다음 중 원격 컴퓨터의 그래픽 프로그램을 암호화된 통신으로 안전하게 내 화면에 띄우는 방법으로 알맞은 것은?

이전X 실행과 원격 화면Week 8 · Day 4다음 OSI 7계층과 TCP/IPWeek 9 · Day 1

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 이름표 한 장
  • 데스크톱 환경 한 줄로 묶기
  • 헷갈리는 짝 대조
  • 자주 틀리는 지점
  • 시험에 그대로 나오는 값
  • 창 하나를 층별로 해부하기
  • 전원부터 창까지 — 시간순으로
  • 머리글자가 같은 이름 가르기
  • 판별 연습 — 다른 하나 고르기
  • 판별 연습 — 값 읽기
  • 옛것과 지금 것
  • 용어
  • 연습 문제