İşletim Sistemleri ve Tarihçesi

Resim6_1

İşletim sistemi, bilgisayarda çalışan, bilgisayar donanım kaynaklarını yöneten ve çeşitli uygulama yazılımları için yaygın servisleri sağlayan bir yazılımlar bütünüdür. İşletim sistemi, uygulama kodları genellikle direkt donanım tarafından yürütülmesine rağmen, girdi-çıktı, bellek atama gibi donanım fonksiyonları için uygulama programları ve bilgisayar donanımı arasında aracılık görevi yapar.

İşletim sistemleri sadece bilgisayar, video oyun konsolları, cep telefonları ve web sunucularında değil; arabalarda, beyaz eşyalarda hatta kol saatlerinin içinde bile yüklü olabilir. İşletim sistemleri işlevsellerinin genişliği ile değil, donanımı belli bir amaç doğrultusunda programlayabilme nitelikleriyle değerlendirilmelidir.

En yaygın kullanılan işletim sistemlerine örnek olarak; Microsoft Windows, Mac OS X, Linux, Android ve iOS örnek verilebilir.

Tarihçesi

İlk işletim sistemi

İlk gerçek “Sayısal Bilgisayar” İngiliz matematikçilerinden Charles Babbage (1792-1871) tarafından tasarlanmıştır. Ancak onun yaşadığı yıllarda teknoloji yetersizliklerinden, tasarladığı makinelerde işletim sistemleri mevcut değildi.


Birinci Nesil İşletim Sistemleri (1945-1955)

Babbage’ ın başarısızlıkla sonuçlanan çalışmalarından sonra, II. Dünya savaşına kadar olan dönemde yok denecek kadar az bir gelişme olmuştur. 1940′ lı yıllarda ise, Harvard Üniversitesinde Howard Aiken; Princeton Üniversitesinde, John Von Neumann ve Amerika ile Almanya’ daki bazı diğer araştırmacıların çalışmaları sonucunda vakum tüpleri kullanılarak sayısal bazı makinelerin geliştirilmesi mümkün olabilmiştir. Ancak bu geliştirilen makineler son derece büyük ve odalar dolusu on binlerce vakum tüplerinden yapılmış ve bugün evlerde kullanılan bilgisayarlardan yüzlerce kez daha yavaş çalışmaktaydılar.

Bu dönemde makinenin hem tasarımını yapan, hem imalatını yapan, hem programlayan, hem işleten ve hem de bakımını yapan hep aynı küçük bir gruptu. Bütün programlama, kontrol panelindeki ilgili yerlere, ilgili kabloları takarak makine dili ile yapılırdı. İşletim sisteminin ise adı bile anılmamaktaydı. Sonraları 1950′ li yılların başında kartlı makinelerin gelişmesi ile programların kartlara yazılıp buradan okutulması sağlanmakla beraber, diğer olaylar tümüyle aynıydı.


İkinci Nesil İşletim Sistemleri (1955-1965)

1950′ li yıların ortasında transistörlerin geliştirilmesi ile büyük bir devrim oldu. Bu dönemde bilgisayarlar müşterilerin işlerini yapabilecekleri düzeye geldiği için üretici firmalar tarafından satılmaya başladılar. Bu yıllarda, bilgisayar tasarımcıları, üreticileri, operatörler, programcılar ve bakım personeli kesin olarak birbirinden ayrıldılar.

Bu makineler yine de çok büyük ve çok pahalı olduklarından, çok büyük kapasiteli klima cihazları ile soğutma gerektirdiğinden ve çok büyük devlet daireleri ya da çok büyük özel sektör kuruluşları tarafından satın alınabildiler. Bu nesil bilgisayarlarda, kullanıcı her bir satırını bir karta yazdığı programını getirip eliyle sistem operatörüne verirdi.Operatör kartları kart okuyucu cihazında okutur ve okunmuş seklini teyp bantına aktarırdı. Sonra sisteme derleyici bantını yükler ve arkasından da kullanıcının programının bulunduğu bantı yükleyerek derleme işlemini yapardı. Bu derleme işlemi tamamlandıktan sonra programın çalıştırılabilir halini 3. banta çıkar ve bunu tekrar sisteme götürüp çalıştırarak programın sonucunu yazıcıdan yazdırırdı.

