ÇOMAR
(Configuration Manager)
Nedir?, Yenir mi?

Dürtücü Teknolojiler Ar&Ge Labs.

Özet: Bu belge, ÇOMAR'ın ne olduğunu ve ÇOMAR gibi bir altyapıya neden ihtiyaç duyulduğunu mimari ve yöntem ile iglili teknik ayrıntılara girmeksizin, basit bir dille anlatmayı hedeflemiştir. Çok genel bir giriş teşkil etmesi amacıyla en basit anlamda ÇOMAR, bir yapılandırma altyapısı olarak tanımlanabilir.

İçindekiler

1  Giriş

Herhangi bir bilgisayar kullanıcısının bilgisayardan beklentisi belirli ve bir tanedir ``bilgisayar ile iş yapmak, bilgisayara bir iş yaptırmak''. Bu bahsi geçen iş,
  • Film izlemek,
  • Yazı yazmak, yazıcıdan çıktı almak,
  • Internet'te oyun oynamak,
  • Yeni monitörü denemek,
  • E-posta okumak,
  • CD yazmak,
  • Yeni bir uygulama kurmak,
  • Bilgisayarın Internet'e yalnız belirli saatlerde bağlanabilmesini sağlamak,
ve benzeri onlarca şey olabilir. Bu işlerin herhangi birisi için, bu işler için kullanılacak uygulamaların sistemin diğer bileşenleri hakkında fikir sahibi olması ve sisteme uygun şekilde yapılandırılmış olması gerekmektedir. Eğer daha önceden yapılandırılmamışsa, bir ``iş''i yapabilmek için gereken uygulamaların yeteneklerinin ve nasıl yapılandıracaklarının bilgisi kullanıcı tarafından biliniyor olmalıdır.

Herhangi bir nedenle bilgisayarın çalışma koşulları değiştiğinde de daha önce yapılan işleri aynı şekilde yapabilmek için kullanılan uygulamaların değişikliklerden haberdar edilmesi de gerekmekte ve hangi iş için hangi uygulamaların nasıl değişikliklere ihtiyaç duyduğu da yine kullanıcı tarafından biliniyor olmalıdır.

2  Linux Dağıtımları, Mevcut Durum

Linux dağıtımı, Linux çekirdeği kullanan bir işletim sistemi ortamını kullanıcıya sunmayı hedefleyen bir bütündür. Dağıtımlar bu işletim sistemi ortamını, kullanıcının ihtiyaç duyabileceği çeşitli uygulamaların beraberce ve uyum içerisinde çalışabilecekleri şekilde bir araya getirerip, tüm bunları kolaylıkla kurulabilir şekilde kullanıcıya ulaştırabilmeyi hedeflerler.

Linux dağıtımlarının büyük bir kısmı aynı zamanda kullanıcının çalışma zamanındaki ihtiyaçlarına cevap vermek üzere bir takım yapılandırma araçlarını da kullanıcıların hizmetine sunar. SuSe, Mandrake, Fedora gibi son kullanıcıyı da hedef alan Linux dağıtımlarının her birinin kendilerine ait, oturmuş yapılandırma araçları mevcuttur.

Kullanıcı bu araçlar sayesinde üzerinde çalıştığı sistemi ya da yapılandırma aracında yer verilmiş kimi özel uygulamaları nispeten kolayca yapılandırabilir. Fakat kullanıcı için aşağıdakiler hem kullanıcı hem de sisteme gelen uygulamalar için hala birer sorundur:

Kullanıcı Tarafından (Uygulamaya Özel Bilgi Gerekliliği):

Kullanıcılar uygulamaları birbirleri ile uyumlu şekilde çalıltırabilmek için bu uygulamalara özel bilgiye sahip olmak zorunda kalmaktadır. Bu da sistemi verimli bir şekilde kullanabilmeleri için zaman harcayarak araştırma yapmalarına, çoğunlukla yapmak istedikleri işi çok zorlanarak yapmalarına zaman zaman da yapamamalarına neden olmaktadır. Örneğin bir kullanıcı yapılandırma aracı ile yapılandırabileceği web sunucusunun yeteneklerini tanımıyorsa, karşısına çıkan
``değişken(label) = değer(input box ya da combo box)''
şeklindeki yapılandırma seçenekleri kullanıcıya bir şey ifade edememektedir. Bu da kullanıcının yapması gereken işten ziyade bunu yaparken hangi uygulamaların nasıl yapılandırılmış olması gerektiğini araştırmaya ve bu konu hakkında belki daha sonra hiç kullanmayacağı bilgileri bir şekilde edinmeye mecbur kalmaktadır. Bu durum, geniş bir perspektifle ele alındığında Linux'un gücünden yaygın bir şekilde faydalanamamak anlamına gelmektedir.

