X11 ile uzaktan uygulama çalıştırmak

ArticleCategory: [Choose a category, do not translate this]

UNIX Basics

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to tr Erdal MUTLU

AboutTheAuthor:[A small biography about the author]

Guido, Lınux'u sadece işletim sistemlerinin nasıl çalıştığını öğrenmenin ilginç olduğu için değil, aynı zamanda onu tasarlayan kişiler yüzünden sevmektedir.

Abstract:[Here you write a little summary]

Birçok yeni Linux kullanıcısı, Linux altındaki masaüstü ortamının, başka bir "Windows" sistemi olduğunu ve sadece uygulamaları çalıştşrmaya ve ayrı pencerelerde görüntülemeye yaradığını düşünmektedir. Bazıları da, birden fazla masaüstünün kullanabileceklerini fark etmişlerdir, ama hepsi bu kadarmış gibi gözükmektedir. Linux altındaki X Pencere Sistemi (X11) bundan çok daha fazla özelliklere sahiptir! Bu bir ağ pencere sistemidir. Bunun ne kadar yeni ve güçlü özellikler sunduğunu, hep beraber göreceğiz.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Display (Ekran) kavram?

X Pencere sistemindeki her grafik uygulaması, çalıştırıldığı zaman ilk önce, grafik çıktısını göndereceği DISPLAY adlı çevre değişkeninin içeriğini denetlemektedir. Bu ve X Pencere Sisteminin ağ özellikleri ile birlikte grafik ortamdaki uygulamaları uzaktan çalıştırma özelliğini oluşturmaktadır. Böylece, uygulamanın çalıştığı bilgisayardaki Merkezi işlem Biriminin (MİB=CPU) gücünden faydalanarak, uygulamayı başka bir bilgisayardan yönetme imkanını elde etmiş oluruz. Tüm KGA (Kullanıcı Grafik Arabirimi = GUI) sizin bulunduğunuz ve uygulamayı yönettiğiniz bilgisayarda gözükmektedir. İki bilgisayarı aynı anda kullandığınızı fark etmiyorsunuz bile.
Ağ hızınız burada sorun olabilir, ancak 10Mit/sn hızına sahip bir yerel ağ, gereğinden fazlasını sunmaktadır.


[run in an application remote]

Bunu neden yapmak isteyebilirsiniz?
Birçok "Ağ grafik" uygulamalası vardır. Çeşitli şirketler, bu tür uygulamaları, binlerce kilimetre uzakta bulunan donanımları kullanmak ve denetlemek için kullanmaktadır. Bunu yaparken de, sanki oradaki bilgisayarın başında oturuyormuşsunuz gibi bir izlenim oluşmaktadır.

Birisi 1GHz, diğeri Pentium 133MHz olan iki bilgisayara sahip iseniz, hızlı olan bilgisayarın hızından yararlanabilirsiniz. Belkide o anda kerdeşiniz, hızlı olan bilgisayarı kullanmaktadır. Hiç sorun değil, çünkü sizde ondan yararlanabilirsiniz.
[display] Bu nasıl çalışmaktadır?
Tüm X Pencere sisteminde çalışan uygulamalar, gimp, xterm, konquerer, netscape, ... gibi, gerçekte X-sunucusuna bağlantı yapan birer ağ istemci uygulamalarıdır. X-sunucusunun işlevi, grafik donımla haberleşmek, resimleri ekranınıza çizmek, fareden ve tuşlardan gelen girişleri okumaktır. İstemciler (gimp, netscape ... gibi uygulamalar), sunucuya çerçeveleri ve tuşları nasıl boyaması gerektiğne dair komutlar göndermektedir. Karşılığında, sunucudan fare ve tuşlardan gelen olayları almaktadır. Doğal olarak, bir kimliklendirmeye gereksinim vardır, yoksa herkesin ekranı karışabilirdi. Erişimi denetleyen iki program vardır:
- xhost: bu programı kullanarak, başka bir bilgisayardan sizin ekranınıza grafik çıktılarını yazma hakkı verebilirsiniz. Örnek : philosophus adlı bilgisayarın başında oturduğunuzu varsayalım. movietux adlı bilgisayarda çalışan herhangibir programa, sizin bilgisayar ekranıza grafik görüntülerini görüntüleme hakkı vermek için, aşağıdaki komutu kullananabilirsiniz:

xhost +movietux
Bu komut philosophus'daki bir kabuk ortamından çalıştırılması gerekmektedir.


- xauth: Bu cookie (çerez) tabanlı bir kimlik denetimi yöntemidir ve çok daha karışıktır. Burada kişi bazında erişim hakkı verebilirsiniz. xhost'tan çok daha güvenlidir. Kimlik denetimi, kullanıcıların .Xauthority dosyalarına cookie (çerez) yerleştirerek yapılmaktadır. Eğer, uzaktan erişim yapan bilgisayar, bu dosyada uygun bir cookie (çerez) sahip ise, erişime izin verilmektedir. Oturduğunuz, yani erişimin yapılacağı bilgisayaradaki (philosophus) cookie (çerez), uzaktan erişim yapmak istediğiniz bilgisayara (movietux) kopyalamak için aşağıdaki yöntemleri kullanabilirsiniz:

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


Program (istemci) başlangıcında olan olaylar şöyledir:
  1. Hangi sunucuya bağlanacağını istemci DISPLAY çevre değişkenini denetleyerek öğrenmektedir. Eğer, bu değişken tanımlı değil ise, bulunduğu bilgisayardaki sunucuya bağlanmaya çalışır.
  2. Sunucu ise, istemcinin göndermekte olduğu resimleri göndermeye hakkı olup olmadığını denetleyerek, eğer izni varsa, gönderilen resimleri ekrana çizmektedir.
DISPLAY çevre değişkeninin yapısı aşağıdaki gibidir:

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

Ben burada displaynumber ve screennumber hakkında konuşmayacağım. Genelde bunların değerleri 0:0 dır. Sözgelimi bash için :

export DISPLAY=philosophus:0.0

Uzaktaki herhangibir uygulamayı başlatmak

Tüm bu teorik bilgiden sonra pratik bir örnek verelim. Denemeniz yeter. Biz yine philosophus adlı bilgisayarın başında oturmaktayız ve movietux adlı bilgisayarda bir programı uzaktan çalıştırmak istiyoruz.
  1. X sunucunuza, movietux bilgisayarındaki programların sizin ekranınıza resim çizebilmeleri için, izin vermesini söyleyin:
    xhost +movietux
  2. movietux bilgisayarına giriş yapın.:
    slogin -l username movietux
  3. Şimdi movietux adlı bilgisayara giriş yapmış oldunuz ve dolayısıyla çalıştıracağınız her program movietux'da çalışıyor olacaktır.
  4. export DISPLAY=philosophus:0.0
  5. Herhangibir program çalıştırın. Sözgelimi:
    netscape &
Eğer, movietux sizin bilgisayardan daha güçlü ise, netscpae html sayfalarını, sizin bilgisayardaki netscape'ten çok daha hızlı olarak görüntülediğini (düzenlediğini) fark edeceksiniz. Aynı zamanda, netscape programının yerel makinanızda çalıştırılmamış olduğunu fark edemeyeceksiniz, çünkü çalışma şeklinde (fare ve klavye) hiçbir fark olmayacaktır.
Nasıl, harika değil mi?

Ekranı (display) yanınızda götürmek

Uzaktaki bir bilgisayar üzerinde program çalıştırmak için izlediğiniz adımlar oldukça basit olmasına karşın, yine de DISPLAY değişkenini ayarlamak için birşeyler yazmanız gerekmektedir. Bu işlemi otomatikleştirmek mümkündür: