Linux Nedir? Nasıl Ortaya Çıkmıştır?
Linux bir işletim sistemi değil, çekirdektir. Bu ve bunun gibi yanlış/eksik bilinen bazı temel kavramlar vardır. Bu yazımızda Linux’tan bahsedeceğiz |
LİNUX NEDİR, NASIL ORTAYA ÇIKMIŞTIR?
Merhabalar, bu yazımızda Linux’tan bahsedeceğiz. Birçoğumuz Linux’u bir işletim sistemi olarak biliriz. Oysa Linux bir işletim sistemi değil, çekirdektir. Bu ve bunun gibi yanlış/eksik bilinen bazı temel kavramlar vardır. Bu yazımızda genel olarak Linux ve Linux’un ortaya çıkma sürecini inceleyeceğiz. Konuya direk girmek yerine biraz daha geniş bir çerçeve çizmek daha doğru bir yaklaşım olacaktır.
Dünyadaki ilk sayısal bilgisayar 1940’lı yıllarda geliştirilen ENIAC’tır. İlk sayısal bilgisayarın tasarımında ve kullanılmasında görev alan kişilerin çok büyük bir bölümü hem donanım hem de yazılım noktasında aktif olarak görev almaktaydı. İlerleyen süreçte geliştirilen donanımların sağlıklı bir şekilde çalışmasını sağlamak için uygun yazılımlara ihtiyaç duyulmuştur. Yani donanım ile yazılımcıların farklı ekiplerden oluşması gerektiği gerçeği ortaya çıkmıştır. Bu yaklaşımın neticesinde kısa süre içerisinde birçok yazılım üretilmiştir. Kuşkusuz bu yazılımların en önemlileri sistem yazılımları yani bilgisayardaki donanımlara iş yaptıran yazılımlardır. Sistem yazılımlarına en güzel örnek birçoğumuzun bildiği, kullandığı işletim sistemleridir (GNU/Linux Ubuntu, Windows 7, Mac OS gibi). Konuya devam etmeden önce birkaç cümle ile işletim sistemlerinin tarihçesi hakkında biraz bilgi verelim. İşletim sistemleri genel olarak beş nesil olarak kategorize edilir. Bunlar;
- birinci nesil işletim sistemleri (1945-1955)
- ikinci nesil işletim sistemleri (1955-1965)
- üçüncü nesil işletim sistemleri (1965-1980)
- dördüncü nesil işletim sistemleri (1980-….)
- beşinci nesil işletim sistemleri (2001- …)
şeklindedir. Her bir neslin kendine özgü ön plana çıkan özellikleri vardır. Bizler bu yazımızda Linux’tan bahsedeceğimiz için diğer ayrıntılara pek değinmeyeceğiz. Linux kavramını doğru bir şekilde anlamak için Linux’un babası olarak kabul edebileceğimiz Unix işletim sistemine bakmalıyız.
1969 yılında AT&T’nin Bell Laboratuvarlarında yeni bir İşletim sistemi geliştirildi. Bu İşletim Sistemi birden çok kullanıcıya destek verecek şekilde tasarlanmıştı. Bu işletim sistemi daha sonraları UNIX olarak bilindi. UNIX orjinal olarak Assembly dili (makine diline çok yakın bir dil) ile yazılmıştı. Unix başlangıçta tamamen bilgisayar programlarının yazılmasında kullanılan alt seviyeli bir çevirme dilinde yazılmıştı. Daha sonra 1973 te Dennis Ritche tarafından C programlama diliyle tekrar yazıldı. Bunun neticesinde Unix bugünkü işletim sistemlerinde de var olan birçok yeni özelliğe kavuştu. Artık Unix sadece programcılara değil normal kullanıcılara da hitap ediyordu.
Çok geçmeden Unix’in lisanslanması ile ilgili bazı sorunlar ortaya çıkmaya başladı. Bunun neticesinde artık Unix işletim sistemini kullanmak için belirli miktarda lisans ücreti ödemek gerekiyordu. Birçok Unix kullanıcısı hem lisans ücreti ödememek için hem de kendi işletim sistemini yazmak amacıyla kolları sıvamaya başladı. Elbette bu başlangıcın çok önemli dinamitlerinden bir tanesi de Unix’in paralı hale gelmesinden dolayı ortaya çıkan tepkiydi.
Richard Stallman
Birçok araştırma merkezi, üniversite kendi işletim sistemini yazmaya başladı. Bu işletim sistemlerinin çok büyük bir bölümünün temel özelliği Unix kodlarını kullanması yani Unix türevi olmalarıdır. Bu benzerlik ortaya çıkarılan birçok işletim sisteminin kendine özgü yeni özellikler getirememesinden dolayı kısa süre içerisinde piyasadan silinmesine neden olmuştur.
Kendi işletim sistemini yazmak amacıyla kolları sıvayan kişilerden birisi de Richard Stallman’dır. Stallman 1983’de, Unix-benzeri işletim sistemi oluşturmak amacıyla işletim sistemi çekirdeği (kernel) hariç bir işletim sistemi için gerekli olan tüm yazılımları içeren dev bir özgür yazılım koleksiyonu olan GNU Projesi’ni hayata geçirmiştir. 70’lerin sonu ve 80’lerin başında MIT’de AI (Yapay Zeka) konusunda çalışmalar yaptığı sırada mesai arkadaşlarının geliştirdikleri yazılımların kaynak kodlarını ticaret amacıyla kapatmalarına karşı isyanı bugüne kadar devam etmektedir. Stallman’a göre yazılım kodlarının gizlenmesi beraberinde birçok sorunu getirmekteydi. Bunlardan en çok yaşananı, bir firma veya şahsın açık kaynak kodlu bir yazılımı alıp birkaç değişiklik yaptıktan sonra kaynak kodunu kapatarak ticari amaçla kullanmasıydı. Böylesi bir döngü dünyadaki tüm geliştirilen yazılımların zamanla kapalı kaynak haline gelmesine yol açabileceği için Stallman MIT’deki hacker faaliyetlerini ve enerjisini, açık kaynak kodlu yazılım savunuculuğuna yöneltmiştir. Burada önemli bir kavramı netleştirmemiz gerekmektedir. GNU’nun açılımı, ‘GNU is Not Unix’tir. Yani GNU, ‘GNU, Unix değildir’ anlamına gelmekte olan özyinelemeli (rekürsif) bir kelimedir.
1990’lı yılların başında GNU projesi iyice büyümüş farklı ihtiyaçları karşılayabilecek çok sayıda yazılı içeren bir ekosistem haline gelmiştir. Bu projenin en önemli eksiği ise daha önce de bahsettiğimiz gibi çekirdek (kernel)’dir. Çekirdek bir işletim sisteminin en önemli bölümüdür. Bir işletim sisteminin yeteneklerini belirleyen en önemli bölüm çekirdektir. Çekirdek fiziksel donanımların (ana kart, işlemci, RAM vb.) kontrol edilmesini sağlar. Aslında 1990’lı yıllara gelindiğinde GNU projesi için çok sayıda çekirdek yazılmış fakat bu çekirdekler yetersiz görülmüştür.
GNU projesi ile birlikte ortaya çıkan GNU OS’un çekirdek sorunu çözmek için birçok çalışma yapılmıştır. Bu çalışmalardan bir tanesi de Helsinki Üniversitesinde öğrenci olan Linus Torvalds tarafından yapılmıştır. Linus Torvalds, Andrew S. Tanenbaum tarafından geliştirilen Minix işletim sisteminin ihtiyacını karşılayamaması üzerine bu sisteme eklemeler yapmak için geliştirmeye başlamış ancak yazmaya başladığı programı zamanla Unix tarzında kişisel bilgisayarlarda çalışabilecek bir işletim sistemi çekirdeğine dönüştürmüştür. İsim olarak Linus kelimesindeki ‘s’ harfini ‘x’ ile değiştirmiş yani çekirdeğe Linux adını vermiştir. Linux çekirdeği kısa bir süre içerisinde hızla büyümüştür. Linux, GNU projesinin en önemli eksiği olan çekirdek sorununa çözüm getiriyordu. Bunu gören Richard Stallman ve GNU projesi çekirdek olarak Linux’u kullanmaya başladı. Böylece artık GNU projesinin yeni adı GNU/Linux olarak değişmişti. Artık ortada on binlerce yazılıma sahip bir proje (GNU), son derece gelişmiş özelliklere sahip bir çekirdek (Linux) vardı. Yani un var, yağ var, şeker var hadi o zaman helva yapalım misali birçok kurum, üniversite, araştırma merkezi ve bilgisayar kullanıcısı kendi ihtiyaçlarını giderecek işletim sistemlerini yazmaya başladılar. Kısa bir süre içerisinde piyasaya çok sayıda GNU/Linux tabanlı işletim sistemi çıkmıştır. Şu anda piyasada GNU/Linux tabanlı 350’nin üzerinde işletim sistemi vardır. http://www.distrowatch.com/ sitesinde popüler dağıtımların birçoğu ile ilgili ayrıntılı bilgiye ulaşabilirsiniz. Günümüzde ön plana çıkan GNU/Linux tabanlı işletim sistemlerinden bazıları şunlardır: Debian, Redhat, Ubuntu, Suse, CentOS, Fedora, Pardus .
Buraya kadar genel bir özet yapıp ayrıntıları bir şekle dökecek olursak karşımıza aşağıdaki gibi bir yapı çıkacaktır.
Burada iki noktayı açıklamakta fayda vardır. Birincisi yukarıda saydığımız işletim sistemlerinin tam isimleri GNU/Linux Dağıtım-Adı şeklinde olmalıdır. Örneğin GNU/Linux Debian gibi. Fakat bu isimlendirme yapısı gerek kullanıcılar arasında gerekse de geliştiriciler arasında pek rağbet görmez. Bunun yerine birçok kullanıcı ya sadece dağıtımın adını tercih eder (Ubuntu, Pardus gibi) ya da Linux Ubuntu, Linux Pardus gibi bir isimlendirmeyi tercih eder. Bu isimlendirme tercihlerinde açık kaynak kod felsefesini başlatan GNU kelimesinin tercih edilmemesi biraz ilginçtir. Richard Stallman bu konu ile ilgili rahatsızlığını birçok konuşmasında dile getirmiş ve dile getirmeye de devam etmektedir.
İkincisi ise ülkemizde de GNU/Linux işletim sistemi ile ilgili bazı çalışmalar yapılmış ve bu çalışmalar halen devam etmektedir. Bu çalışmalardan en önemlisi TÜBİTAK tarafından geliştirilen GNU/Linux Pardus işletim sistemidir. Pardus ile ilgili birçok bilgiye http://www.pardus.org.tr/ sitesinden ulaşabilirsiniz.
Son olarak genel bir özet yapacak olursak; ilk sayısal bilgisayar 1945’li yıllarda geliştirilen ENIAC’tır. ENIAC’ın geliştirilmesi ile birlikte bilgisayar dünyasında hızlı bir gelişim süreci başlamıştır. İlerleyen süreçte donanım kadar yazılım da popüler hale gelmeye başlamıştır. Bunun neticesinde 1970’li yıllarda Unix yazılmıştır. Daha sonra Unix C dili ile yeniden yazılarak birçok özellik eklenmiştir. İlerleyen dönemlerde Unix işletim sisteminin lisanslanması süreci başlamıştır. Bunun neticesinde birçok birey, kurum, üniversite ihtiyaçlarını karşılamak amacıyla kendi işletim sistemlerini yazmaya başlamıştır. Diğer taraftan yazılımların tamamen açık kaynak kodlu olması gerektiğini düşünen Richard Stallman GNU projesini başlatmıştır (1983). GNU projesinin neticesinde GNU OS ortaya çıkmıştır. Bu işletim sisteminin çekirdeği (kerneli) oldukça yetersizdir. Bu eksiklik 1991 yılında Linux Torvalds’ın yazdığı Linux çekirdeği ile giderilmiştir. Böylece GNU/Linux projesi ortaya çıkmıştır. Farklı ihtiyaçları karşılamak amacıyla farklı dağıtımlar geliştirilmiştir. Bu dağıtımlardan bir tanesi de TÜBİTAK bünyesinde geliştirilen milli işletim sistemi GNU/Linux Pardus’tur.
Bir sonraki yazımızda GNU/Linux dağıtımlarından birisinin (Pardus veya Ubuntu) kurulumuna değineceğiz.
Özgür yazılım, açık kaynak kod yazılım, GPL kavramları ile ilgili biraz araştırma yapmak yukarıda bahsettiğimiz konuların daha net anlaşılmasına yardımcı olacaktır.
Bir sonraki yazıda görüşmek üzere…
Fevzi Daş
Bilgisayar Uzmanı
fevzidas@gmail.com