공든탑앱 열기

X 윈도의 구조

리눅스마스터 2급 · X 윈도 · 약 9분

쉽게 말하면

리눅스의 그래픽 화면을 담당하는 시스템이 X 윈도예요. 화면을 실제로 그리는 쪽(X 서버)과 '이거 그려 주세요'라고 부탁하는 프로그램(X 클라이언트)이 나뉘어 있어서, 프로그램은 다른 컴퓨터에 있어도 내 화면에 띄울 수 있어요. 내 앞의 화면이 '서버'라는 점이 헷갈리기 쉬워요.

시험용 정의

X 윈도 시스템(X11)은 유닉스·리눅스의 그래픽 환경을 제공하는 네트워크 기반 클라이언트-서버 시스템이다. 1984년 MIT에서 시작했고, 현재 리눅스의 구현은 X.Org(Xorg) 서버다.

비유로 이해하기

X 서버는 극장의 스크린과 영사 담당, X 클라이언트는 "이 장면을 틀어 주세요"라고 요청하는 영화사다. 영화사는 다른 도시(원격 컴퓨터)에 있어도 된다.

자세히

서버와 클라이언트가 거꾸로처럼 보이는 이유

보통 "서버"는 멀리 있는 큰 컴퓨터를 떠올리지만, X에서는 화면·키보드·마우스를 가진 쪽이 서버다. 기준은 "누가 서비스를 제공하느냐"다. X 서버는 화면에 그려 주고 입력을 전달하는 서비스를 제공하고, 프로그램(X 클라이언트)은 "여기에 창을 그려 줘"라고 요청한다.

그래서 원격 서버 컴퓨터에서 firefox를 실행하고 내 모니터에 띄우면, 내 PC가 X 서버, 원격 컴퓨터에서 도는 firefox가 X 클라이언트다. X가 처음부터 이렇게 네트워크로 화면을 주고받도록 설계되었기 때문에(네트워크 투명성) 가능한 일이다.

  • 디스플레이: X 서버 하나가 관리하는 화면·입력 장치 묶음. 번호 0부터(:0)
  • 위젯 툴킷: 버튼·메뉴·스크롤바 같은 화면 부품을 미리 만들어 둔 라이브러리. 같은 툴킷을 쓰면 프로그램들의 모양이 통일된다
  • Wayland: X를 대체하려고 만든 새 디스플레이 서버 프로토콜. 구조가 단순하고 보안이 낫다. 요즘 GNOME·KDE 기본값

구성 요소

요소역할
X 서버디스플레이·입력 장치를 관리하고 클라이언트 요청대로 화면에 그림 (Xorg)
X 클라이언트xterm, firefox 같은 그래픽 응용 프로그램
X 프로토콜서버와 클라이언트가 주고받는 통신 규약. 네트워크로도 동작 (TCP 6000+디스플레이 번호)
Xlib · XCBX 프로토콜을 쓰기 쉽게 한 C 라이브러리
위젯 툴킷버튼·메뉴 등 부품 모음. GTK+(GNOME), Qt(KDE), Motif
윈도 매니저창 테두리·이동·크기 조절·배치 담당. X 클라이언트의 일종 (Mutter, KWin, Openbox, twm)
디스플레이 매니저그래픽 로그인 화면 (GDM, SDDM, LightDM, XDM)

역사와 흐름

MIT 아테나 프로젝트(1984) → X11(1987, 현재까지 11번째 버전) → 리눅스 초창기 구현 XFree86 → 라이선스 문제로 갈라져 나온 X.Org가 표준이 됨. 최근 배포판은 X를 대체하는 Wayland를 기본으로 쓰는 경우가 많고, 기존 X 앱은 XWayland로 돌린다.

X 윈도의 특징

  • 네트워크 투명성: 원격 컴퓨터의 프로그램을 내 화면에 띄울 수 있음
  • 화면 모양(윈도 매니저, 데스크톱 환경)을 자유롭게 바꿀 수 있음
  • X 자체는 커널의 일부가 아닌 일반 응용 프로그램

시험에 나오는 그 밖의 말

말뜻
Xfce가벼운 데스크톱 환경이다. 윈도 매니저가 아니다 (윈도 매니저는 Xfce 안에 든 Xfwm)
MetacityGNOME 2 시절의 윈도 매니저. 뒤를 이은 것이 Mutter

시험에 이렇게 나와요

확인 문제

Q1. 내 노트북에서 ssh로 원격 서버에 접속해 그 서버의 xclock(시계 프로그램)을 실행하니 시계가 내 노트북 화면에 떴다. 이때 X 서버는 어디일까?

  1. X 서버는 필요 없다
  2. 둘 다
  3. 원격 서버
  4. 내 노트북
정답 보기

4번 내 노트북

X 윈도에서 X 서버는 화면·키보드·마우스를 가진 쪽, 즉 내 노트북이다. 원격에서 실행된 xclock은 화면을 그려 달라고 요청하는 X 클라이언트다. 흔히 생각하는 서버/클라이언트와 방향이 반대라서 시험에 자주 나온다.

Q2. X 윈도 시스템이 네트워크 통신에 쓰는 기본 TCP 포트는?

  1. 22
  2. 80
  3. 631
  4. 6000
정답 보기

4번 6000

6000번이다. 디스플레이 번호를 더해 :0은 6000, :1은 6001을 쓴다. 631은 CUPS 인쇄 포트다.

Q3. 다음 중 윈도 매니저가 아닌 것은?

  1. twm
  2. Metacity
  3. KWin
  4. Xfce
정답 보기

4번 Xfce

Xfce는 창 관리자를 포함한 데스크톱 환경이다. KWin(KDE), Metacity(옛 GNOME), twm은 창 관리자(윈도 매니저)다.

Q4. 그래픽 로그인 화면을 띄우고 사용자 세션을 관리하는 X 구성 요소는?

  1. Xlib
  2. X 프로토콜
  3. 디스플레이 매니저
  4. 윈도 매니저
정답 보기

3번 디스플레이 매니저

GDM, SDDM 같은 디스플레이 매니저.

Q5. X 윈도에 대한 설명으로 틀린 것은?

  1. 네트워크 투명성을 가진다
  2. 윈도 매니저를 바꿔 쓸 수 있다
  3. 커널의 일부로 동작한다
  4. 클라이언트-서버 구조다
정답 보기

3번 커널의 일부로 동작한다

X는 사용자 영역의 응용 프로그램이다.

Q6. 창의 배치·이동·크기 조절 등을 담당하는 것은?

  1. 윈도 매니저
  2. 디스플레이 매니저
  3. X 프로토콜
  4. Xlib
정답 보기

1번 윈도 매니저

윈도 매니저. 로그인 화면은 디스플레이 매니저.

Q7. 현재 리눅스에서 널리 쓰이는 X 서버 구현은?

  1. X.Org
  2. Xlib
  3. Motif
  4. XFree86
정답 보기

1번 X.Org

X.Org(Xorg). XFree86은 이전 구현.

헷갈리기 쉬운 O·X

X 윈도에서 X 서버는 응용 프로그램이 실행되는 원격 컴퓨터다.

정답 보기

X X 서버는 화면·입력 장치가 있는 쪽(사용자 앞의 컴퓨터).

GTK+는 GNOME, Qt는 KDE의 기반 툴킷이다.

정답 보기

O 짝으로 외우자.

Wayland는 X 윈도를 대체하기 위한 디스플레이 서버 프로토콜이다.

정답 보기

O 기존 X 앱은 XWayland로 실행.

함께 보면 좋은 개념