X11 / X - برنامج سطح مكتب Linux، لا أفهم كيف يتناسب هذا معًا

StackOverflow https://stackoverflow.com/questions/636316

  •  10-07-2019
  •  | 
  •  

سؤال

لقد بدأت مؤخرًا في استخدام Linux (حيث أعمل في متجر Microsoft، لذلك أقوم فقط بالبرمجة بلغة C#، وأعمل مع منتجات MS وما إلى ذلك).

أحاول أن أفهم على مستوى عالٍ كيف تترابط بعض الأشياء الأساسية في Linux معًا.كنت أطالع www.linfo.org

على أية حال، لم أفهم مطلقًا ما هو X.

من القراءة هذا المقال يبدو لي أن X عبارة عن طبقة موجودة أعلى نظام التشغيل (خادم X واحد موجود أعلى نظام التشغيل؟؟) وأن تطبيقات عميل X تقدم طلبات إلى خادم X.أعتقد أن KDE وXfce وGnome هم مديرو العرض، فهل هم عملاء خادم X إذن؟

أنا في حيرة من أمري حيث يجلس كل شيء.

أي تفسير سيكون موضع تقدير حقا!

هل كانت مفيدة؟

المحلول

كل شيء معياري ومرن للغاية؛لكن هذا يؤدي إلى التعقيد.

يقوم "X Server" بتشغيل جهاز العرض.فهو يوفر خدمات رسومية للعملاء، وهذه الخدمات بسيطة جدًا - مثل:

"Give me a window frame to draw in"

"Put this bitmap here"

"Draw a horizontal black line 100px wide"

"Render the text 'hello' at (100,100)"

"Tell me if any mouse clicks or key presses have been aimed at my window frame"

توجد مكتبة تسمى Xlib مقدمة من X، ولها واجهة قياسية لجميع هذه الخدمات البسيطة.أي برنامج يريد استخدام شاشة خادم X يستخدم في النهاية مكتبة العميل هذه ويسمى X Client.يعرف Xlib كيفية الاتصال بخادم X عشوائيًا - على الجهاز المحلي، أو عبر TCP/IP عبر الشبكة المحلية، أو عبر العالم - للاتصال بهذه الخدمات.

يعد Window Manager، وهو مجرد برنامج عميل X آخر، مسؤولاً عن "الشكل والمظهر" لسطح المكتب - كيفية تحريك النوافذ وترتيبها، وما إلى ذلك.نظرًا لأن مدير النوافذ يرسم جميع زخارف النوافذ، فيمكنه جعل سطح المكتب يبدو مثل WindowsXP أو Mac أو NeXTSTEP.

كان جزء من فلسفة X هو تعريف "الآلية وليس السياسة" - بمعنى أنهم يعطونك أدوات للقيام بذلك، لكنهم لا يخبرونك بكيفية استخدام هذه الأدوات.إحدى هذه الأدوات هي مدير النوافذ، والذي يمكن استبداله حسب الرغبة.

تتم كتابة العديد من تطبيقات X الحديثة لاستخدام بيئة سطح المكتب مثل Gnome أو KDE.يوفر هذا لهذه البرامج مجموعة متسقة من الأزرار وعناصر التحكم للرسم، وواجهة متسقة لبعض الأشياء التي لم يتم تضمينها تقليديًا في X، ولكنها غالبًا ما تعتبر جزءًا من سطح المكتب - مثل كيفية الاستجابة للسحب والإفلات أو كيفية العرض مربع حوار منتقي الملفات القياسي.

توفر بيئة سطح المكتب عادةً نموذج كائن أو واجهة برمجية تهتم بتنفيذ جميع طلبات عميل X البسيطة وتتيح للبرنامج التعامل مع أشياء أكثر أهمية.تؤدي إزالة هذه المكالمات ذات المستوى المنخفض إلى تحقيق فائدة مهمة أخرى - وهي استقلال النظام الأساسي.

تشتمل العديد من بيئات سطح المكتب على مدير نوافذ، بحيث يكون شكل ومظهر عناصر التحكم والأزرار في النافذة متسقًا ويعمل مع استعارة سطح المكتب التي توفرها البيئة.ومع ذلك، لا يزال من الممكن عادةً إيقاف تشغيله.

إن الفصل بين خادم X (تشغيل الشاشة) وعميل X (الرغبة في استخدام الشاشة) له بعض الآثار:

  • نظام الرسومات منفصل عن برامج واجهة المستخدم الرسومية، ويتم فصلهما تمامًا مثل متصفح الويب وخادم الويب.

  • لذلك قد لا يتم عرض برنامج واجهة المستخدم الرسومية على الجهاز المحلي - تمامًا مثلما لا يحتاج متصفح الويب إلى الإشارة إلى خادم الويب على الجهاز المحلي.

  • يمكن للجهاز تشغيل العميل فقط، مع خادم X في مكان آخر.

  • ليس من الضروري أن يقوم الجهاز المزود بشاشة العرض بتشغيل العميل - يمكنه تشغيل خادم X فقط، ويمكن لجميع العملاء التشغيل على جهاز مخصص.هذا هو العميل الرقيق الأصلي:برامج كبيرة تعمل على خادم مركزي كبير - مع تفاعل المستخدم الرسومي الذي يتم التعامل معه بواسطة أجهزة مخصصة على المكتب أمام المستخدم.

  • أنت بحاجة إلى معرفة عنوان شبكة خادم X الخاص بك حتى تتمكن من إخبار برامج واجهة المستخدم الرسومية بمكان عرض واجهة المستخدم الرسومية الخاصة بها.(يتم ذلك عادةً عن طريق تعيين متغير بيئة العرض)

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

نصائح أخرى

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

وغنوم، كيدي، XFCE، وLXDE وبيئات سطح المكتب. أنها تحتوي على القطع التي التحدث / مع خادم X (ميتاسيتي، KWIN، وما إلى ذلك)، ولكن أيضا تتكون من المواصفات التي يجب أن تتبع التطبيقات والمكتبات التي تتوفر من أجل تطبيق ل"الانتماء" إلى DE.

وبالإضافة إلى ذلك، فإنه من الجدير بالذكر أن خادم X هو مجرد برنامج آخر أن يحصل تعمل تحت لينكس. لا يوجد شيء خاص حيال ذلك، فإنه يحدث فقط لمعرفة كيفية الاستيلاء على بطاقة الرسومات والاستيلاء على الشاشة باستخدام برامج تشغيل الفيديو. يمكنك (نظريا) تشغيل لينكس جدا لحسن الحظ دون تشغيل أي وقت مضى خادم X - على الرغم من وبطبيعة الحال، سوف يكون مقصورا على البرامج سطر الأوامر

وهذه هي الطريقة لينكس ينظم نفسه - نواة في القاعدة، ثم مجموعة من البرامج التي توفر وظائف لبرامج عالية المستوى، والتي أنفسهم توفير وظائف لبرامج عالية المستوى، كل بناء في كومة كاملة من البرامج الموجهة إلى أي وظيفة الجهاز هو (مثلا، سطح المكتب العام، وتطوير البرمجيات، خادم الويب، الخ).

وبعيدا عن النواة وانها وحدات، وليس هناك ما هو 'الخاصة'.

ويكيبيديا لديه بعض المعلومات حول هذا الموضوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top