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 1

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

리눅스마스터 2급· AssociateWeek 8 · Day 1읽기 약 10분
핵심 정리
  • X 윈도는 유닉스·리눅스의 그래픽 환경을 담당하는 시스템이다. 1984년 MIT에서 시작됐다.
  • 서버와 클라이언트가 뒤바뀌어 있다. 화면·키보드·마우스를 가진 쪽이 X 서버, 프로그램이 X 클라이언트다.
  • 네트워크 기반이라 다른 컴퓨터에서 실행한 프로그램의 화면을 내 컴퓨터에 띄울 수 있다.
  • X 서버 구현의 발전 순서는 XFree86 → X.org Server → Wayland 다.
  • X 윈도는 모양과 조작 방식을 강제하지 않는다. 그래서 윈도 매니저가 따로 필요하다.

Day 1 - X 윈도의 구조와 발전

X 윈도란

항목내용
시작1984년 MIT (Athena 프로젝트)
성격그래픽 환경을 제공하는 시스템이자 프로토콜
특징네트워크 기반 · 플랫폼 독립적 · 정책을 강제하지 않음
  • 정식 이름은 X Window System 이다. "X Windows"라고 복수로 쓰지 않는다.
  • 운영체제의 일부가 아니다. 리눅스 커널과 분리된 응용 프로그램이라 없어도 시스템은 동작한다. 서버는 흔히 X 없이 운영한다.

특징을 하나씩 풀어 보기

"X 윈도의 특징으로 틀린 것"을 고르는 문항은 아래 줄 가운데 하나를 뒤집어 보기로 낸다.

특징뜻뒤집어 낸 오답의 예
네트워크 프로토콜 기반서버와 클라이언트가 X 프로토콜이라는 약속으로 대화한다. 같은 컴퓨터든 다른 컴퓨터든 방식이 같다"같은 컴퓨터 안에서만 동작한다"
클라이언트/서버 구조그리는 쪽(서버)과 요청하는 쪽(클라이언트)이 별개의 프로그램이다"프로그램이 화면에 직접 그린다"
플랫폼 독립적특정 운영체제·하드웨어에 묶이지 않는다. 서로 다른 기종 사이에서도 통한다"리눅스에서만 쓸 수 있다"
정책을 강제하지 않음창의 모양·조작법을 정하지 않고 수단만 제공한다"창 모양이 하나로 정해져 있다"
커널과 분리사용자 영역의 프로그램이다"커널에 포함되어 있다"
공개 소프트웨어소스가 공개되어 누구나 구현·배포할 수 있다"특정 회사만 구현할 수 있다"
  • X가 죽어도 커널은 살아 있다. 그래픽 화면이 멈췄을 때 텍스트 콘솔로 넘어가 복구할 수 있는 것이 커널과 분리된 덕이다.
  • 지금 내 세션이 무엇으로 돌고 있는지는 echo $XDG_SESSION_TYPE 으로 본다. x11 또는 wayland가 나온다.

서버와 클라이언트가 뒤바뀌어 있다

여기가 X 윈도에서 특히 헷갈리는 부분이라 문제로 묻기 좋다.

   [ 내 앞의 컴퓨터 ]                    [ 멀리 있는 서버 ]
 
     X 서버                                X 클라이언트
     화면 · 키보드 · 마우스                  실제 프로그램
     (하드웨어를 가진 쪽)                    (xterm, gedit ...)
        │                                        │
        │◄──── 화면에 그려 달라는 요청 ───────────┤
        ├───── 키보드·마우스 입력 전달 ─────────►│
구분X 서버X 클라이언트
정체디스플레이·입력장치를 가진 쪽응용 프로그램
하는 일화면에 그려 주고 입력을 전달무엇을 그릴지 요청
있는 곳사용자 앞어디든 (원격도 가능)
예내 노트북의 화면xterm, xclock, 브라우저

"자원(화면)을 제공하는 쪽이 서버" 라고 생각하면 이해된다. 웹은 자료를 가진 쪽이 서버지만, X는 화면을 가진 쪽이 서버다. 그래서 내 앞의 컴퓨터가 X 서버가 된다.

  • 이 구조 덕분에 원격 컴퓨터에서 실행한 프로그램의 창이 내 화면에 뜨는 일이 가능하다. 이를 네트워크 투명성(network transparency) 이라 한다.
  • 프로그램과 화면이 같은 컴퓨터에 있을 때도 똑같은 방식으로 동작한다.

둘 사이에 오가는 네 가지

   X 클라이언트 (xterm)                          X 서버 (내 화면)
        │                                             │
        ├── ① 요청(Request)   "여기에 창을 그려 줘" ──►│
        │◄─ ② 응답(Reply)     "그 창의 크기는 이렇다" ─┤
        │◄─ ③ 이벤트(Event)   "A 키가 눌렸다" ─────────┤
        │◄─ ④ 오류(Error)     "그런 창은 없다" ────────┤
