Anasayfa Makale UNIX Sistemlerde Grafik Arabirim: X Pencere Sistemi

UNIX Sistemlerde Grafik Arabirim: X Pencere Sistemi

UNIX sistemlerde grafik arabirim: X pencere yöneticisi

UNIX grafik arabirimin evrimine ve grafik nasıl çalıştığına detaylı bir şekilde bakıyoruz.

UNIX sistemler, 70’li yılların oda boyutundaki bilgisayarlarında kullanılmaktaydı. O zamanlar daha kişisel bilgisayar kavramı bile ortada yokken, UNIX sistemler piyasaya hakimdi. Peki, nasıl oldu da ev kullanıcısı seviyesine geldi? Nasıl oldu da bugün cep telefonlarımıza, hatta otomobillerimize UNIX temelli işletim sistemleri hakim oldu?

Grafik arabirime geçiş çağı

1960’larda, bilgisayar kullanımını kolaylaştırmak için başlayan hareket sonucunda ortaya çıkan fare, şüphesiz ki grafik arabirim (GUI) sistemlerinin gelişimi için bir mihenk taşı olmuştur. Fare sayesinde insanlar, daha çok bilgisayar alanında uzman olan kişilerin kullandığı betik dillerini öğrenmek yerine, el-göz koordinasyonları ile bilgisayar kullanacaktı.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
Douglas Engelbart’ın tasarladığı ilk fare!

Daha sonra Xerox Palo Alto Araştırma Merkezi (PARC) çalışanları, bu fikirlerden etkilenerek kendi bilgisayarları olan Xerox Alto’yu geliştirdiler. Bu bilgisayarın diğerlerinden bir farkı vardı; ilk masaüstü ve grafik arabirim sistemini içerisinde barındırıyordu.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
Xerox Alto; ilk grafik arabirimin kullanıldığı bilgisayar.

İlk grafik arabirimin kullanıldığı bilgisayar, Xerox’un piyasaya sürdüğü Alto modeliydi. Fakat Alto; ev kullanıcısı için değil, üniversite araştırmaları için tasarlanmıştı.

Daha sonra Steve Jobs adındaki genç bir adam, Xerox’un tesislerini ve bu araştırmalarını detaylı bir şekilde gözlemlemek adına borsada işlem yaparak Xerox’a 1 milyon dolar para kazandırdı. Xerox çalışanları, Jobs’a Alto projesini de gösterdi. Daha sonra, Jobs’un kafasında bir ampul yandı, grafik arabirimi herkesin kullanımına açacaktı!

Eski PARC çalışanlarının da içinde bulunduğu Apple mühendis ekibi, Lisa sistemini geliştirmişti. Lisa, ev kullanıcılarını ilk defa grafik arabirim ile tanıştırıyordu. Fakat bir sıkıntı vardı: Lisa’nın fiyatı çok pahalıydı. Steve Jobs, grafiksel kullanıcı arayüzünün (GUI) kendisine başarı getireceğine inanıyordu ve 1984 yılında Macintosh’u piyasaya sürdü. Macintosh, Lisa’ya göre daha ucuz bir sistemdi ve Apple’ın büyük bir başarısıydı. Böylece Steve Jobs, grafik arabirim sistemini ev kullanıcılarına indirmeyi başarmıştı!

X Pencere Sistemi ve UNIX’in grafik arabirime geçişi

X Pencere Sistemi, daha öncesinde MIT tarafından “Project Athena” adı altında geliştirilen bir projeydi. Daha sonra bu proje X.Org vakfına geçti ve 1987 yılından beri 11. sürümde olduğu için bu protokole çoğu yerde kısaca “X11” dendiğini de görebilirsiniz. X protokolünün geliştirilme amacı ise; her grafik arabirimli uygulamanın kendi içinde bir grafik arabirim sistemine sahip olma zorunluluğunun kaldırılmasıydı. Böylece, geliştiricilerin üzerinden çok büyük bir yük kalkmış olacak ve kullanıcı tarafında ise büyük performans iyileştirilmeleri olacaktı. Ayrıca istemeyen kullanıcıların da GUI kullanmak gibi bir zorunluluğu kalmayacaktı.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
X Pencere Sistemi’nin (X11) çalışma diyagramı.

