Bilgisayar Bilimleri -21- İşletim Sistemlerine Giriş

İşletim sistemleri bilgisayar mühendisliği bölümlerinde ayrı birer ders olarak okutulmaktadır. Biz ise şu an işletim sistemlerini bilgisayar bilimleri başlığı altında giriş seviyesinde ve kısaca ele alacağız. İşletim sistemleri oldukça karmaşık programlar olup çekirdekleri bile bazen milyonlarca satır koddan oluşabilmektedir. Bu programlar bilgisayara dair her işi yerine getirdiklerinden çok çeşitli özelliklere ve araçlara sahiptir. Diğer anlattığımız bütün konular aslında birer kitap konusu olsa da işletim sistemleri konusunun diğer konulardan daha geniş ve ayrıntı dolu olacağı kesindir.

Ben bilgisayarla Windows 98 işletim sistemi vasıtasıyla tanıştım. Sonra sırasıyla Windows XP, Windows 7 derken Windows 8.1 işletim sistemini aktif olarak kullanmaktayım. Neredeyse yirmi yıldan fazla olan bu süreçte kısa da olsa Pardus ve Ubuntu gibi Linux dağıtımları ile tanışma fırsatı buldum. Aslında hepimizin işletim sistemi tecrübesi vardır. Çünkü işletim sistemi olmadan bir bilgisayar fanları dönen bir kutudan ibarettir.

Biz bilgisayar kullanıcılığında da programcılığında da yazılımla haşır neşir oluruz. Yalnız yazılım tipleri olarak iki ayrı yazılım tipinin olduğunu bilmemiz gerekir. Biri hepimizin bildiği yazılım tipi olan uygulama yazılımı diğeri ise sistem yazılımıdır.

Uygulama yazılımını anlatmamız hiç zor olmayacaktır çünkü en basit bilgisayar kullanıcısı bile en az on adet civarında uygulama kullanmaktadır. Resim çizme, görüntü işleme, çoklu medya, müzik çalar, internet tarayıcı, elektronik kitap okuyucu, metin işlem, tablolama programı, sunu programı, bilgisayar oyunları, sohbet programları, dosya indirme programları, arşivleme programları, anti virüsler, güvenlik yazılımları ve sayabileceğimiz onlarca çeşit uygulama uygulama yazılımı olarak adlandırılır. Bu uygulama yazılımlarının ortak noktası işletim sistemine bağlı olmaları ve işletim sisteminin araçları ile yazılmalarıdır. Uygulama yazılımları bilgisayarla muhatap olmaktan çok bizle etkileşime geçmektedir. Bilgisayarın sorunlarıyla ilgilenmekten çok bizim ve gerçek dünyanın sorunları ile ilgilenmektedir. Bilgisayar ve onun sıkıntılarını dert edecek yazılımlar ise sistem yazılımlarıdır.

Sistem yazılımları bilgisayarı temel seviyeden idare eden yazılımlardır. Sistem yazılımları uygulama yazılımlarının meydana getirilmesi ve çalıştırılması için gerekli araçları ve ortamı sağlamaktadırlar. Sistem yazılımları doğrudan doğruya donanım ile iletişime geçer ve donanımla alakalı pek çok özelliği bünyesinde bulundurur. Örneğin bir derleyici bizim programlama dilinde yazdığımız kodu makine diline çevirirken bir dosya sistemi hafıza üzerinde kaydettiğimiz verileri dosyalar halinde sınıflandırır ve düzenler. Ayrıca bizim USB yuvasına taktığımız belleği okuyan, CD sürücüsünü çalıştıran, ses çıkışı sağlayan, monitöre görüntü sinyalini götüren ve uygulama yazılımlarının bunu kullanması için gerekli kütüphaneleri bulunduran yazılımların hepsi sistem yazılımıdır.

Bilgisayarların ve yazılımların tarihini anlatırken önceden uygulama ve sistem programcılığı diye birşey olmadığını teknolojinin gelişmesiyle ikisinin birbirinden ayrıldığını söylemiştik. Günümüzde programcılık dediğimiz zaman C# veya Python kütüphanelerini kullanarak program yazma kadar kolay görünen programcılık akla gelmektedir. Bu programcılık buz dağının görünen yüzü olup işin zor kısmı pek ortalarda görünmeyen sistem programcılığındadır. Sistem programcılarının yüklendikleri büyük yük sayesinde uygulama programcıları rahatça uygulama geliştirebilmektedir.

Yukarıdaki resimde sistem yazılımlarının ve işletim sistemlerinin bilgisayar ortamındaki rolü görünmektedir. İşletim sistemi dediğimiz olay bizim yukarıda anlattığımız sistem programlarının bir paket program haline getirilip bize tam teşekküllü halde sunulmasından öte değildir diyebiliriz. Çünkü işletim sistemi tek bir program olmayıp içerisinde yüzlerce ufak programı ve ufak işler yapan araçları görmemiz mümkündür. Örneğin bir işletim sisteminde grafik kütüphaneleri, aygıt sürücüleri, kullanıcı denetimi, dosyalama yazılımı, derleyiciler, işlem idarecisi, bellek idarecisi gibi bir sürü alt program yer almaktadır. İşletim sisteminin işletim sistemi sayılabilmesi için bizim donanımla olan iletişimimizde eksiksiz bir aracı olması gereklidir. O yüzden bir işletim sistemi milyonlarca satır koddan meydana gelmekte ve yüzlerce sistem programcısının yıllarca çalışmasıyla gelişebilmektedir.

İşletim sistemlerinin tarihine baktığımızda oldukça eskilere gidebiliriz. Yalnız eskiden işletim sisteminin yaptığı işi bilgisayar operatörleri yapmaktaydı. Eskiden kişisel bilgisayar kavramının oldukça anlamsız olduğu dönemlerde tek bir ana bilgisayara birden fazla terminal bağlı olmakta ve kullanıcılar programlarını çalıştırmak için belli bir sıraya koymak zorundaydı. Çünkü akan bir çeşmenin başında onlarca kişinin beklemesi söz konusu olduğunda bunları sıraya sokacak biri gereklidir. Bu işlem yöntemine yığın işlemi (batch processing) adı verilmektedir. Yığın işleminde bütün kullanıcıların işleri bir sıraya koyulur ve beklemenin ardından program işletilir.

Bunun ardından etkileşimli işlem (interactive processing) adı verilen ve bilgisayarın işletim sistemi ile elektronik daktilo veya terminal vasıtasıyla iletişime geçilen yazılımlar geliştirilmiştir.  Daha sonrasında gerçek zamanlı işleme (real time processing) adı verilen kullanıcı ile eş zamanlı olarak işlemlerin yürütüldüğü sistemler geliştirilmiştir. Biz günümüzde bilgisayarlarda çoklu işlemleri görev yöneticisinden sayabilsek de eskiden bilgisayarlarda çoklu işlem denildiğinde tek bir kişinin kullandığı bilgisayarda birden fazla programın yürütülmesi değil çok kişinin yazdığı programın tek bir bilgisayarda yürütülebilmesi anlaşılıyordu. Daha önce dediğimiz gibi bir odayı kaplayan ve oldukça pahalı olan bir bilgisayarı tek kişinin emrine vermek oldukça verimsiz olmaktaydı. O yüzden birden fazla kişi aynı bilgisayarın işlem gücünden faydalanmak durumunda kalmaktaydı. O halde bu işletim sistemleri günümüzde kişisel bilgisayarların mantığına biraz da aykırı görünen çoklu kullanıcı veya çoklu görev özelliklerini en başta sağlamak durumundaydı.

Biz ise günümüzde kişisel bilgisayarlarda olduğu gibi sunucularda, süper bilgisayarlarda, iş istasyonlarında, telefonlarda, gömülü sistemlerde ve pek çok alanda işletim sistemlerini kullanmaktayız. İşletim sistemlerine baktığımızda karşımıza Windows, Linux ve Mac üçlüsü gelse de perde arkasında pek çok işletim sisteminin olduğunu görebiliriz. Linux işletim sistemi kişisel bilgisayarlarda pek kullanılmayan bir sistem olsa da sunucularda, gömülü sistemlerde ve mobil aygıtlarda (Android) oldukça yaygın olarak kullanılmaktadır. Biz bir geliştirici olarak işletim sistemlerine bakış açımızı genişletmemiz ve işletim sistemlerini masaüstü işletim sistemlerinden ibaret görmememiz gerekir.

Konuyu özetlersek yazılımlar uygulama yazılımı ve sistem yazılımı olarak ikiye ayrılıyordu ve sistem yazılımları da araç yazılımları ve işletim sistemleri olarak ayrılmaktaydı. İşletim sistemleri ise bünyesinde pek çok aracı bulunduran, donanımla aramızda aracı olan ve kullanıcı arayüzüne sahip büyük bir yazılım külliyatı idi. Biz bu yazılım külliyatını ne kadar iyi kullanmayı bilirsek bilgisayarı o kadar iyi kullanmayı biliriz. Bilgisayarı öğreneceklere verilen bilgisayar okur yazarlığı kursları veya üniversitelerde bilgi teknolojileri dersleri çoğunlukla işletim sistemini kullanmaya yönelik içeriğe sahiptir. Biz geliştirici olarak bilgisayarı ve işletim sistemini kullanmayı bilmememiz asla mazeret olarak kabul edilemez.

 

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.