[LinuxFocus-icon]
الأولى  |  الخارطة  |  فهرس  |  بحث

أخبار | محفوظات | روابط | عن المجلة
This document is available in: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Arabic  

[Photo of the Author]
المؤلف Guido Socher (homepage)

نبذة عن الكاتب:

غيدو يهوى لينكس ليس لأنه يهتم بفهم كيفية عمل أنظمة التشغيل فحسب، بل للناس المهتمين بتصميمه أيضا..



ترجمه إلى العربية:
Taha Zerrouki <taha(at)linuxfocus.org>

الفهرس:

 

إجراء تطبيقات عن بعد بنوافذ X11

[Illustration]

نبذة مختصرة:

المستجدون في لينكس يعتقدون أن واجهة X الرسومية ليست سوى نوافذ مثل الوندوز تعمل فيها التطبيقات . بعضهم تفطنوا أن لديهم مكاتب عديدة أو هذا ما يبدو . واجهة لينكس (X11) أكثر من ذلك، إنها نظام و نوافذ و شبكة. و سنرى معا من فوائدها الجمة.



 

فكرة العرض

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

ما الفائدة من ذلك؟ التطبيقات الرسومية الشبكية كثيرة. تعمل بها الشركات على أجهزة قد تتباعد آلاف الأميال، و أنت كذلك و كأنك في ذات الموقع.

ربما لديك حاسوبان أحدهما معالجه سريع، سرعته 1 جيغا هرتز، و آخر بنتيوم قديم لا تتجاوز سرعته 133 ميغا هرتز، ربما تريد أن تستفيد من سرعة السريع دون أن تجلس بين يديه، أو ربما شقيقتك الصغرى تجلس مكانك أمامه، لكن هذا لا يمنعك من الاستفادة منه.

اعلم أن معظم التطبيقات - gimp،xterm ، konquerer، netscape، ...- زبائن شبكية لدى خادم X. خادم X يرسم و يلون و يأمر الأجهزة بما يلزم، و يستقبل منها حركة الفأرة و كتابة لوحة المفاتيح.

فالتطبيق الزبون- netscape مثلا - يتعامل مع الخادم فيطلب منه أن يرسم له أو يكتب، و يحصل منه على ما نحود به الفأرة و لوحة المفاتيح.

تذكر، لابد لك من إذْن، و إلا لاستطاع أي كان أن يستغل حاسوب أي كان. البرنامجان xhost و xauth يعنيان بذلك، إذ يحددان الصلاحيات، فيأذنان و يمنعان.

- xhost ، به تسمح لأي شخص - من حاسوب معين - أن يرسم على شاشتك. مثلا : هب أنك أمام جهاز يسمى فيلوسوفوس، و ترغب أن تسمح لأي برنامج من جهاز آخر يدعى موفيتُكس أن يعرض ما يريد على شاشة فيلوسوفوس. عليك إذن بالأمر - اكتبه في سطر الأوامر في فيلوسوفوس- :

xhost +movietux

- xauth : كعكة للإذن ، أكثر تطور، إذ بها تأذن لأفراد بعينهم، فهي بذلك آكثر أمنا من xhost.

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

و حتى ترسل الكعكة (تنسخها) من الحاسوب الذي بين يديك (فيلوسوفوس) إلى الحاسوب التي تريد أن تاذن له ( لتجري فيه البرنامج، موفيتكس)، جرب احدى الطريقيتن:

 

xauth extract - philosophus:0.0 | ssh movietux /usr/X11R6/bin/xauth merge
أو
scp ~/.Xauthority movietux:


عند انطلاق البرنامج ( الزبون ) يجري ما يأتي :

  1. يتفحص الزبون نتغير البيئة للعرض DISPLAY ليتعرف على الخادم الذي سيتعامل معه.

  2. يتأكد الخادم إن كان للزبون الإذن بالعرض على شاشة الخادم، فإن نعم، يرسم له ما يريد، وإلا فلا.

صيغة متغير البيئة للعرض DISPLAY هي :

bash:export DISPLAY=hostname:displaynumber.screennumber
tcsh:setenv DISPLAY hostname:displaynumber.screennumber

لن أتحدث عن displaynumber و لا عن screennumber، فهما عادة 0:0 .

مثلا هي في bash :

export DISPLAY=philosophus:0.0

 

إجراء تطبيق عن بعد :

بعد كل ما رأيناه نظريا، جرب حظك عمليا بهذا المثال، كل ما نريده أن نجلس أمام فيلوسوفوس و أجر تطبيقا عن بعد على موفيتكس.

  1. أخبر خادم X أنك تأذن لموفيتكس أن تعرض على شاشتك.:
    xhost +movietux

  2. أدخل عن بعد إلى المضيف موفيتكس :
    slogin -l username movietux

  3. لقد دخلت إلى موفيتكس، و كل ما ستأمر سينفذ على موفيتكس:
    export DISPLAY=philosophus:0.0

  4. أجر برنامجا و ليكن :
    netscape &

إن كانت موفيتكس أسرع، فستلاحظ أن برنامجك يسرع عما عليه إن عمل على فيلوسوفوس - الحاسوب الذي بين يديك-. بيد انك لن تعرف إن كان البرنامج يعمل هنا أو هناك، ما دمت تعمل بالفأرة و لوحة المفاتيح دون أدنى فرق، ما أروع ذلك؟

 

خذ العرض معك.

إجراء التطبيق بعيدا سهل، مع ذلك أود لو جعلت الأوامر اللازمة لتعديل متغير البيئة للعرض DISPLAY عملا آليا:

# take your display with you at remote login:
# Put it into your ~/.login file
set whoami=`who -ml`
set remhost=`expr "$whoami" : '.*(\(.*\))'`
if ( "$remhost" != "" ) then
setenv DISPLAY "$remhost":0.0
endif

المخطوطة تحصل على اسم الحاسوب البعيد بالأمر"who -ml" ، فتحصل على مثل هذا :

 

تعقيبك على هذا المقال

لكل مقال صفحة خاصة بالتعقيبات، أرسل تعقيبا أو اطلع على تعقيبات الآخرين.
 صفحة التعقيبات 

الصفحات برعاية طاقم لينكس فوكُس
© Guido Socher, FDL
LinuxFocus.org

اضغط هنا للتنبيه عن خطأ أو لارسال ملاحظاتك إلى لينكس فوكُس
معلومات عن الترجمة:
en --> -- : Guido Socher (homepage)
en --> ar: Taha Zerrouki <taha(at)linuxfocus.org>

2002-01-31, generated by lfparser version 2.22