Setiap piksel yang menyala di layar dan setiap klik mouse yang sampai ke aplikasi melewati satu lapisan yang jarang terlihat: display server. Linux memakai dua generasi teknologi untuk peran ini — X11 yang berusia puluhan tahun dan Wayland yang menggantikannya — dan pemahaman tentang keduanya menjelaskan banyak perilaku aneh yang kita temui di desktop. Pada Chapter ini kita bedah cara kerja display server, lalu telusuri transisi besar yang sedang berlangsung di ekosistem desktop Linux.

Peran Display Server #

Aplikasi grafis tidak pernah menulis langsung ke layar. Ketika Firefox menggambar halaman atau ketikan kita dikirim ke editor teks, display server berada di tengahnya: aplikasi meminta penggambaran, display server menyusun hasil semua aplikasi menjadi satu tampilan utuh, menuliskannya ke hardware lewat driver, lalu menyalurkan event keyboard dan mouse ke aplikasi yang tepat. Susunan lapisannya kira-kira sebagai berikut:

text
Aplikasi grafis  →  Toolkit (GTK / Qt)  →  Display server  →  Kernel dan driver

Pada tatanan lama, display server berjalan sebagai program terpisah dari window manager; pada tatanan baru, keduanya menyatu. Perbedaan arsitektur inilah yang membedakan X11 dan Wayland.

X11 dan X.Org #

X11 (X Window System versi 11) adalah protokol display server yang lahir di MIT pada 1987 — lebih tua dari Linux itu sendiri. Implementasi yang dominan hari ini adalah X.Org Server, sehingga nama X.Org dan X11 sering dipakai bergantian. Arsitekturnya berbentuk client-server dengan arah yang terbalik dari intuisi awal: server berjalan di komputer yang memiliki layar dan keyboard, sedangkan client adalah aplikasi yang meminta penggambaran — dan client tersebut boleh berada di komputer lain di jaringan. Dari desain ini lahir network transparency: aplikasi berat bisa dijalankan di mesin jauh sementara jendelanya tampil di layar kita.

Usia tua X11 meninggalkan dua warisan yang kurang nyaman. Pertama, model keamanannya longgar: aplikasi X11 apa pun yang berjalan di sesi kita secara teknis bisa mengintip dan menyuntik input ke aplikasi lain, karena protokolnya dirancang jauh sebelum keamanan desktop jadi kebutuhan. Kedua, protokol intinya hanya mengurus penggambaran sederhana, sehingga fitur modern seperti tata letak monitor dan pengaturan keyboard ditambal lewat ekstensi bertumpuk (RANDR, XKB) yang menambah kompleksitas. Sejarah dan detailnya dirangkum di halaman Xorg ArchWiki .

Wayland: Protokol Modern #

Wayland, dirintis oleh Kristian Høgsberg pada 2008, mengganti pendekatan itu sepenuhnya. Wayland adalah protokol antar-proses yang meniadakan server raksasa terpisah: peran display server dilebur ke dalam compositor — program yang menyusun tampilan — yang sekaligus merangkap window manager. GNOME menjalankan peran tersebut lewat Mutter, KDE Plasma lewat KWin, dan keluarga WM tiling seperti Sway serta Hyprland dibangun di atas pustaka wlroots. Aplikasi dan compositor lalu berkomunikasi untuk bertukar buffer gambar dan input, membuat kode jalannya jauh lebih ramping.

Konsekuensi desainnya nyata di dua sisi. Sisi positif: setiap aplikasi terisolasi, sehingga aplikasi lain tidak bisa sembarang membaca layar atau merekam ketikan; frame juga tersinkronisasi dengan layar sehingga tearing nyaris hilang. Sisi yang menuntut penyesuaian: screenshot, perekaman layar, dan remote desktop kini harus melalui mekanisme resmi yang disediakan compositor, bukan trik lama era X11. Perbandingan kedua generasi:

AspekX11Wayland
Arsitekturdisplay server terpisah dari WMcompositor merangkap display server dan WM
Muncul1987dirintis 2008, diadopsi luas 2010-an akhir
Network transparencybawaan sejak awalbukan bagian protokol inti
Isolasi antar-aplikasilonggarketat per compositor
Kode dan ekstensibertumpuk sejarahramping, didesain ulang

Status Transisi dan XWayland #

Perpindahan ini tidak terjadi dalam semalam karena belasan tahun aplikasi ditulis untuk X11. Jembatannya adalah XWayland: layanan yang berjalan di dalam sesi Wayland dan menjalankan aplikasi X11 lama seolah-olah di server X asli, sehingga aplikasi lama tetap terbuka tanpa dikompilasi ulang. Karena itu distro besar seperti Fedora dan Ubuntu kini memakai Wayland sebagai sesi bawaan GNOME-nya, dan KDE Plasma 6 turut berpindah ke arah yang sama, sementara sesi X.Org tetap tersedia sebagai pilihan di layar login untuk kasus khusus.

Cara termudah memastikan sesi kita memakai yang mana adalah membaca variabel lingkungan XDG_SESSION_TYPE dari terminal: nilainya wayland atau x11. Berikut contoh tampilan perintah tersebut pada sesi yang berjalan di atas Wayland:

console
$ echo $XDG_SESSION_TYPE
wayland

Lapisan gambar dan jendela kini sudah kita petakan sampai dasarnya. Berikutnya kita naik kembali ke aplikasi yang paling sering kita buka dari desktop tersebut — terminal dan shell yang bekerja di dalamnya — pada Chapter Terminal dan Shell.