메시지방향내용
요청(Request)클라이언트 → 서버창 만들기, 선·글자 그리기, 정보 묻기
응답(Reply)서버 → 클라이언트정보를 물은 요청에 대한 답
이벤트(Event)서버 → 클라이언트키보드·마우스 입력, 창이 가려졌다 드러남 등
오류(Error)서버 → 클라이언트요청을 처리할 수 없음
  • 요청만 클라이언트가 보내고 나머지 셋은 서버가 보낸다. 키보드와 마우스는 서버 쪽에 달려 있으므로 입력은 항상 서버에서 클라이언트로 흐른다.
  • 클라이언트는 화면에 직접 손대지 못한다. 점 하나를 찍는 것도 서버에 부탁해야 한다. 그래서 여러 프로그램의 창이 한 화면에서 서로 덮어쓰지 않고 공존한다.

누가 서버인지 가려 보기

상황X 서버X 클라이언트
내 노트북에서 gedit를 실행해 내 화면에 띄움내 노트북(의 X 서버 프로그램)내 노트북에서 도는 gedit
집 노트북에서 회사 서버에 접속해 gedit를 실행, 창은 집 노트북에 뜸집 노트북회사 서버에서 도는 gedit
모니터 없는 서버에서 그래픽 설치 프로그램을 실행, 창은 관리자 PC에 뜸관리자 PC서버에서 도는 설치 프로그램
컴퓨터 A의 프로그램 창이 컴퓨터 B 모니터에 보임BA의 프로그램
  • 판별 요령은 하나다 — "창이 보이는 모니터가 달린 쪽"이 X 서버다. 성능이 좋은 쪽도, 프로그램이 도는 쪽도, "서버"라고 불리는 기계도 아니다.
  • 그래서 "서버 컴퓨터"가 X 클라이언트(를 실행하는 쪽)가 되고 "내 PC"가 X 서버가 되는 일이 흔하다. 이 엇갈림이 문제의 재료다.
  • 한 X 서버에 여러 클라이언트가 동시에 붙는다. 창이 열 개 떠 있으면 클라이언트가 열 개 연결된 것이다.

발전 과정

   1984  X Window System        MIT 에서 시작
     │
   1987  X11                    지금까지 쓰이는 버전 번호
     │
   1992  XFree86                PC 유닉스용 무료 구현. 오랫동안 표준
     │                          2004년 라이선스 변경으로 갈라짐
     ▼
   2004  X.org Server           XFree86 에서 갈라져 나옴. 현재 표준
     │
     ▼
   2008~ Wayland                X 를 대체하려는 차세대 방식
이름성격
XFree86PC용 X 구현으로 오랫동안 표준이었다. 라이선스 문제로 주도권을 잃었다
X.org ServerXFree86에서 갈라져 나온 구현. 현재의 표준
WaylandX의 복잡한 구조를 걷어낸 차세대 디스플레이 서버 프로토콜

발전 순서 XFree86 → X.org Server → Wayland 를 그대로 묻는 문제가 나온다. 세 이름의 순서를 외운다.

  • X11 은 1987년에 나온 11번째 버전이며, 지금 쓰는 것도 여전히 X11이다. 그래서 X11이라는 표기가 곳곳에 남아 있다.
  • Wayland는 X의 새 버전이 아니라 대체품이다. 구조 자체가 다르며, 기존 X 프로그램은 XWayland라는 호환 계층으로 돌린다.

이름의 종류를 가른다

보기에 섞여 나오는 이름들은 같은 종류가 아니다. 무엇의 이름인지부터 가른다.

이름종류한 줄 설명
X Window System시스템 전체프로토콜과 그 구현을 통틀어 부르는 이름
X11프로토콜의 버전1987년에 나온 11번째 판. X11R6·X11R7의 R은 그 안에서의 릴리스다
XFree86X 서버 구현 (프로젝트)PC용 무료 구현. 이름의 86은 인텔 x86 계열에서 왔다
X.org ServerX 서버 구현XFree86에서 갈라져 나온 현재의 표준
Wayland프로토콜 (X와 다른 것)X11을 대체하려는 새 프로토콜
XWayland호환 계층Wayland 위에서 도는 X 서버
  • XFree86과 X.org Server는 둘 다 "X11을 구현한 프로그램" 이다. X11이 끝나고 X.org가 나온 것이 아니라, 같은 X11 프로토콜을 구현하는 프로그램이 바뀐 것이다.
  • X.org Server로 넘어간 계기는 2004년 XFree86의 라이선스 변경이다. 새 조건이 GPL과 맞지 않아 주요 배포판들이 X.org 쪽으로 옮겨 갔다.
  • X의 표준을 관리하는 단체도 바뀌어 왔다 — MIT의 X 컨소시엄에서 시작해 지금은 X.Org 재단(X.Org Foundation) 이 맡는다.

X와 Wayland — 무엇이 다른가

   X11                                      Wayland
   응용 프로그램(X 클라이언트)                응용 프로그램(Wayland 클라이언트)
        │                                        │
     X 서버  ◄──►  윈도 매니저 · 컴포지터        컴포지터  (디스플레이 서버 + 창 관리)
        │                                        │
      커널 · 그래픽 카드                         커널 · 그래픽 카드
