Unix’in Doğuşu

Bu yazımızda Unix’in ve kökeninin bir bayt boyutundaki tarihine kısaca bir göz atıyoruz.

İlişkili: Unix ve Linux Arasındaki Fark Nedir?

(En azından) Linux veya herhangi bir biçimde BSD’yi on yıldan uzun süredir kullanan kullanıcılarda, Unix’in hep var olduğu hissi uyanır.

Unix’in idealleri hem Linux’un, hem de macOS’un temelini oluşturuyor.

Unix’in modern bir sürümü (FreeBSD) binlerce sunucuda kullanılırken, Linux, süper bilgisayar endüstrisiyle birlikte sunucu alanına hükmediyor.

Unix’in orijinali(kendisi) tarih olsa da, Linux’u ve daha fazlasını başlatarak önemini korumaya devam ediyor.

Ancak, en başta inişli çıkışlı bir başlangıcı oldu ve gizlice geliştirilmesi gerekiyordu.

Delikli Kartlar ve Multics

Bilgisayarların kocaman bir odayı kapladığı günlerde, onları kullanmanın ana yöntemi delikli kart arayüzüydü. Bilgisayarlar bir işletim sistemiyle gelmiyordu, içlerinde yerleşik bir programlama dili vardı. Bir programı çalıştırmak istiyorsanız, programınızı ve verileri bir dizi delikli karta girmek için bir cihaz kullanmanız gerekiyordu.

Unix yaratıcılarından biri olan Brian Kernighan, kendisi ile yapılan bir röportajında şöyle demişti:

“Yani 1.000 satırlık bir programınız olsaydı, 1.000 kartınız olurdu. Ekranlar veya etkileşimli çıktılar olmazdı. Kartlarınızı bilgisayar operatörüne verirdiniz ve programınızın sonucu olan çıktıyı beklerdiniz.”

O zamanlar, bilgisayarlardan gelen tüm metin çıktıları büyük harfle yazılırdı. Kernighan, tezinin biçimlendirmek için bir uygulama yazdı.

“Tez temelde üç kutu karttan oluşuyordu. Her kutuda 6.000 kart vardı ve muhtemelen 10, 12 pound (5kg) ağırlığındaydı. 1.000 kartın ilk kutusunun ilk yarısı programdı. Kalan 5.000 kart tezdi. Bu üç kutuyu alır ve operatöre verirdiniz. Bir, iki veya üç saat sonra tezin basılı bir versiyonu gelirdi.”

1950’lerin sonlarında, AT&T(Bell Labs’ın finansörü), Massachusetts Teknoloji Enstitüsü ve General Electric, bilişimde devrim yaratmak ve onu delikli kartların ötesine taşımak için bir proje oluşturdu.

Projeye Multics veya “Çoklu Bilgi ve Bilişim Hizmeti” adı verildi. Projenin planlarını ortaya koyan makaleye göre, dokuz ana hedef vardı:

  • Rahat uzak terminal kullanımı.
  • Sürekli çalışma.
  • Sistem veya kullanıcı programı yeniden düzenlenmesi olmadan değiştirilebilen çok çeşitli sistem yapılandırmaları.
  • Yüksek güvenilirlikli dahili dosya sistemi.
  • Seçici bilgi paylaşımına destek.
  • Sistem yönetimi ve kullanıcı faaliyetlerinin merkeziyetsizleştirilmesi için hiyerarşik bilgi yapıları.
  • Çok çeşitli uygulamalara destek.
  • Birden fazla programlama ortamı ve insan arayüzüne destek.
  • Teknolojideki ve kullanıcı isteklerindeki değişikliklerle sistemi geliştirme yeteneği.

Multics, delikli kartlara güvenmek yerine zaman paylaşımlı bir bilgisayar olurdu. Bu, kullanıcıların bir terminal aracılığıyla sisteme giriş yapıp onu belirli bir süre boyunca kullanabilecekleri anlamına geliyordu. Böylece bilgisayarlar gerekli bilgiye sahip herkesin erişebileceği bir şeye dönüştürecekti.

Proje çok iddialıydı. Ne yazık ki fikirleri gerçeğe dönüştürmek hep zaman alır. Bell Labs 1969’da projeden çekildi. Çalışanları için zaman paylaşımlı bir işletim sistemi edinmek amacıyla projeye katılmışlardı ancak çok az ilerleme kaydedilmişti.

