Bilgisayar Bilimleri -22- İşletim Sistemlerinin Bileşenleri

Bir işletim sistemini bilgisayara yüklediğimizde masaüstü diye tabir edilen bir çalışma ortamı ekran vasıtasıyla karşımıza çıkar. Hepimiz işletim sistemi dediğimizde aklımıza ilk masaüstü gelse de masaüstü uygulaması işletim sistemlerinin olmazsa olmazlarından değildir. Linux dağıtımlarını kullananların yakından bileceği üzere Linux işletim sisteminde çeşitli masaüstü uygulamaları olsa da çoğu işi terminal vasıtasıyla yaparız ve bazen de yapmak zorunda kalırız. Terminal olsun masaüstü olsun işletim sisteminin kullanıcı ile doğrudan etkileşime geçtiği bu uygulamaya arayüz adı verilir. İşletim sistemi arayüzleri uzun bir süre terminal, konsol ya da doğru adıyla kabuk (shell) adıyla adlandırdığımız karakter tabanlı bir görüntü üzerindeki girdi ve çıktılar olarak kullanılmıştır. MS-DOS, CP/M gibi eski zamanların bilgisayarlarına ait işletim sistemlerini bu arayüzle tanısak da günümüzde dahi Windows, Mac ve Linux işletim sistemlerinde Shell uygulaması mevcuttur.

Yukarıda bahsettiğimiz grafik tabanlı olan ve çoğunlukla farenin imleci ile kontrol ettiğimiz arayüzlere ise grafiksel kullanıcı arayüzü (GUI) adı verilmektedir. Bu arayüz sadece bir işletim sistemi konusu olmayıp işletim sistemi üzerine yazdığımız uygulamalarda da sıkça kullanacağımız bir yöntemdir. Düğmeler, metin kutucukları, seçenekler, pencereler ve kaydırma çubukları gibi pek çok ögeden oluşan grafiksel kullanıcı arayüzleri bilgisayar kullanımında tartışılamayacak derecede büyük kullanım kolaylığı sağlamaktadır. Günümüzde gömülü sistemler ve sunucular gibi kapalı yerlerde çalışan bilgisayarlar hariç bir bilgisayardaki işletim sisteminin olmazsa olmazı tam kapsamlı bir grafiksel kullanıcı arayüzü sağlayabilmesidir. Elbette bazı bilgisayar bilginleri için grafik arayüzü çok da gerekmeyebilir.

Grafik arayüzlerinin tarihine baktığımızda önceleri işletim sistemi bünyesinde çalışan prototip programların yazıldığını görürüz. Bu programlar daha çok grafiksel dosyalama programlarına benzerlik gösterip diskte bulunan dosya ve programlara daha rahat erişmemizi sağlıyordu. Bilgisayar tarihinde ilk ticari ve tam anlamıyla grafik kullanıcı arayüzüne sahip bilgisayar olarak Apple Lisa adlı  bilgisayarı görürüz. Bu bilgisayar zamanının biraz ötesinde olduğu için aşırı derecede pahalıydı ve Apple’ın pek tutmayan ürünleri arasındaydı.

Resim: Apple Lisa

Yukarıda gördüğünüz Apple Lisa bilgisayarında sadece siyah beyaz ekran üzerindeki masaüstü zamanına göre oldukça etkileyici görünse de bunun yanında bir diğer etkileyici nokta ise bilgisayarın standart olarak mouse ile gelmesi ve işletim sisteminin mouse imleci yardımıyla kullanılmasıydı. Günümüz modern bilgisayarlarının hepsinde gördüğümüz bu özelliğin öncüsü bu ve bunun gibi bilgisayarlar olmuştur. Grafik kullanıcı arayüzü bazen bir işletim sisteminin doğmasına önayak olabilir. Windows ilk çıktığı zamanlar DOS üzerinden çalışan bir program halindeydi. Hatta Windows 98 dahil olmak üzere daha öncesinde çıkan ana akım Windows sürümlerinin hepsi DOS tabanlıdır. DOS tabanlı işletim sistemi olması bir yandan da eskiden gelen program külliyatını uyum sorunu olmadan çalıştırabilmesi demektir. Örneğin bizim ilk bilgisayarımız Windows 98 işletim sistemine sahipti ve DOS oyunları sadece .exe uzantılı dosyaya çift tıklayarak açılabiliyordu. Günümüzde ise NT ile temelleri atılan DOS’dan bağımsız çekirdek kullanılmakta ve DOS tabanlı oyunları ve programları açabilmek için DOS emülatörü gerekmektedir. Bu günümüz için bir sorun olmasa da Windows’un zamanında ana akım bilgisayarlarda kullanılmak üzere bir işletim sisteminin DOS’a uyumlu olması beklenirdi.

Resim : Windows 3.1

Grafik kullanıcı arayüzleri herkesin müşahede ettiği ve kavramakta hiç zorluk çekmeyeceği bileşenlerin başında gelir. Windows ve Mac işletim sistemlerinde kullanıcı arayüzü tek ve değiştirilemez olsa da Unix tabanlı işletim sistemlerinde onlarca farklı grafiksel kullanıcı arayüzü (masaüstü) ve farklı farklı kabuk (shell) bulunmaktadır. Bunlar arasında kullanıcılar geçiş yapabilir veya birini tercih edebilir. Elbette bunun dışında işletim sisteminde normal bir kullanıcının sayamayacağı bazılarında ise geliştiren firmadan başkasının sayamayacağı miktarda bileşen bulunmaktadır. Bu bileşenler ayrı ayrı olarak ele alınırsa işin içinden kolay kolay çıkılmaz. Yine de belli başlı bileşenleri kategorilere ayırabiliriz.

İşletim sisteminin en önemli bileşenlerinden biri de dosya yöneticisidir. İngilizce olarak file manager dediğimiz bu program işletim sistemi üzerinde bulunan bütün verileri dosyalar halinde tutar ve bu dosyaları da klasörler içinde barındırır. Bu klasörlerin hepsinin belli bir yolu bulunmaktadır ve bu yollar bize ev adresi gibi disk/ üst dosya / alt dosya ve benzeri tarzda gösterilirken işletim sistemi için ise hafızadaki bölümleri ve adresleri ifade etmektedir. Ayrıca dosyaların belli yollarda ve klasörlerde saklanmasının yanı sıra dosya tiplerini sınıflandırmak da önemli bir görevdir. Biz Windows işletim sisteminde dosya adlarının yanında .wav, .gif, .avi, .html gibi pek çok dosya uzantısıyla karşılaşırız. Örneğin sazan.avi diye bir dosya karşımıza çıkarsa .avi uzantısından bunun video formatında olduğunu öğrenebiliriz. Bu uzantıyı işletim sistemi okuduğunda ise dosya açıldığında ilgili multimedya programı ile bunu başlatır. Dosya ve klasör adları kullanıcılara tahsis edilmişse de bazı sistem dosyalarının ve klasörlerinin adları değiştirilemez. Aynı zamanda dosya uzantıları çok hassas olup ancak ilgili programları alakadar etmektedir. Örneğin kazara bir dosyanın uzantı bilgisini silersek bunu işletim sistemi nasıl açacağını bilemeyecektir.

Dosya yöneticisinin pek çok kuralı ve görevi bulunmaktadır. Güvenlik bunların başında gelir. Fark ederseniz işletim sisteminde her dosyayı görmeniz mümkün değildir veya her dosyayı istediğiniz gibi okuyup yazıp silemezsiniz. Bazı dosyalar bazı kullanıcılara mahsus kılındığından sizin buna erişiminiz kullanıcı ünvanınızla ve güvenlik bilginizle mümkün olabilir. Bu durumda dosya yöneticisinin kullanıcı yöneticisi ile beraber çalıştığını da buradan anlayabiliriz.

Biz bir dosyayı adreslemek istediğimizde C:\Program Files\Fallout 2\Fallout2.exe diye bir adres oluştururuz. Bu konuma yol yani path adı da verilir. Bu adresleme işlemi işletim sistemlerine göre değişiklik göstermektedir. Önemli olan işletim sisteminin ve işletim sistemi üzerinde çalışan uygulamaların bu doğru yol bilgisini elde edebilmesidir. Karşımıza çıkan meşhur bir hata olan “.dll bulunamadı, .exe bulunamadı” gibi hatalar bu yol bilgisinin eksikliğinden kaynaklanmakta olabilir. Bu yol bilgileri kayıt defteri yani registry adı verilen programlar, dosya uzantıları ve sistemle alakalı önemli parametrelerin yer aldığı defterde bulunabilir ve buradan değiştirilmeye ihtiyaç duyulabilir. Kayıt defterindeki parametreler bilinçsiz bir kullanıcı tarafından değiştirilirse ciddi sorunlar meydana gelebilir.