Bu dönemde bundan sonra sağlanan en büyük aşama, derleyicinin bir defa yüklenmesinden sonra, çok sayıda farklı programcının programlarının 1 bant üzerine arka arkaya yüklenip çalıştırılması olanağı ile Yığın İşlem (Batch Processing) kavramının getirilmesi ve uygulamaya koyulmasıdır. Bundan önce bilindiği gibi her programcının programı için derleyici bantınıda bir defa yükleme zorunluluğu vardı. Bu nesil bilgisayarlar bilimsel ve mühendislik işleri için ve Fortran dili ile kullanılırdı. İşletim sistemi ise IBM’ in geliştirdiği ve 7094 makinelerin de kullanılan IBSYS’ di.


Üçüncü Nesil İşletim Sistemleri (1965-1980)

1960′ lı yılların başına kadar üretici firmalar iki farklı üretim çizgisinde gittiler. Bir taraftan mühendislik ve bilimsel işlerde kullanılan bilgisayarlar, diğer taraftan da bankacılık ve sigortacılık şirketleri gibi ticari kuruluşlar tarafından kullanılan bilgisayarlar üretildi.

Ancak bu durum çeşitli sorunlar yarattığından IBM firması bu iki farklı yaklaşımı tek bir yapı üzerinde birleştirmek ve sorunları gidermek amacı ile 360 mimarisini duyurdu.

Bu nesil bilgisayarların mimari yapısındaki en önemli yenilik transistörlerin yerine entegre devlerin kullanılmış olması idi. Böylece makinelerin boyutları küçülürken, çıkardıkları sıcaklıkta binlerce kat azalmıştı. Bununla beraber kullanım açısından bu mimari yapının getirdiği en önemli yenilik ise “mutiprogramming” tekniği idi.

Eski nesil bilgisayarlarda, kart ya da bant okuma süresi boyunca CPU tamamen boş olarak beklemekte iken, bu nesilde belleğin parçalara ayrılıp, her parçada başka bir programın çalıştırılması sayesinde, örneğin bir program teypten okuma yaparken CPU atıl (boş) olarak durmamakta ve diğer programın gereksindiği hesaplama işini yapmakta idi.

Üçüncü nesil bilgisayarların getirdiği bir diğer önemli özellikle, aynı anda gelen çok sayıda program destelerinin, kendinden önce gelenin çalışıp bitmesini beklemeden arka arkaya okutulup disk üzerinden sıra ile çalışmayı beklemelerinin sağlanması idi. Bu olanağa “SPOOLİNG” (Simultaneous Peripheral Operation On Line) adı verilmiştir. Spooling tekniği, yazıcı gibi paylaşımlı kullanıma uygun olmayan ünitelerin kullanıcılar tarafından hiç beklemeksizin kullanabilmelerine olanak sağlamıştır.

Örneğin var sayalım ki, aynı bir yazıcıda yazılmak üzere aynı anda 3 farklı kullanıcı programı tarafından 3 tane çıktı gönderilse ne olur? Eğer işletim sistemi ve onun kaynakları yöneten fonksiyonları olmasaydı, kağıt üzerinde ilk 5 satır mesela 1. kullanıcının, sonraki bazı satırlar 2. kullanıcının ve diğer bazı satırlar da 3. kullanıcının olurdu ki bu tam bir kaos yaratırdı. İşte işletim sistemi örneğin sahip olduğu Spooling mekanizması sayesinde bu kullanıcılar tarafından gönderilen işleri disk üzerinde sıra ile biriktirir ve yazıcı ünitesinden de sıra ile birbirine karışmadan yazdırır.

Özet olarak Spooling;

1. Paylaşımlı kullanıma uygun olmayan çevre ünitelerinin, kullanıcılar arasında birbirlerini beklemelerine gerek olmaksızın paylaşıyorlarmış gibi kullanmalarını sağlar.
2. Hız bakımından birbirinden çok farklı üniteleri arasındaki bilgi transferinin etkin bir şekilde yapılabilmelerini sağlar.