Uygulama Tarafından (Yeteneklerini İfade Edememeleri):

Uygulamaların kendi yeteneklerini tam olarak ortaya koyabilecekleri bir platform olmadığından dolayı, uygulamaların bir arada çalışmaları ile çözülebilecek sorunların aşılması, ya da uygulamaların bir arada çalışmaları ile elde edilebilecek yararlardan istifade edilebilmesi için çok fazla efor gerekmektedir. Çoğu zaman da normal olarak kullanıcı tarafından böyle çözümlerin varlığı bile düşünülememektedir. Linux ile herşeyin çözümü makul kolaylıktaki yollardan mümkün iken bu çözüm yöntemlerini sadece uygulamaların yeteneklerini daha önce tecrübe etmiş uzman kişiler kullanabilmektedirler.

3  Nasıl Olmalıydı?

İşletim sistemi içerisinde, herhangi bir uygulamayı sisteme maksimum verim ile entegre edebilmek ve uygulamayı maksimum verim ile kullanabilmek için sahip olunması gereken bilgi yükünü kullanıcının sırtından alacak işleyiciler olmalıdır. Uygulama, yapılandırması ve entegrasyonu ile ilgili kendi sorumluğunu kendisi taşımalıdır, bu bağlamda sisteme gelen bir uygulama, yapabileceği işler ile ilgili bilgi ve yordamları kendi içerisinde barındırmalıdır. Bu bir nevi, HOWTO belgelerinin bir sistem modeli çerçevesine uydurularak bir bilgisayarın anlayabileceği şekle getirilmesi ve uygulama ile beraber hareket etmesinin sağlanması anlamına gelmektedir. Bu tip bir yaklaşımın sağlıklı bir şekilde hayata geçirilebilmesi için,
  • Bir işletim sisteminde ihtiyaç duyulabilecek yapılandırma ihtiyaçlarını kavramsal olarak ortaya koymuş bir yapılandırma altyapısı, bir model olmalıdır,
  • Uygulamaların sistem ile ve kendi aralarında konuşabilmeleri için bu modeli kullanan yapılandırma altyapısının sunduğu standart bir arayüz olmalıdır,
  • Uygulamaların, yetenekleri ve kendilerinden beklenen çeşitli işleri nasıl yapabilecekleri ile ilgili deneyim, uygulamaların içerisine gömülebilmelidir,
  • Uygulamaların içerisine gömülen bilgiler hem uygulamanın hem de içine gömülen bilgilerin taşınabilirliğini koruyabilmesi ve uygulamanın yazıldığı dilden bağımsız şekilde kolayca geliştirilebilmesi için uygulamanın orjinal kaynak kodunda herhangi bir değişiklik yapılmasını gerektirmemelidir,
  • Uygulamalar sistem içerisinde kendi yeteneklerinden ve karşılayabilecekleri fonksiyonaliteden yapılandırma altyapısını haberdar edebilmelidir,
  • Uygulamalar sistemin geri kalanındaki yapılandırma bilgilerine yapılandırma altyapısının sunduğu standart bir arayüzden ulaşabilmelidir,
  • Uygulamalar sistemin geri kalanındaki uygulamaların sunduğu fonksiyonlara yapılandırma altyapısı üzerinden erişebilmeli ve yeri geldiğinde onlara yetkileri dahilinde hareket ettiklerini garanti eden bir yolla iş yaptırabilmelidir.
Bu sayede,
  • Kullanıcı sisteme yeni eklenen bir uygulamanın beklendiği gibi çalışabilmesi için, onu yapılandırmaya çalışmak zorunda kalmayacak, uygulama paketlerine takılan küçük bileşenler, uygulamanın sisteme geldiği zaman ortalığa göz atıp sistemi tanıyabilmesi ve kendisinin nasıl bir yerde olduğunu anlayabilmesi için gözü kulağı olacaktır.
  • Uygulama geliştiricisi için yapılandırma altyapısının sunduğu olanaklardan faydalanan, mevcut durumdaki gibi kullanıcıdan uygulamaya özel bilgi beklemeyen, uygulamadan bağımsız ve görev temelli yapılandırma ön yüzleri inşa etmek özellikle mevcut durum ile kıyaslandığında son derece kolay olacaktır.
  • Sistem yöneticisi için sistemin tüm yapılandırmasının standart bir altyapı üzerine oturtulması, bununla beraber beraber yapılandırmanın kolayca taşınması, kullanıcı seçimlerine bağlı profillerin oluşturulması ve yönetilmesi de kolay olacaktır.