Yine en önemli bileşenlerden biri de aygıt sürücüleridir. Biz bilgisayara en basitinden bir klavye veya fare taksak bile bilgisayarın bunu tanıyıp çalıştırması için sürücü yazılımına ihtiyacı vardır. Sürücü yazılımı olmadan bilgisayara takılacak bir çevre biriminin bilgisayar için bir anlamı yoktur. Bu bilgisayar kasası içerisindeki ekran kartı, ses kartı gibi parçalar olabileceği gibi dışarıdan takılan USB bellek, fare gibi aygıtlar da olabilir. Aygıt sürücüleri Windows işletim sistemlerinde biraz sıkıntılı olmaktadır. Bunun izahını da şöyle yapabiliriz. Windows hem kapalı kaynak bir işletim sistemi olduğu hem de dünyadaki kişisel bilgisayarların tamamında (x86-64 mimarisi olmak kaydıyla) çalışmak üzere tasarlandığından dolayı tek bir işletim sisteminde binlerce değişik donanımın sürücüsünü bulunduramaz. Örneğin Apple bir kaç adet bilgisayar çıkarır ve onların donanımı belli olduğundan onlarda çalışmaya yönelik bir işletim sistemi ortaya çıkar. Windows’da ise yüzlerce farklı aygıtı tek bir kapalı kaynak işletim sistemi ile çalıştırma zorunluluğu vardır. Binlerce farklı Android telefonun tek bir işletim sistemiyle çalışması Android’in açık kaynak olmasından dolayıdır. Hatta üretici doğru düzgün bir işletim sistemi ile piyasaya süremezse hemen üçüncü parti romlarla bunun telafisi bulunabilir. Eğer bir sistem açık kaynak ise kodları uyduracak ve yüzlerce farklı sürüm ortaya çıkaracak bir kitle bulunur. Ama kapalı bir kaynak işletim sisteminin yüzlerce farklı sürümünün olması beklenemez. Aygıtlara Windows ortamında sürücü yazmak zorunda kalan üreticiler de sürekli sürücü güncellemesi yapmak durumunda kalmakta ve yeni gelen güncellemeler bazen farklı sıkıntılar yaşatmaktadır. Windows bunu son yıllarda telafi etmek adına çevrimiçi sürücü yükleme özelliğinin yanı sıra iyice standartlaşmış hale gelen donanımların sürücülerini hazır olarak bünyesinde bulundurmaktadır.

Bilgisayarla bir müddet zaman geçiren herkesin bileceği gibi görev yöneticisi işletim sistemlerinin temel taşlarından biridir. Bilgisayarda CTRL + ALT + DEL kısayolu ile gideceğimiz bu program bilgisayarda çalışmakta olan programları (process), hizmetleri ve çeşitli performans bilgilerini üzerinde bulundurur. Ayrıca programların işlem önceliği gibi işlem ile ilgili parametreleri burada görebiliriz. Görev yöneticisi programların düzgün bir şekilde beraber çalışmasını ve işlem gücünün adil olarak paylaştırılmasını hedefler. Aynı anda hem müzik dinleyebiliyor hem de yazı yazabiliyorsak bunu görev yöneticisine borçluyuz.

En son olarak da hafıza yöneticisinden bahsetmek istiyorum. Basit gömülü sistemlerde tek bir program hafızasında tek bir program bulunur ve sisteme güç verildiğinden itibaren program birinci adresinden itibaren yürütülmeye başlanır. Ama biz karmaşık sistemlere geçtiğimizde belleğin farklı programları yürütmek üzere bölümlere ayrılması gerektiğini ve programın ve verinin adreslerinin yönetilmesi gerektiğini görürüz. Von neumann mimarisinde program ve veri aynı hafıza üzerinde yer aldığından hem programın yönetimi hem de programın erişeceği verinin yönetimi düzgün olarak yapılmalıdır. Bir program bellekteki kendiyle alakalı olmayan bir yerdeki veriye erişmeye kalkarsa bu oldukça zararlı sonuçlar doğurabilir. O yüzden bellek yöneticisi gerekli güvenlik önlemlerini de almak zorundadır. Bazen bizim çalıştırdığımız program bilgisayarın RAM bellek miktarından daha fazla bellek isteyebilir. Bu durumda yine bellek yöneticisi devreye girer ve örneğin 8GB’lık belleği 4GB kapasiteye sahip bir belleğe sığdırmaya çalışır. Buna sayfalama adı verilir ve dönüşümlü olarak harddiskten program okunarak bellekte geçici olarak muhafaza edilir. Bu yönteme “iki ayağı bir pabuça sokmak” yöntemi de denebilir. Eğer bilgisayar oyunu gibi hız ve performansın önemli olduğu bir yerde bu yöntem büyük miktarda kullanılırsa o oyun oynanmaz hale gelebilir. Yetersiz RAM belleğe sahip olan bilgisayarların oyunu açması ama akıcı oynatmaması bu yüzdendir. Eğer paging denen olay hiç olmasaydı oyun hiç açılmayacaktı.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.