Yine üçüncü nesil bilgisayarlarla gelen diğer bir özellik zaman paylaşımıdır (Time-Sharing). Bu yazılım teknolojisi ile de, aynı anda çok sayıda kullanıcının terminalleri başındayken çalıştırdıkları işlere yada terminal vasıtası ile olmasa da sistem üzerinde yığın işlem “Batch Processing” olarak çalıştırılan işlere CPU’ nun sıra ile ve kısa sürelerle tahsis edilmesi sağlanabilmiştir. Bu sayede hem sistemde çalıştırılan işlerin hepsi CPU’ yu kısa aralıklarla kullanabilmiş olmakta, hem de sistemde çalışan örneğin ekran başında oturan kullanıcılar CPU’ nun yalnızca kendilerine servis verdikleri hisisne sahip olurlar.

Dördüncü Nesil İşletim Sistemleri (1980-….)

LSI (Large Scale Integration circuits) entegre devrelerinin gelişmesi ile ve binlerce transistörü ihtiva eden chiplerin 1 cm2 üzerine yerleştirilmesi ile kişisel bilgisayar (PC; Personal Computer) devri doğmuş oldu.

O dönemdeki kişisel bilgisayarlar mimari bakımından mini bilgisayarlardan farklı olmamakla beraber, fiyatı bakımından çok daha ucuzdular. PC’ lerin gelişmesi ve bunlar üzerinde çalışabilecek yazılımların, hiç bilgisayar bilgisi olmayan kişiler tarafından da kullanılabilir olması bu nesil bakımından evrim olmuştur. Bu nesilde iki tane işletim sistemi sektöre hakim olmuştur. Bunlardan bir tanesi Ms-Dos, diğeri de Unix’ dir.

1980′ li yılların ortalarında ilginç bir teknolojik yapılanmada başlamıştır. PC’ lerin Ağ İşletim Sistemleri (Network Operating System) ve Dağıtık İşletim Sistemleri (Distributed Operating System) ile kullanılmaya başlamasıdır.

Bir ağ işletim sisteminde, kullanıcılar ortamda çok sayıda bilgisayarın mevcut bulunduğunun farkında olurlar ve aynı zamanda uzaktaki başka bilgisayarlara Uzaktan Bağlanma (Remote Login) olabildikleri gibi dosyalarını bir bilgisayardan diğerine kopya edebilirler. Ağ işletim sistemindeki, en önemli özelliklerinde biri de, her makinanın kendi yerel işletim sistemi tarafından işletilmesi ve her makinenin kendi kullanıcılarına sahip olmasıdır.

Dağıtık işletim sistemlerin de, bunun tersine, gerçekte ortamda çok sayıda CPU, olduğu halde, ortamın kullanıcıya sadece geleneksel tek işlemcili gibi görünmesidir. Bir gerçek dağıtık sistemde, kullanıcılar programlarının nerede çalıştırıldığının ve dosyalarının nerede yerleşmiş olduğunun farkında olmazlar. Bu işlemlerin hepsi otomatik olarak ve etkin olarak işletim sistemi tarafından gerçekleştirilir.

Türleri ve Terimleri
Gerçek Zamanlı
Gerçek zamanlı işletim sistemi, gerçek zamanlı uygulamaları çalıştırmayı amaçlayan çok görevli bir işletim sistemidir. Gerçek zamanlı işletim sistemleri genellikle özel zamanlama algoritmalarında kullanılır böylece doğanın deterministik bir davranışını elde edebilirsiniz. Gerçek zamanlı işletim sistemlerinin ana teması olaylara hızlı ve tahmin edilebilir bir tepki vermesidir. Ayrıca gerçek zamanlı işletim sistemlerinde olay güdümlü veya zaman paylaşımlı bir tasarım vardır. Öncelikli olarak görevleri arasında bir olaya dayalı sistem anahtarları, zaman paylaşımlı işletim sistemlerinin saat kesmelerine dayalı görevlere geçiş yapar.

Gerçek Zamanlı işletim sistemlerine örnek olarak, QNX gösterilebilir.

