İşletim Sistemleri Katmanları

Bu ay köşemizden hepinize tekrar merhaba. Onlinedergi.net yayın hayatına başlayalı 2 aydan az bir süre olmasına rağmen oldukça büyük bir ziyaretçi kitlesine şimdiden sahip oldu. Yazılı medya yerine Internet ortamını kullanmanın en büyük olanaklarından birisi ticari bir kaygı taşımadan okuyucuyla biraz daha derin bilgi alışverişi yapabileceğimiz konular seçebilmemizdir.



Bu dokümanda her işletim sistemi kitabını okuduğunuzda duyma ihtimalinizin yüksek olduğu bazı teknik terimlere ve onların açıklamalarına yer verilmeye çalışılacaktır. Özellikle kernel, shell gibi kavramlar üzerinde durulacak, Unix sistemlerin neden diğer sistemlere nazaran daha kararlı olduğunu teknik bakış açısı ile öğreneceksiniz.


İşletim sistemleri bilgisayarı da sisteme dahil edersek 4 katmandan oluşur.


  1. Donanım Katmanı : Bir bilgisayarın elle tutulur gözle görülür kısımları. Örneğin ekran kartınız, modeminiz bu katmanda çalışmaktadır.


  2. Kernel(Çekirdek) : İşletim sistemlerinin bilgisayarın en alt seviyede donanım katmanı ile iletişim kuran en alt seviyede program. Bu katmana işletim sisteminin kalbi demek yalan olmaz. Bir işletim sisteminin performansı, yetenekleri vb... kernelin başarımı ile doğrudan ilişkilidir. Üç çeşit kernel vardır.


    • Micro Kernel : İşletim sisteminin kernelinin mümkün oldukça küçük olmasına gayret edilmiştir. Sadece çok önemli, bilgisayarın çalışması için gerekli bölümleri içerir. Örneğin işlemci yönetimi, bellek yönetimi... Bu tip kerneli olan işletim sistemlerinde bilgisayara bağlı CD-ROM, harddisk, disk denetleyici gibi diğer donanımları tanıtmak için işletim sisteminin kerneli ile direk iletişime geçebilecek ve bellekte bu işlemleri yönetebilecek bir yazılıma ihtiyaç vardır. Bu yazılıma da sürücü(driver) denilir. Bu tip kernele sahip işletim sistemlerine en güzel örnek MS-DOS/Windows' tur. MS-DOS' ta basit bir CD-Rom' u tanıtmak için bile bir sürücü programa ihtiyaç duyulmasının nedeni budur. İşletim sisteminin kendisi o donanımı tanıyacak bilgiyi çekirdeğinde tutmaz.


      Avantajı yeni bir donanım takıldığında eğer donanım üreticisi firma o işletim sistemi için sürücü üretti ise bilgisayara tanıtmak çok kolay olmaktadır. İlgili sürücünün setup' ını çalıştırırsınız ve her şey olur biter.


      Dezavantajları ise her türlü donanım için bir sürücüye ihtiyaç duyduğu için bilgisayarda onlarca değişik firmanın ürünü olan program işletim sisteminin parçası gibi davranmaktadır. Bu da herhangi bir donanım arızasının sonucunda bütün sistemin çökmesine yol açmaktadır. Windows' un bu kadar sık göçmesinin temel nedenlerinden bir tanesi de budur.


    • Monolithic Kernel : Bu tür kernellarda donanımımız için gerekli her türlü sürücü yazılım işletim sisteminin çekirdeğine gömülüdür. Yani bir CD-Rom driver veya ethernet driver diye bir kavram yoktur. İşletim sisteminiz bu donanımı kullanmak için gerekli sürücü yazılımı kendi içersinde ihtiva etmektedir. En güzel örneği Unix' tir.


      Avantajı, kernel büyük olmasına rağmen her türlü fonksiyonun bir birbiri ile iletişim tek program tarafından olduğu için genelde daha hızlı işlemektedir. Bu tür işletim sistemlerinin performansı aynı donanımda micro kernel bir sistemden genellikle daha iyidir. Bütün donanımın sürücüleri arasında iletişim söz konusu olmadığı için sistem çok stabil olur. Unix sistemler çok nadir göçer. Yıllarca hiç kapanmadan çalışan Unix sistemler mevcuttur.


      Dezavantajı ise her yeni donanım takıldığında yeni bir kernel derlenmesi gerekliliğidir. Bu işlem bir kaç on dakikadan kimi zaman bir kaç saate kadar süren zahmetli bir iştir ve yüksek donanım bilgisi ister bu nedenle kullanımı zordur ve pek de pratik değildir. Bu nedenle plug&play bir Unix yoktur.


    • Hybrid : Bu tür işletim sistemlerinde sistemdeki donanım için gerekli sürücü istenir ise kernelin içine istenir ise Windows' taki gibi driver yolu ile kullanılabilir. En güzel örneği bir monolitic kernel sistem sayılmasına rağmen hybrid özelliklerine sahip Linux' tur. Kernel derleme sırasında bir donanım sürücüsü istenirse kernela gömülür istenirse modül olarak /lib/modules dizini altına kaydedilir. O donanımın kullanılması gerektiğinde de buradaki object dosyası kernel ile iletişime geçer ve donanımı yönetir. Bu iletişim için insmod modprobe gibi yazılımlar kullanılmaktadır ve bu iki komut modutils adlı paketle birlikte gelmektedir. Her iki komut da kimi kullanımlarda parametre gerektirmesine rağmen bu işi otomatize etmek için libdetect, libdiscover, kudzu, harddrake gibi yazılımlar mevcuttur. Sonuç olarak plug&play bir Linux sistemin micro kernel sistemlerdeki gibi işlemese de uygulanması mümkündür ve şu anda mevcuttur.


  3. Shell(Kabuk) :Kernel' in kullanıcı ile iletişime geçen arabirimidir. Örneğin MS-DOS da c:\>_ komut satırına düştüğünüzde işte o zaman MS-DOS' un shell' i command.com ile karşı karşıyasınız demektir. Verdiğiniz copy, del gibi komutları shell kernel' a onun anlıyacağı dilden iletecek ve kernel da disk üzerinde bu işi gerçekleştirecektir. Unix sistemlerde shell bir çeşit değildir. Yani c:\ gibi bir şey ile karşılaşacağınızı söylemek mümkün değildir. Birden fazla shell mevcut olup kendine has özellikleri vardır. Örneğin bir standart haline gelen bash çok güçlü ama ebat olarak biraz büyüktür. Dolayısı ile güçlü makinelerde faydalı olurken sınırlı kapasitedeki makinelerde yükü ağırlaştırabilmektedir. Csh (C Shell) ise komut satırında C diline benzeyen komutları kullanabilmenizi sağlayabilir.... Unix sistemlerde ve dolayısı ile Linux' da shell değiştirmek için chsh komutu kullanılır. Eğer bir Linux kullanıcısıysanız ve herhangi bir değişiklik yapmamışsanız büyük ihtimalle bash kullanıyorsunuz demektir. Sistemde yönetici kullanıcı (root) iseniz bunu # işaretli bekleme satırından ve eğer normal kullanıcı iseniz de $ şeklindeki satırdan anlayabilirsiniz.


  4. Uygulama Katmanı : Kullandığımız her türlü program bir uygulamadır ve uygulama katmanını oluşturur. Örnek vermek gerekirse Windows altında Photoshop veya Linux altında Staroffice bir uygulamadır ve bu katmanda çalışır.




    Bu yazı Kasım 2001 tarihinde http://www.onlinedergi.net sitesinde yayınlanmıştır.