4  ÇOMAR

ÇOMAR, tüm bu bahsedilen gerekliliklerin hayata geçirilebilmesi, uygulama isteklerinin belirli bir sıra düzende ve erişim kontrolü ile işletilebilmesi için gereken zemin ve bileşenlerini sunacak olan yapılandırma altyapısı olarak tasarlanmıştır.

ÇOMAR yapılandırma altyapısının tamamı temel olarak dört bileşenden meydana gelmektedir, bu bileşenler basit tanımları ile şu şekilde listelenebilir:
Sistem Modeli:
Bir işletim sistemindeki yapılandırma ihtiyaçlarının kavramsal olarak nesnelerle tasvir edildiği modeldir. Bu model sayesinde, uygulamalar sistem modeli içerisindeki beklentilerden hangilerine cevap verebileceklerine karar verebilecek ve kendilerini Sistem Modeli'nin uçları ile ilişkilendirebileceklerdir. Sistem Modeli ÇOMAR'ın en önemli parçasıdır ve getirdiği en büyük yeniliktir.
CSL Betikleri:
ÇOMAR'ın Uygulama paketi içerisinden çıkacak olan parçasıdır. Bu betikler içerisinde Sistem Modeli'nde adı geçen fonksiyonların uygulama tarafından nasıl gerçekleştirileceğine dair anlatım olacaktır.
CSL Yorumlayıcı:
ÇOMAR'ın uygulama paketi içerisinden çıkan ve sistem modeline yerleşen betikleri işletebilmesi için onları yorumlayacak ve ÇOMAR'a sunacak bileşenidir.
ÇOMARd:
İşletim merkezidir. Erişim yetkilerini kontrol etmek, görevleri belirli bir sıra düzende yerine getirlmesini sağlamak, yapılandırma için kullanılabilecek görev temelli kullanıcı grafik ön yüzlerine standart sorgu arayüzleri sunmak, sistemdeki değişikliklerden gerekli uygulamaların betiklerini haberdar etmek, uzaktaki ÇOMARd'lere isteklerde bulunmak, onlardan gelen istekleri karşılamak gibi daha alt seviyeli işlevleri yerine getirecektir.

5  Daha Fazlası

Bu belgenin amacı ve şu ana kadar izlediği yaklaşım ÇOMAR'ın ne olduğunu ve ne olmadığını basit bir dil ile anlatmak idi. ÇOMAR'ın mimarisi, Sistem Modeli ve CSL ile ilgili teknik belgelerin hazırlanması da ÇOMAR'ın geliştirilmesi ile paralel bir şekilde ilerlemektedir. Diğer belgelerin ve bu belgenin son sürümlerini http://www.uludag.org.tr/belgeler/ adresinden takip edebilirsiniz. Ayrıca ÇOMAR ve ULUDAĞ'ın diğer bileşenleri ile ilgili yanıt bulamadığınız sorularınızı, düşüncelerinizi ya da fikirlerinizi http://liste.uludag.org.tr/l adresindeki e-posta listelerimiz aracılığı ile bize iletebilirsiniz.

6  Sıkça Sorulan Sorular

6.1  ÇOMAR'ın açılımı nedir?

``Configuration Manager''. ÇOMAR'ın açılımı ``Configuration by Objects Modify and Restart'' idi. Fakat ÇOMAR'ın tasarım sürecinde ``Modify and Restart'' kısmının ÇOMAR'ın işlevselliğini tam olarak ifade etmez hale geldiği görüldü ve açılımının ``Configuration Manager'' olmasının daha doyurucu ve anlamlı olacağına karar kılındı.

6.2  ÇOMAR ve ÇOMAR için hazırlanmış uygulamalar bana ne sunacak?

  • ÇOMAR sistemin mevcut yapılandırmasına göre kendi kendini yapılandırabilen uygulamalar hazırlanabilmesini, sistemdeki yapılandırmanın deiğiştirilmesi ile haberdar edilmesi gereken uygulamaları haberdar etmek gibi işleri kullanıcının üzerinden alarak yapılandırma bağlamında kaybedilen zamanı ve enerjiyi kullanıcıya geri kazandıracaktır.
  • Yeterince deneyimli kişiler tarafından hazırlanmış betikler sayesinde kurulum ve çalışma zamanında başlangıç kullanıcılarının dahi uygulamaların yeteneklerini tam anlamıyla kullanabilmelerini sağlayacaktır.
  • Sunduğu fonksiyonalite ile tek tek uygulama yapılandırmaktan ziyade görev temelli düşünülmüş grafik yapılandırma ön yüzleri yazılmasını kolaylaştıracak, bu ön yüzler sayesinde kullanıcının daha rahat ``iş'' yapabilmesini sağlayacaktır.

