↓ التخطى الى المحتوى الأساسى

نظرة على Wayland و Xorg: ما الفرق بينهما وكيف يعملان؟

 Author
الناشر
خالد
أنشر عن المصادر المفتوحة من برمجيات وتطبيقات
محتوى المقال

واحدة من أكثر المعارك التقنية تداولا في عالم لينكس هي الجدل الدائر بين Wayland وXorg، لذا نحاول من خلال شرح اليوم فهم أساس كل تقنية على حدة لتكون الصورة أوضح لك خصوصا مع اعتماد أغلب التوزيعات الحديثة على Wayland كخيار افتراضي.

البداية كلمحة تاريخية
#

بخصوص Xorg فالموضوع بدأ سنة 1984 في معهد MIT مع ظهور نظام X Window System والنسخة المُستخدمة حاليا (X11) صدرت سنة 1987، تخيل استخدام كود أساسه من الثمانينات سيطر على عالم لينكس لعقود.

أما عن Wayland فقد ظهر في سنة 2008 من طرف مبرمج اسمه Kristian Høgsberg وهذا الأخير بدأ المشروع أثناء عمله في Red Hat ثم واصل تطويره لاحقا في Intel. كان الهدف بناء بنية عرض أبسط تتناسب مع طريقة عمل بطاقات الشاشة والشاشات العالية الدقة الموجودة حاليا.

مصطلحات أساسية لتسهيل الفهم
#

خادم العرض (Display Server)
#

نظام التشغيل (Kernel) نفسه لا يفهم معنى نافذة أو أيقونة أو مؤشر ماوس. هو يتعامل مع العتاد مباشرة أما عن دور خادم العرض فهو يُنظم ظهور نوافذ التطبيقات ويوجه إليها مدخلات المستخدم مثل حركة الماوس وضغطات لوحة المفاتيح ولمس الشاشة.

أما محتويات النافذة مثل الأزرار والقوائم، فترسمها التطبيقات بمساعدة مكتبات الواجهات مثل GTK و Qt. يعني خادم العرض جزء أساسي من الواجهة الرسومية لكنه لا يرسم وحده كل تفاصيلها.

مصطلح X11 و Xorg
#

أما عن X11 فهو البروتوكول أو اللغة التي تتواصل بها التطبيقات مع الخادم X وعندما نقول Xorg فنحن نقصد البرنامج الذي ينفذ هذا البروتوكول.

يعمل X Server كخادم مركزي في بنية X11 ويتلقى طلبات التطبيقات (Clients) ويدير موارد العرض ويوجه لها مدخلات المستخدم.

بروتوكول Wayland ومصطلح Compositor
#

بخصوص Wayland فهو بروتوكول للتواصل بين التطبيقات والـ Compositor وله تطبيقات متعددة. في هذه البنية يعمل الـ Compositor كخادم عرض ومدير نوافذ في الوقت نفسه ويجمع محتويات النوافذ لعرضها على الشاشة ويوجه المدخلات إلى التطبيق المناسب.

من أمثلته Mutter في GNOME. التطبيق يرسم محتوى نافذته ثم يقدمه إلى الـ Compositor، وهذا الأخير ينظم ظهوره إلى جانب بقية النوافذ.

تشغيل تطبيقات X11 باستخدام Xwayland
#

المقصود بـ Xwayland هو طبقة توافقية تعمل كعميل داخل بيئة Wayland وتسمح بتشغيل التطبيقات التي تعتمد على X11 إلى جانب تطبيقات Wayland الأصلية.

دوره تسهيل التوافق لكن هذا لا يضمن عمل كل برنامج أو كل ميزة بالطريقة نفسها، خصوصا الأدوات التي تعتمد على التحكم المباشر بسطح المكتب أو إدارة نوافذ X11.

من منظور المستخدم العادي
#

لنفترض أنك تستخدم توزيعة لينكس بواجهة رسومية. أنت كمستخدم يهمك أن يكون النظام مستقر وسريع وآمن، هنا يمكن تقريب الفرق بتشبيه بسيط.