Multics’ten çıkarılan dersler, sonunda Unix’in yaratılmasına yardımcı oldu.

Uzay Oyunu

Multics üzerinde çalışan Bell mühendisleri, bir işletim sistemine sahip olamasalar da bir sürü fikirleri vardı. Multics’teki son günlerinde, bir GE-645 ana bilgisayarında, bir işletim sistemi yazmaya başladılar. Ancak daha sonra proje sona erdi ve artık bilgisayara ihtiyaçları kalmadı.

Patronlarına, kendi işletim sistemi projelerini başlatmak için bir mini bilgisayar satın almaları konusunda lobi yaptılar, ancak reddedildiler. Yine de proje üzerinde gizlice çalışmaya devam ettiler. Sık sık bir araya gelip, bir işletim sisteminde ne istediklerini tartışıp, mimari için fikirler çiziyorlardı.

Bu süre zarfında Ken Thompson küçük bir yan proje üzerinde çalışmaya başladı ve GE-645 için Space Travel adlı bir oyun yazdı. Oyun güneş sistemindeki tüm büyük cisimleri ve etraflarında uçabilen bir uzay gemisini simüle ediyordu.

Ne yazık ki onu ana bilgisayarda çalıştırmak pahalıydı. Her oyun oynamak 75 dolara mal oluyordu. Bu yüzden Thompson, oyunu kullanmak için farklı ve daha ucuz bir bilgisayar aramaya başladı. Önceki bir projeden kalan bir PDP-7 mini bilgisayarı keşfetti. Oyunu PDP-7’de çalışacak şekilde yeniden yazdı.

Bu arada ekip, Unix’i PDP-7’de yazmaya devam etti ve bu, Unix’in ilk sürümünün geliştirildiği ilk platform oldu. PDP-11 çalışır duruma geldiğinde ekip, sahip olduklarını yeni sisteme taşıdı. Kısa sürede, yeni patent başvuru yazılımı, patent departmanına tanıtıldı. Çok beğenildi. Yönetim sonuçlardan o kadar memnun kaldı ki, Unix ekibine kendi PDP-11’lerini satın aldılar.

Büyüyen ve Yasal Sorunlar

Daha güçlü bir bilgisayarla Unix üzerindeki çalışmalar devam etti. 1971’de ekip ilk resmi kılavuzunu yayınladı: UNIX Programcı Kılavuzu(Uix Programmer’s Manual).

İşletim sistemi, 1973’teki Bilgisayar Makineleri Derneği sempozyumunda sunulan bir bildiriyle dünyaya resmen tanıtıldı. Bunu, kopyalar edinmek için bir talep seli izledi.

Bu, yeni sorunları gündeme getirdi. Bell Labs’ı finanse eden şirket olan AT&T, hiç bir işletim sistemi satamadı. AT&T, ABD hükümeti tarafından bir rıza kararnamesi kabul etmeye zorlandı.

Bu rıza kararnamesi, AT&T’nin, ülkenin uzun mesafeli telefon hizmetini yürütmedeki yasal tekel statüsü karşılığında, telefonlar ve telekomünikasyonla doğrudan ilgili olmayan ürünleri satmasını yasakladı. Çözüm ise, Unix kaynak kodunu, yalnızca nominal bir ücret karşılığında, isteyen herkese, lisans altında yayınlamak şeklinde oldu.

Rıza kararnamesi ayrıca, AT&T’nin teknik destek sağlamasını da yasakladı.  Bu da, Unix benimseyen kişilerin karşılıklı yardımlaşmak için bir araya gelmesiyle ilk kullanıcı gruplarının oluşmasına yol açtı.

C Programlama Dilinin Yaratılması

Dennis Ritchie’nin Bell Labs’ta C programlama dilini yaratması, Unix’in gelecekteki sürümlerinde ilerleme kaydetmesine yardımcı oldu ve dolaylı olarak BSD ve Linux’un ortaya çıkışını etkiledi.

Ve şimdi Linux, BSD ve Unix benzeri işletim sistemlerinin çeşitli varyantları da dahil olmak üzere birçok programlama dilimiz ve işletim sistemimiz var.

Bir yanıt yazın