Codoloper

Wayland در برابر X11: چرا همه دارن مهاجرت می‌کنن و آیا واقعاً ارزشش رو داره؟

Wayland در برابر X11: چرا همه دارن مهاجرت می‌کنن و آیا واقعاً ارزشش رو داره؟ | عکس

یه حقیقت ساده از همون اول: اگه شش ماه پیش لینوکس نصب کردی روی یه ماشین معمولی، احتمالاً الان روی Wayland هستی — حتی اگه ندونی. Fedora 40+، Ubuntu 24.04+، Arch، GNOME 49، و KDE Plasma 6 همه به‌صورت پیش‌فرض به Wayland رفتن. این دیگه یه بحث «آینده‌ی Linux» نیست. این وضعیت الان هست.

سوال واقعی اینه که چرا این اتفاق افتاد، چه چیزی هنوز نشکسته، و چه کسی نباید عجله کنه.

X11 چه مشکلی داشت

X11 در ۱۹۸۴ طراحی شد — و معماریش دقیقاً همون‌قدر که از اون زمان انتظار داری، قدیمیه.

مدل کار اینه که یه X server مرکزی وجود داره. هر برنامه برای رندر کردن چیزی به صفحه، یه درخواست می‌فرسته به X server، X server اون رو به compositor می‌ده، compositor نهایی می‌کنه. مشکل اینه که این X server مرکزی همه چیز رو می‌بینه: هر کیبورد فشرده‌شده، هر حرکت ماوس، هر پنجره‌ای که بازه. هر اپلیکیشن هم می‌تونه از X server بخواد ورودی اپ‌های دیگه رو بخونه. یعنی keylogger نوشتن روی X11 یه کار ده خطیه.

اوایل ۲۰۲۵ سه آسیب‌پذیری بحرانی (CVE-2025-62229، CVE-2025-62230، CVE-2025-62231) توی X.Org پیدا شد — باگ‌هایی که بعضی‌هاشون از بیست سال پیش توی کد بودن. اینا isolated incident نبودن؛ نشونه‌ی یه codebase چهل‌ساله‌ان که maintenance-only شده. هیچ توسعه‌ی فعالی روی X.Org اتفاق نمی‌افته — فقط security patch.

مشکل معماری دیگه‌ای هم وجود داره: رندرینگ کند. هر frame باید از برنامه به X server و بعد به compositor بره — این double-buffering بی‌دلیل توی hardware مدرن کاملاً غیرضروریه و توی بعضی حالت‌ها باعث tearing می‌شه.

Wayland چطور متفاوته

Wayland یه «سرور» مرکزی نداره. هر اپلیکیشن مستقیم به یه off-screen buffer رندر می‌کنه، و compositor مستقیم با driver کار می‌کنه تا frame نهایی رو به مانیتور بفرسته. واسطه نیست.

نتیجه‌های عملی این معماری:

امنیت: هر اپلیکیشن فقط ورودی‌های خودش رو می‌بینه. keylogger نوشتن روی Wayland از طریق protocol عملاً غیرممکنه. البته XWayland — که X11 appها رو روی Wayland اجرا می‌کنه — همچنان این ایزوله‌سازی رو نداره، ولی native Wayland appها ندارن.

رندر تمیزتر: چون compositor مستقیم با GPU کار می‌کنه، screen tearing توی حالت‌های معمولی اتفاق نمی‌افته. توی سیستم‌های با refresh rate بالا یا HiDPI این فرق محسوسه.

نه یه display server، بلکه یه protocol: این نکته مهمه. Wayland خودش یه نرم‌افزار نیست — یه spec هست. GNOME با Mutter، KDE با KWin، Hyprland، Sway — هر کدوم پیاده‌سازی جدا دارن. این یعنی تجربه‌ی Wayland از یه compositor به compositor دیگه می‌تونه فرق کنه.

وضعیت واقعی ۲۰۲۶

اگه از GNOME یا KDE Plasma استفاده می‌کنی، Wayland الان default هست و برای اکثر کارها بدون دردسر کار می‌کنه. طبق یه survey از ۳۹۲۳ کاربر Arch در ژانویه ۲۰۲۵، ۸۰ درصد روی Wayland بودن. GNOME از نسخه‌ی ۴۹ (۲۰۲۵) X11 session رو کاملاً حذف کرده. KDE Plasma 6.8 که اواخر ۲۰۲۶ یا ۲۰۲۷ میاد هم همین کار رو خواهد کرد.

NVIDIA که قبلاً مشکل‌سازترین قسمت بود، با driver series 495+ وضعش خیلی بهتر شده. اکثر کاربران NVIDIA الان می‌تونن Wayland رو بدون دردسر زیادی اجرا کنن — ولی اگه GPU قدیمیه (GTX 1000 series و قدیمی‌تر)، ممکنه همچنان مشکل داشته باشی.

چه کسی نباید عجله کنه

Wayland برای همه مناسب نیست — حداقل نه الان:

اگه از SSH X forwarding (ssh -X یا ssh -Y) برای باز کردن GUI برنامه‌های remote استفاده می‌کنی، Wayland این رو natively پشتیبانی نمی‌کنه. باید از راه‌حل‌های دیگه مثل RDP یا VNC استفاده کنی.

اگه از ابزارهای automation روی desktop استفاده می‌کنی — xdotool، wmctrl، AutoKey — اینا روی Wayland کار نمی‌کنن چون Wayland به appها اجازه نمی‌ده ورودی سیستمیک simulate کنن.

اگه از window manager های سبک مثل i3، openbox، یا fluxbox استفاده می‌کنی، نسخه‌های Wayland بعضی‌هاشون بالغ نیستن. Sway جایگزین i3 روی Wayland هست، ولی feature parity کامل نداره.

اگه از VNC برای remote desktop استفاده می‌کنی، X11 network transparency همچنان این use case رو راحت‌تر می‌کنه.

setup چقدر سخته

برای کاربر معمولی با GNOME یا KDE، عملاً هیچ setup ای لازم نیست — چون اگه لینوکس مدرن نصب کردی، احتمالاً از قبل روی Wayland هستی. چک کردنش ساده‌ست:

echo $XDG_SESSION_TYPE   # باید "wayland" برگردونه

اگه X11 هست و می‌خوای Wayland امتحان کنی، توی login screen (GDM یا SDDM) می‌تونی session نوع رو عوض کنی — بدون نیاز به نصب چیزی. بعد از login کافیه echo $XDG_SESSION_TYPE بزنی و ببینی.

اگه بخوای برگردی، همون راه رو از login screen برعکس کن.

X11 appها چی می‌شن

اکثر X11 appها روی Wayland از طریق XWayland کار می‌کنن — یه X server که به‌عنوان یه Wayland client اجرا می‌شه. در عمل، بیشتر برنامه‌ها بدون تغییر کار می‌کنن. محدودیت‌ها از همون security model میان: appهایی که global pointer position یا synthetic input نیاز دارن زیر XWayland هم مشکل دارن.

جمع‌بندی واقع‌بینانه

Wayland برای اکثر کاربران لینوکس دسکتاپ الان انتخاب بهتریه — نه چون X11 خراب شده، بلکه چون Wayland معماری تمیزتر، امنیت ساختاری بهتر، و پشتیبانی از display مدرن (HiDPI، variable refresh rate) رو از اساس حل می‌کنه.

ولی اگه workflow ات به X forwarding، GUI automation، یا window manager هایی که Wayland equivalent ندارن وابسته‌ست، X11 هنوز گزینه‌ی درست‌تره. و این انتخاب هیچ ایرادی نداره — هر دو همزمان در دسترسند و X11 حداقل تا ۲۰۲۸ patch خواهد خورد.

اطلاعات نویسنده
عرفان دهقانی
نوشته ها در
تبلیغات
کامنت جدید

برای ثبت کامنت وارد شوید

برای اینکه بتوانید زیر این پست کامنت بگذارید، باید وارد حساب کاربری خود شوید.

برای ادامه، وارد حساب خود شوید

بعد از ورود، دوباره به همین پست برمی‌گردید و می‌توانید کامنتتان را ثبت کنید.

ورود به حساب
کامنت‌ها

نظرات کاربران

دیدگاه‌هایی که برای این نوشته ثبت شده‌اند.

هنوز کامنتی برای این پست ثبت نشده است.