구분X11Wayland
등장1987년2008년 시작
화면을 맡는 것X 서버 + 별도의 윈도 매니저컴포지터 하나가 겸한다
네트워크 투명성프로토콜에 들어 있다프로토콜 자체에는 없다
기존 X 프로그램그대로 실행XWayland를 거쳐 실행
대표 구현X.org ServerWeston(기준 구현), 그리고 GNOME·KDE의 컴포지터
  • X에서는 창을 그릴 때 클라이언트 → X 서버 → 컴포지터 → X 서버 → 화면으로 한 바퀴를 돈다. Wayland는 가운데의 X 서버를 걷어내 클라이언트와 컴포지터가 직접 대화한다. "복잡한 구조를 걷어냈다"는 말이 이 뜻이다.
  • Wayland에서는 디스플레이 서버와 윈도 매니저의 구분이 사라진다. 컴포지터가 둘 다 한다.
  • 페도라·우분투 같은 주요 배포판의 GNOME은 Wayland 세션을 기본으로 쓰지만, X.org도 여전히 함께 쓰인다. 시험의 "현재 표준 X 서버"는 X.org Server다.

정책을 강제하지 않는다

X 윈도는 "어떻게 그릴 것인가"만 제공하고 "어떻게 보일 것인가"는 정하지 않는다.

   X 윈도       창을 그리는 기본 기능만 제공
      │
      ├── 창의 테두리 · 최소화 버튼 · 이동?   →  윈도 매니저가 담당
      ├── 로그인 화면?                       →  디스플레이 매니저가 담당
      └── 패널 · 파일관리자 · 통합 환경?      →  데스크톱 환경이 담당
  • 그래서 리눅스에는 창 모양이 서로 다른 환경이 여러 개 존재한다. 윈도나 macOS와 크게 다른 점이다.
  • 이 세 가지(윈도 매니저 · 디스플레이 매니저 · 데스크톱 환경)의 구분은 3일 뒤에 자세히 다룬다.

관련 용어

용어뜻
X11X 윈도의 11번째 버전. 현재까지 쓰인다
네트워크 투명성프로그램이 로컬에 있든 원격에 있든 같은 방식으로 화면에 표시되는 성질
XWaylandWayland 환경에서 기존 X 프로그램을 실행하기 위한 호환 계층
디스플레이 서버화면 출력과 입력을 관리하는 프로그램. X 서버·Wayland 컴포지터가 여기 해당

내일은 X 클라이언트를 만드는 데 쓰는 라이브러리와 툴킷의 계층을 다룬다.

📖 용어

  • X 윈도(X Window System) : 유닉스·리눅스의 그래픽 환경을 제공하는 시스템. 1984년 MIT에서 시작됐다.
  • X 서버 : 화면·키보드·마우스를 가진 쪽. 사용자가 앉아 있는 컴퓨터가 여기 해당한다.
  • X 클라이언트 : 화면에 무언가를 그려 달라고 요청하는 응용 프로그램.
  • 네트워크 투명성 : 원격에서 실행한 프로그램의 화면을 로컬과 똑같이 표시할 수 있는 성질.
  • XFree86 : PC용 X 구현으로 오랫동안 표준이었던 프로젝트.
  • X.org Server : XFree86에서 갈라져 나온 현재의 표준 X 서버 구현.
  • Wayland : X를 대체하려는 차세대 디스플레이 서버 프로토콜.
  • X11 : 1987년에 나온 X 윈도의 11번째 버전. 현재까지 쓰이는 버전이다.

📝 연습 문제

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

문제 1

다음 중 X 윈도 시스템에서 X 서버에 해당하는 것으로 알맞은 것은?

문제 2

다음 중 X 서버 구현의 발전 순서를 바르게 나열한 것은?

문제 3

다음 중 X 윈도 시스템에 대한 설명으로 알맞지 않은 것은?

문제 4

다음 중 X를 대체하기 위해 설계된 차세대 디스플레이 서버 프로토콜로 알맞은 것은?

문제 5

다음 중 원격 컴퓨터에서 실행한 프로그램의 화면을 로컬 컴퓨터와 동일한 방식으로 표시할 수 있는 X 윈도의 특성으로 알맞은 것은?

이전Week 7 종합 복습: 패키지와 장치Week 7 · Day 5다음 라이브러리와 툴킷 계층Week 8 · Day 2

참고 공식 자료

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

이 페이지

  • X 윈도란
  • 특징을 하나씩 풀어 보기
  • 서버와 클라이언트가 뒤바뀌어 있다
  • 둘 사이에 오가는 네 가지
  • 누가 서버인지 가려 보기
  • 발전 과정
  • 이름의 종류를 가른다
  • X와 Wayland — 무엇이 다른가
  • 정책을 강제하지 않는다
  • 관련 용어
  • 용어
  • 연습 문제