- 화면을 가진 쪽이 X 서버, 프로그램이 X 클라이언트다. 웹과 반대다.
- 발전 순서는 XFree86 → X.org Server → Wayland.
- 계층은 아래부터 X 서버 → Xlib·XCB → 툴킷 → 응용 프로그램. XCB가 가장 저수준이다.
- 끝이
DM이면 디스플레이 매니저다. 이 규칙 하나로 분류 문제 상당수를 가를 수 있다. DISPLAY는호스트:디스플레이.스크린, 로컬은:0.0.
기준: 리눅스마스터 2급 출제 기준오류 제보
DM이면 디스플레이 매니저다. 이 규칙 하나로 분류 문제 상당수를 가를 수 있다.DISPLAY는 호스트:디스플레이.스크린, 로컬은 :0.0.이 주차는 이름을 어느 칸에 넣느냐가 전부다.
계층 이름들
─────────────────────────────────────────────────────────────
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)| 환경 | 툴킷 | 윈도 매니저 | 파일 관리자 | 디스플레이 매니저 |
|---|---|---|---|---|
| GNOME | GTK+ | Mutter | Nautilus | GDM |
| KDE | Qt | KWin | Dolphin | SDDM |
| Xfce | GTK+ | Xfwm | Thunar | LightDM |
| LXDE | GTK+ | Openbox | PCManFM | LXDM |
| CDE | Motif | — | — | — |
가로 한 줄을 통째로 외운다. GNOME 줄과 KDE 줄만 확실히 해도 대부분의 짝짓기 문제가 풀린다.
| 구분 | A | B | 가르는 기준 |
|---|---|---|---|
| X 서버 vs X 클라이언트 | 화면을 가진 쪽 | 프로그램 | 자원을 누가 제공하나 |
| Xlib vs XCB | 전통적, 무겁다 | 더 저수준, 가볍다 | X 서버와의 거리 |
| 라이브러리 vs 툴킷 | Xlib·XCB | GTK+·Qt·FLTK | 위젯 제공 여부 |
| GTK+ vs Qt | C, GNOME | C++, KDE | 언어와 진영 |
| Xfce vs Xfwm | 데스크톱 환경 | 윈도 매니저 | 한 글자 차이다 |
| 윈도 vs 디스플레이 매니저 | 창 | 로그인 화면 | 언제 동작하나 |
| 윈도 매니저 vs 데스크톱 환경 | 창만 | 전부 포함 | 포함 관계 |
| XFree86 vs X.org | 이전 | 현재 표준 | 세대 |
| X vs Wayland | 기존 | 대체 프로토콜 | 새 버전이 아님 |
xhost vs xauth | 호스트 단위, 약함 | 사용자 단위, 강함 | 인증 방식 |
| 런레벨 3 vs 5 | 텍스트 | 그래픽 | 부팅 모드 |
xhost + 를 쓰면 편하다 → 모두에게 화면을 여는 위험한 명령이다.DISPLAY=0:0 → 순서가 반대다. :0.0 — 콜론이 앞이다.| 값 | 무엇 |
|---|---|
| 1984 / MIT | X 윈도의 시작 |
| X11 | 현재까지 쓰이는 버전 |
:0.0 | 로컬 첫 화면의 DISPLAY 값 |
| 3 / 5 | 텍스트 / 그래픽 런레벨 |
/etc/X11/xorg.conf | X 서버 설정 파일 |
~/.Xauthority | 매직 쿠키 저장 파일 |
| MIT-MAGIC-COOKIE-1 | xauth의 인증 방식 |
| 줄임말 | 풀네임 |
|---|---|
| XCB | X protocol C-language Binding |
| GTK+ | GIMP Toolkit |
| FLTK | Fast Light Toolkit |
| CDE | Common Desktop Environment |
| GDM / KDM / XDM | GNOME / KDE / X Display Manager |
이름표를 외웠다면 이번에는 화면에 떠 있는 창 하나를 놓고 어느 부분을 누가 맡는지 짚어 본다. GNOME에서 gedit를, KDE에서 Kate를 띄운 경우다.
| 화면에서 보이는 것 | 맡는 층 | GNOME의 경우 | KDE의 경우 |
|---|---|---|---|
| 부팅 직후의 로그인 화면 | 디스플레이 매니저 | GDM | SDDM |
| 위쪽 패널, 메뉴, 설정 창 | 데스크톱 환경 | GNOME | KDE Plasma |
| 창의 제목 표시줄·테두리·닫기 버튼 | 윈도 매니저 | Mutter | KWin |
| 창 안쪽의 메뉴·버튼·글상자 | 툴킷 | GTK+ | Qt |
| 편집기라는 프로그램 자체 | 응용 프로그램(X 클라이언트) | gedit | Kate |
| 그리기 요청을 X 프로토콜로 바꿔 보내기 | 저수준 라이브러리 | Xlib · XCB | Xlib · XCB |
| 실제로 화면에 그리고 키 입력을 전달 | X 서버 | X.org Server | X.org Server |
xkill로 창을 찍어 닫는다. 부팅 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 프로토콜
▼
화면에 창startx 한 줄이 대신한다. 이미 텍스트로 로그인했으므로 로그인 화면은 거치지 않는다.DISPLAY 다.보기를 만드는 쪽은 같은 글자로 시작하는 이름을 한데 모은다. 미리 갈라 둔다.
| X로 시작 | 정체 |
|---|---|
| XFree86 | 예전의 X 서버 구현 |
| X.org Server | 현재의 X 서버 구현 |
| X11 | X 프로토콜의 버전 |
| Xlib · XCB | 저수준 라이브러리 |
| XDM | 디스플레이 매니저 |
| Xfce | 데스크톱 환경 |
| Xfwm | Xfce의 윈도 매니저 |
| XWayland | Wayland에서 X 프로그램을 돌리는 호환 계층 |
xterm · xclock · xeyes | X 클라이언트(응용 프로그램) |
xhost · xauth · xrandr · xkill · xdpyinfo | X 관련 명령 |
| 머리글자 | 데스크톱 환경 | 윈도 매니저 | 디스플레이 매니저 | 툴킷 | 그 밖의 프로그램 |
|---|---|---|---|---|---|
| G | GNOME | (Mutter) | GDM | GTK+ | GIMP, gedit |
| K | KDE | KWin | KDM (지금은 SDDM) | (Qt) | Konsole, Kate |
| L | LXDE, LXQt | (Openbox) | LXDM, LightDM | — | — |
| M | MATE | Mutter, Metacity, Marco, Muffin | — | Motif | — |
정답을 가리고 "나머지 셋의 공통점"부터 말해 본다. 공통점이 말로 나오면 다른 하나는 저절로 보인다.
| 보기 | 다른 하나 | 나머지 셋의 공통점 |
|---|---|---|
GTK+ · Qt · Motif · Xlib | Xlib | 툴킷 |
XCB · Xlib · FLTK 가운데 위젯을 제공하는 것 | FLTK | (나머지 둘은 저수준 라이브러리) |
Mutter · KWin · Xfwm · SDDM | SDDM | 윈도 매니저 |
GDM · KDM · XDM · twm | twm | 디스플레이 매니저 |
GNOME · Xfce · LXDE · KDE (툴킷 기준) | KDE | GTK+ 기반 |
KDE · LXQt · Xfce 가운데 Qt 기반이 아닌 것 | Xfce | (나머지 둘은 Qt 기반) |
Nautilus · Dolphin · Thunar · Evince | Evince | 파일 관리자 (Evince는 문서 보기) |
XFree86 · X.org Server · Wayland · Xlib | Xlib | 화면을 맡는 서버·프로토콜 쪽 (Xlib은 클라이언트 라이브러리) |
xhost · xauth · ssh -X · xrandr | xrandr | 원격 화면의 접근·연결 (xrandr는 해상도) |
Windowmaker · Afterstep · Fluxbox · Cinnamon | Cinnamon | 단독 윈도 매니저 |
| 주어진 것 | 읽는 법 |
|---|---|
DISPLAY=:0 | 로컬, 0번 디스플레이, 스크린 생략(0) — :0.0과 같다 |
DISPLAY=192.168.0.10:1.0 | 192.168.0.10의 두 번째 X 서버, 첫 화면. TCP 6001번 |
DISPLAY=localhost:10.0 | ssh -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 서버 구현 | XFree86 | X.org Server (그리고 대체 프로토콜 Wayland) |
| 저수준 라이브러리 | Xlib | XCB (Xlib도 함께 쓰인다) |
| X 서버 설정 파일 | XF86Config | xorg.conf |
| GNOME의 윈도 매니저 | Metacity | Mutter |
| KDE의 디스플레이 매니저 | KDM | SDDM |
| 부팅 모드 지정 | 런레벨 (/etc/inittab) | 타깃 (systemctl set-default) |
| 원격 표시 | xhost + DISPLAY | ssh -X |
다음 주는 네트워크의 개념이다. OSI 7계층, TCP/IP, IP 주소와 서브넷을 다룬다.
DISPLAY : 출력할 화면을 지정하는 환경 변수.ssh -X로 쓴다.선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
다음 중 X 윈도 시스템의 계층에서 가장 아래에 위치해 X 서버와 직접 통신하는 것으로 알맞은 것은?
문제 2
다음 중 디스플레이 매니저에 해당하지 않는 것으로 알맞은 것은?
문제 3
다음 중 Xfce 데스크톱 환경이 사용하는 윈도 매니저로 알맞은 것은?
문제 4
다음 중 X 윈도의 텍스트 모드에 해당하는 런레벨로 알맞은 것은?
문제 5
다음 중 Qt 툴킷을 기반으로 만들어진 데스크톱 환경으로 알맞은 것은?
문제 6
다음 중 원격 컴퓨터의 그래픽 프로그램을 암호화된 통신으로 안전하게 내 화면에 띄우는 방법으로 알맞은 것은?