6.3  Sistemde ÇOMAR ile çalışacak şekilde düzenlenmemiş programları da kullanabilecek miyim?

Elbette. Bunun sebebi de, uygulamaların ÇOMAR ile çalışabilecek şekilde düzenlenmesinin, uygulamanın kaynak koduna dokunmaksızın, uygulama ile beraber gelecek bir ya da bir kaç betik dosyasının uygulama paketi içerisine eklenmesinden ibaret olmasından kaynaklanmaktadır.

6.4  ÇOMAR'ı devreden çıkarabilecek miyim, bu hali ile sistemi kullanmaya devam edebilecek miyim?

Evet ÇOMAR'ı devreden çıkarabileceksiniz, ve sisteminiz çalışmaya devam edecek. Fakat bunu yaptığınızda herhangi bir konfigürasyon değişikliği artık kendi kendine olmayacak, uygulamalar değişikliklerden haberdar olup kendilerini yeniden yapılandıramayacaklardır. Fakat bir Linux sisteme aşina olanlar yapılandırma dosyalarına müdahale ederek sistemin yapılandırmasının sürekliliğini elle sağlayabileceklerdir. ÇOMAR'ın aktif olmaması sistemi çalışmaz hale getirmeyecek fakat olması sistemi iyi çalışır hale getirecektir.

6.5  ÇOMAR sistemde kendi kendine bir takım işler yapacak mı?

ÇOMAR sistemde, konfigürasyon değişikliğini, bir uygulamanın tetiklenmesini ya da bir servisin yeniden başlatılmasını gerektirecek bir ``olay'' meydana geldiğinde ya da kullanıcı grafik arayüzlerinden gelecek bir çağrı neticesinde çalışacak ve sisteme müdahale edecek, kendi kendine bir takım işler yapmayacaktır.

6.6  CSL yeni bir programlama dili mi? Bu dili kim kullanacak?

CSL, ÇOMAR'ın Betik Dili olarak düşünüldü. Bu dili sadece ÇOMAR'dan faydalanmak isteyen uygulamaların paketleyicileri gerekli betikleri paketlere eklemek için öğrenecekler. CSL ile ilgili dökümanları ilerleyen tarihlerde dokumanlar sayfamızdan edinebileceksiniz. Kullanıcıların bu dili bilmesi gerekmeyecek.

6.7  CSL gibi yeni bir dile ihtiyaç var mıydı? Diğer diller yetmediler mi?

CSL tam olarak diğer programlama dillerinin yetersizliğinden dolayı ortaya çıkmış bir programlama dili değil. CSL, ÇOMAR'ın beklediği yapıya uygun çağrıların minimum hata ve efor ile, kolaylıkla üretilebilmesi ve ÇOMAR'a iletilebilmesi için geliştirilmiş, son derece basit, Python temelli bir dil ve yorumlayısından ibarettir.

6.8  ÇOMAR bu kadar çok sorunu çözüyorsa neden şu ana kadar kimse düşünemedi?

ÇOMAR'ın gücü ve en büyük getirisi Sistem Modeli'nden gelir. Daha önce de dağıtım üreticileri yapılandırma ile ilgili sorunları çözmek için çeşitli yöntemler düşündüler. Onların çözümleri çoğunlukla yapılandırma dosyalarına standart erişim için çeşitli yalıtım katmanları ve uygulamalara özel yapılandırma araçlarının ötesine geçmedi. Şu ana dek geliştirilen yaklaşımların sorunun hep bir kısmını çözmesine rağmen, gerçek yapılandırma sorununun tüm sistemi kucaklayacak bir sistem modelinin sunduğu platform üzerinde çözülmediği taktirde asla beklenen noktaya ulaşamayacağını düşünüyoruz. Daha önce bunu benzer şekilde dile getiren ve uygulamaya çalışanlar da oldu, bunlardan en meşhur olanı da dünyanın çok büyük bir kısmını kullanıcı kitlesi olarak kendi etrafına toplamayı başarmış olan bir firma. ÇOMAR'ınkine benzer yaklaşımların daha önce de düşünülmediğini söylemek haksızlık olur, fakat neden şu ana kadar uygulanmadığı sorusunun da tek ve net bir yanıtı yok.

Information and documents on Pardus web pages can be used freely anywhere with original source credit.
For information and suggestion(s) please write to info_at_pardus.org.tr
TÜBİTAK - UEKAE, PK.74 41470, Gebze / Kocaeli.