X Pencere Sistemi yukarıdaki diyagramda da görüldüğü üzere ağ tabanlı çalışan açık kaynaklı bir protokoldür. Bu protokoldeki ana bileşen olan X Pencere Sunucusu; bağlı olan istemcilerin çıktı cihazlarında hizalanması, klavye ve fare gibi cihazlardan girdi alınması ve bu girdilerin işlenerek çıktı cihazlarına yazılması gibi şeylerden sorumludur. En ünlü X Pencere Sunucusu implementasyonu, X.Org Vakfı’nın topluluk tarafından geliştirilen X sunucusudur. Tabii ki XFree86 gibi farklı farklı X Pencere Sunucuları da mevcut.

İstemci uygulamalar, UNIX sisteminizde kullandığınız ve grafik arabirime sahip tüm uygulamalardır. Örneğin internet tarayıcınız, medya oynatıcınız, metin düzenleyiciniz gibi. Direkt olarak X pencere sisteminin API’si olan XLib kütüphanesi kullanılmasa da, çoğu grafik arabirime sahip uygulama, bir framework vasıtasıyla X Pencere Sunucusu ile haberleşmektedir.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
X.Org’un seçtiği varsayılan pencere yöneticisi: “twm”

X Pencere Sunucusu ile birlikte “twm” adı verilen bir pencere yöneticisi de gelmektedir. Bu pencere yöneticisi eğer olmaz ise, açılan pencerelerin yerlerini değiştirmek gibi basit işlemleri bile yapamayız. Tabii ki “twm” yerine başka alternatif pencere yöneticileri de kullanılabilir, örneğin “i3 Pencere Yöneticisi” veya “Marco” gibi.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
“Marco” pencere yöneticisi ve istemci uygulamalar.

Ayrıca X Pencere Sunucusu ile birlikte varsayılan olarak XDM görüntü yöneticisi (display manager) gelmektedir. Bir görüntü yöneticisinin görevi, UNIX sistemlerde terminal ile yapılan girişi grafik arabirim ile yapmaktır.

UNIX sistemlerde grafik arabirim: X Pencere Sistemi
XDM Görüntü Yöneticisi.

Görmüş olduğunuz üzere X protokolü, aşırı modüler bir protokoldür. Daha sayamadığımız modüller de bulunduğunu belirtelim.

Eski bilgisayarlarda X protokolünün çalışması

X protokolünün çıkış yaptığı 80’lerde RAM bellekler hem pahalı, hem de küçük boyutluydu. Bill Gates’in o zamanlar “640 KB’ın herkese yeteceğinden” bahsetmesi ile anlaşılabileceği üzere, X protokolünün zamane bilgisayarlarında çalışması çok zor olacaktı. Her piksele 1 byte dersek ve ekranımızı 800×600 çözünürlükte kabul edecek olursak, bir pencerenin tam ekran yapılması neredeyse yarım MB bellek alanını işgal edecekti. O zamanlar ağır bir iş yaptığınızı ve 10 tane pencere açmak istediğinizi düşünün. Kıymetli bellek alanınızın 5 MB’lık bölümünü pencerelere ayırmak pek iyi bir seçenek gibi gözükmüyor.

İşte X.Org Vakfı’ndaki mühendisler kara kara düşünürken, arka planda olan pencerenin piksellerini RAM’den uzaklaştırarak yer açabileceklerini farkediyorlar ve bunun için de yeni bir “olay” ekliyorlar. Yani arkaplanda duran pencere tekrar aktif olduğu zaman, X Pencere Sunucusu’na tekrar aktif olduğuna dair bir olay yollayarak haber veriyor ve böyle bir durumda piksellerini yeniden çizdiriyor.

Bunu görsel bir biçimde sizlere anlatmak isterdik, fakat modern bilgisayarlar bu işlemleri çok hızlı yapabildiği için biz farketmeden bu sistem arkaplanda çalışıyor. Ayrıca bu sistemin aynısının Microsoft Windows’ta da kullanıldığını dipnot olarak belirtelim.

Bu yazımızda sizlere grafik arabirim sistemlerinin evrimini, UNIX’in bundan nasıl etkilendiğini ve X Pencere Sistemi’nin nasıl çalıştığını anlattık. Sorularınızı Technopat Sosyal’de sorabilir, eklemek istediğiniz kısımları ise yorumlar kısmında belirtebilirsiniz.