Çok kullanıcılı ve Tek Kullanıcılı
Çok kullanıcılı işletim sistemi birden fazla kullanıcının aynı anda tek bir bilgisayar sistemine erişmesini sağlar. Bu sistem, zaman paylaşımı yoluyla bir bilgisayara birden çok kullanıcı erişimi sağladığı için zaman paylaşım sistemli çok kullanıcılı sistemler olarak sınıflandırılabilir. Çok kullanıcılı bir işletim sistemine karşı tek kullanıcılı işletim sistemleri, bir seferde tek bir kullanıcı tarafından kullanılabilir. Bir Windows işletim sisteminde birden fazla hesap için birden çok gerçek kullanıcı yoktur. Yerine, sadece ağ yöneticisi gerçek kullanıcıdır. Ama Unix benzeri bir işletim sistemi için, bu iki kullanıcı bir kerede giriş yaparak OS özelliği ile birçok kullanıcılı işletim sistemi yapmak mümkün.
Çoklu Görev ve Tek Görev
İşletim sistemi aynı anda birden fazla görevi yerine getirilmesini sağlayan ise bu sistemde tek bir programın aynı anda çalışmasına izin verildiğinde, sistem, tek bir görevi sistemin altında gruplandırılır. Bu tür sistemler bir Çoklu-görev işletim sistemi olarak sınıflandırılır yani çoklu görev, iki tip ön veya kooperatif davranarak olabilir. Önleyici çoklu-görev, işletim sistemi işlemcide her program için bir yuva dilim ve zaman ayırıyor. Unix-Solaris gibi işletim sistemleri ve Linux desteği gibi önleyici çoklu-görev.Çoklu-görev, kooperatif tanımlanmış bir şekilde, diğer işlemler için zaman tanımak amacıyla, her işleme dayanarak elde edilir. Windows 95 kooperatif çoklu görev desteği için örnek gösterilebilir.
Dağıtılmış
Bir dağıtık işletim sistemi bağımsız bir bilgisayar grubunu yönetir ve onları tek bir bilgisayarda görünmesini sağlar. Bu bağlı olabilir ve birbirleriyle iletişim ağına bağlı bilgisayarların gelişimine dağıtık bilgisayar yol açmıştır. Dağıtık hesaplama birden fazla makine üzerinde yapılmaktadır. İşbirliğiyle bir grup çalışması içinde bilgisayarlar yaptığınızda, bir dağıtık sistem yaparsınız.
Gömülü
Gömülü işletim sistemlerinde gömülü bilgisayar sistemlerinde kullanılmak üzere tasarlanmıştır. Daha az özerkliğe sahip PDA’lar gibi küçük makinelerde çalışacak şekilde tasarlanmıştır. Bu sistemlerin kaynakları sınırlı sayıda faaliyet gösterir. Bu sistemlerin tasarımı son derece verimlidir ve bu sistemlerde çok kompakt vardır. Windows CE ve Minix 3 gömülü işletim sistemlerinin bazı örneklerdir.

Bir işletim sistemi, kavramsal olarak, üç grupta toplanabilecek bileşenlerden oluşur: kullanıcı arayüzü (bu bir grafik kullanıcı arayüzü ve/ya da komut satırı yorumlayıcısı [“kabuk” da denir] olabilir), alt düzey sistem işlevleri, ve bir çekirdek. Çekirdek, işletim sisteminin kalbidir. Adından da anlaşılabileceği gibi, “kabuk”, çekirdeğin çevresini sararken, donanımla iletişim kurmak da çekirdeğin işidir.

Kimi işletim sistemlerinde kabuk ve çekirdek tümüyle ayrı bileşenlerken, kimilerinde bu ayrım yalnızca kavramsaldır.

Çekirdek tasarımları, yekpare (monolithic) çekirdekler, mikro-çekirdekler ve ekzo-çekirdekler olarak üç ana gruba ayrılabilir. UNIX ve Windows +Ms dos gibi geleneksel ticari sistemler ve Linux gibi daha yeni yaklaşımlar monolitik çekirdek kullanırken, QNX, BeOS, Windows NT gibi yeni sistemlerin çoğu mikroçekirdek yaklaşımını kullanır. Araştırma amacıyla geliştirilen işletim sistemlerinin çoğu da mikro-çekirdek kullanırlar. Ekzo-çekirdekler ise henüz araştırma aşamasındadır.

 

Yorum bırakın