تشبيه Xorg كقاعة بريد مشتركة
#

تخيل أن الواجهة الرسومية عبارة عن مبنى ضخم بعدد من المكاتب وبه قاعة بريد مركزية يستخدمها الجميع. هذه القاعة هي الـ X Server والموظفون هم البرامج التي ترسل وتستقبل البيانات والأوامر عبره.

في نموذج الثقة التقليدي، الموظف المسموح له بالدخول يحصل على حرية واسعة داخل القاعة، وقد يتمكن من الاطلاع على رسائل موظف آخر. هذا يشبه قدرة برنامج خبيث متصل بنفس خادم X على مراقبة ما تكتبه في برنامج آخر بما فيه معلومات حساسة مثل كلمات المرور.

تشبيه Wayland كصناديق بريد يديرها مسؤول المبنى
#

هنا أصبح لكل مكتب صندوق بريد خاص، ومدير المبنى أي الـ Compositor هو من ينظم توصيل الرسائل. لا يحصل الموظف بمجرد دخوله المبنى على حق الاطلاع على كل الصناديق وعندما تحتاج إلى مشاركة شيء توجد آلية مخصصة لذلك.

هذا التشبيه يخص التعامل مع النوافذ والمدخلات أما صلاحيات البرنامج خارج نظام العرض فتظل مسألة أخرى.

فبغض النظر عن التفاصيل التقنية، يقدم Wayland أساسا أفضل لتقييد الوصول بين التطبيقات عبر واجهة العرض بينما الاستقرار والأداء والتوافق أمور تختلف باختلاف جهازك وبرامجك وبيئة سطح المكتب.

كيف تختلف البنية بين Xorg وWayland؟
#

بنية العميل والخادم في Xorg
#

في Xorg، البنية قائمة على نموذج العميل والخادم (Client–Server) الذي صُمم في الثمانينات. من أهم ميزاته شفافية الشبكة (Network Transparency) ومضمونها أن التطبيق وخادم العرض ليس شرطا أن يكونا على نفس الجهاز.

بمعنى أنك تستطيع تشغيل برنامج يستهلك موارد على خادم قوي بينما تظهر واجهته على جهازك المكتبي عبر الشبكة. هنا التطبيق هو العميل أما خادم العرض فهو الموجود على الجهاز الذي يعرض النافذة ويستقبل مدخلات المستخدم.

الـ Compositor هو خادم العرض في Wayland
#

في Wayland أصبح الـ Compositor نفسه هو خادم العرض. تتواصل التطبيقات معه مباشرة لتقديم محتوى نوافذها وهو يحدد النافذة التي تستقبل المدخلات ويتولى عرض النتيجة على الشاشة. يعني تم دمج أدوار كانت موزعة بين عدة مكونات في بنية X11.

أما شفافية الشبكة بالشكل الموجود في X11 فليست جزءا من بروتوكول Wayland الأساسي لكن تظل مشاركة سطح المكتب وتشغيل التطبيقات عن بُعد ممكنة باستخدام أدوات وبروتوكولات إضافية.

ختاما
#

خدم Xorg واجهات سطح مكتب لينكس لسنوات طويلة وتطور عبر امتدادات ومكونات حافظت على توافقه مع التطبيقات أما Wayland أتى ليقول دعونا نبدأ من جديد وبشكل صحيح.

نتمنى أن تكون الصورة قد وصلت ولو بالشيء القليل.

روابط ذات صلة
#

  1. شرح بنية Wayland الرسمي
  2. الأسئلة الشائعة حول Wayland
  3. توثيق Xwayland ودعم تطبيقات X11
  4. دليل X.Org للتواصل ونموذج الأمان
إذا كان لديك حساب على GitHub ولاحظت معلومة غير دقيقة، يمكنك اقتراح تصحيحها باستخدام زر «تعديل المحتوى» (أيقونة القلم) أسفل عنوان المقال. تُراجع التعديلات المقترحة قبل نشرها.

شارك المقال على منصات التواصل

قد يهمك أيضا