GNU / LINUX

Özgürlük sizce nedir ? Sadece insanlar ve hayvanlar için kullanılan bir kavram mıdır. Yoksa başka şeyler için de özgürlük kullanabilir miyiz.

Emin olun bunu ilk düşünen siz değilsiniz. 1970’lerde MIT yapay zeka laboratuvarında sistem hacker* olarak görev yapan Richard Stallman o’zamanlar ofislerinde kullanmış oldukları yazıcılarının istedikleri özellikleri teknik olarak karşılayabileceği lakin yazılımsal olarak yetersiz olduğunu düşünmektedir. Bunun üzerine yazıcının kaynak kodunu istemiştir. Lakin bu kaynak kodunun gizlilik anlaşması olduğunu paylaşamayacağını söylemişlerdir. Tabi bu o’zamanlar için oldukça nadir rastlanan bir durum. İnternet altyapısının dünyada yaygın olmadığı programcılar geliştirdikleri kodları birbiriyle takas ettikleri yazdıkları kodları kendi kutuphanelerinde tuttukları yıllardan bahsediyoruz. O zamanlar programcılar kendilerini geliştirmek için yazılan bir programın derlenmemiş “source code” haliyle birlikte vermekteydi. Bu hem programcıları geliştirmekte hemde programın eksik veya ek özellik eklemek istediğinde kolayca müdahale edilmesini sağlamaktadır. 

1980’lerin başlarında YZ Laboratuvar kullanılan PDP-10 sisteminin yetersiz kalmasıyla 1982 yılında yeni bir PDP-10 satın alınmış. Lakin bu satın alınan PDP-10 ITS zaman paylaşım sistemi yerine sahipli bir zaman paylaşım sistemi kullanmaya karar vermiş. Bu tabi bu sahipli yazılımı kullanmak için bir gizlilik sözleşmesi imzalamak gereklidir. Bu, bir bilgisayarı kullanımında ki ilk şartın komşunuza yardım etmemek anlamına geliyordu. Özel mülk yazılım sahiplerinin ortaya koydukları şart şuydu:” Komşu İle bilgi paylaşırsanız siz bir korsansınız.Herhangi bir değişiklik isterseniz, bu değişikliği yapılmasını bizden rica edin.”

Bunun üzerine Richard bu gizlilik sözleşmesini imzalamanın daha önce yazıcıyla ilgili kaynak kodu istediğinde yaşamış olduğu durumun başka yazılımcılara yapan kişi olacağını düşündü. Bunun üzerine yapılacak iki şey vardı. Bir bu sözleşmeyi kabul edip kod geliştirmeye devam edecek lakin mesleğine ve kendine olan saygısını yitirecektir. Diğer seçenek ise kod geliştirmeyi bırakıp farklı bir mesleğe yöneliktir. Buda bilgilerini yine kendine saklamak olacaktır. Bundan başka ne yapabileceğini düşünmeye başladı. Yapılacak bir şeylerin daha olması gerekmektedir. Bunun üzerine yeni bir işletim sistemi yazıp bunu diğer yazılımcılarla paylaşıp bir topluluk elde etmeye karar verdi. Bu sayede insanlar yazdıkları programları istedikleri gibi kullanabilecek eğer isterlerse diğer kişilerle paylaşabilecekler. Bunun üzerine geliştirilecek sistemin UNIX benzeri bir yapıya sahip olması gerekmekteydi. Çünkü unix sistemleri kullanan birileri rahatlıkla bu yeni işletim sistemine geçebilirdi. Bunun üzerine hacker geleneğine bağlı olarak GNU ismini koydu. GNU’s Not Unix

Ve aklına şu sözler geldi.

“Ben kendim için değilsem, benim için olacak kimdir? Ben yalnızca kendim içinsem, ben neyim? Şimdi değilse, ne zaman?”

Açık Kaynak ve Özgür Yazılım Fark

İngilizcede “FREE” kelimesinin yaklaşık 20 anlamı yer almaktadır. Bu anlamlardan sadece bir tanesi “ÜCRET” anlamına gelirken diğer kelimeler “ÖZGÜRLÜĞÜ” ifade etmektedir. Bu nedenle olacaktır ki insanlar özgür yazılım dediğinde ücretsiz yazılım anlamaktadır. Ve bu ingilizce için büyük bir anlam karışıklığına yol açmaktadır. Lakin türkçe de bu şekilde bir anlam ifade etmemektedir.İki terim neredeyse yazılımın aynı kategorisini tanımlamaktadır, ancak temel olarak farklı değerleri taban alan farklı görüşlere dayanırlar. Özgür yazılım hareketi için, özgür yazılım etik bir zorunluluktur, çünkü sadece özgür yazılım kullanıcıların özgürlüğüne saygı duyar. Farklı olarak, açık kaynak felsefesi sadece pratik anlamda yazılım nasıl daha “iyi” yapabiliriz konusunu önemser. Özgür olmayan yazılımın eldeki pratik problem için değersiz bir çözüm olduğunu söyler.

“Özgür yazılım” ve “açık kaynak” terimi neredeyse aynı program aralığını ifade eder. Ancak bu programlar hakkında farklı değerlere dayalı derinden farklı şeyler söylüyorlar. Özgür yazılım hareketi, bilgisayar kullanıcıları için özgürlük için kampanyalar; özgürlük ve adalet için bir harekettir. Aksine açık kaynak fikri temel olarak pratik avantajlara değer verir ve ilkeler için kampanya yapmaz. Bu nedenle açık kaynak ile aynı fikirde değiliz ve bu terimi kullanmıyoruz.

Richard Stallman

Özgür Yazılım İlkeleri

“Özgür yazılım”, kullanıcıların özgürlüğüne ve topluluğa saygı duyan yazılım demektir. Kabataslak, kullanıcıların bir yazılımı çalıştırma, kopyalama, dağıtma, çalışma, değiştirme ve geliştirme özgürlüğüne sahip olduğu anlamına gelir.

  • Herhangi bir amaç için, istediğiniz şekilde yazılımı çalıştırma özgürlüğü (0 numaralı özgürlük).
  • Her ne istiyorsanız onu yaptırmak için programın nasıl çalıştığını öğrenmek ve onu değiştirme özgürlüğü (1 numaralı özgürlük). Yazılımın kaynak koduna ulaşmak, bu iş için ön koşuldur.
  • Kopyaları dağıtma özgürlüğü, böylece başkalarına yardım edebilirsiniz (2 numaralı özgürlük).
  • Değiştirilmiş sürümlerinizin kopyalarını dağıtma özgürlüğü (3 numaralı özgürlük). Böylece değişikliklerinizden yararlanması için tüm topluma bir şans vermiş olursunuz. Kaynak koduna erişmek, bunun için bir ön koşuldur.

Projenin Başlatılması Ve İlk Adımlar

1984 yılında MIT görevinden istifa eder. Çünkü MIT çatısında çalışırken geliştirdiği işletim sistemi teknik olarak MIT ait olabilirdi. Buda özgür yazılım fikrini ilk aşamada baltalamak anlamına gelmekteydi. İşten ayrılırken o zamanlar MIT yöneticisi olan profesör Winston üstü kapalı bir şekilde burda çalışırken de geliştirebileceğini söyler lakin bunu kabul etmeyip ayrılır. Projeyi yazmaya başlar. İlk zamanlar insanlardan bir band ve SASE gönderin size içersine yeni yazdığım Emacs olacak şekilde geri göndereyim der. Lakin bu sürede işsiz olmasından dolayı projenin finanse edilmesi gerekmektedir. Bunun üzerine isteyen kişilerden 150 dolar karşılığında gönderebileceğini belirtir. Bunun üzerine özgür yazılım dağıtım işine başlamıştır.

Copyleft ve GNU GPL

GNU’nun hedefi yalnızca populer bir yazılım olmak değil kullanıcılara özgürlük sağlamaktadır. Bu nedenle özel mülk yazılımına dönüştürülmesine karşın bir dağıtım terimi kullanılması gerekmektedir. Kullanılan yöntem copyleft yöntemidir.

Copyleft, telif hakkı kanununu kullanır ancak genel amacının tersine hizmet etmesi için tersine çevirir: Yazılımı özel hale getirmek yerine, yazılımı özgür tutmanın bir yolu haline gelir. Copyleft’in temel fikri, herkese programı çalıştırma, değiştirme, değiştirilmiş sürümleri dağıtma hakkını vermek, ancak özel kısıtlamalar ekleme iznini vermemektir. Bu nedenle, “özgür yazılımı” tanımlayan önemli özgürlükler, yazılımın kopyasına sahip herkes için mevcuttur; bu geri alınamaz bir haktır. Etkin bir copyleft için, değiştirilmiş sürümler de özgür olmalıdır. Bu, yayınlanırsa, bizimkileri esas alan çalışmaların, topluluğumuz için erişilebilir olmasını sağlar. Programcı olarak çalışan kimseler GNU yazılımını değiştirmek için gönüllü olduklarında copyleft, “Bu değişiklikleri paylaşamazsın çünkü programın özel mülk sürümünü  oluşturmak için bu değişiklikleri kullanacağım” denmesini önler. 

Microsoft başkan yardımcısı Craig Mundie bir açıklamasında; “GPL’nin bu viral yönü, onu kullanan herhangi bir kuruluşun fikri mülkiyeti için bir tehdit oluşturuyor.” ifadesini kullanmıştır.

Beklenmedik Durumlar

Projeye başlanıldığında topluluktaki insanların belirli bir modul geliştirmesi gerekliydi.Buda sağladılar lakin sistem ozaman UNIX sisteminde gerçekleştirildiği için tam bir sistem değildi. İnsanlar geliştirdiğimiz sistemleri kullanmak yerine ellerindeki sistemi bizim yazdığımız programlarla genişletmek için kullanılmaya başladı. Mevcut programcılar yeni modul geliştirmek için harcaması gereken zamanı mevcut modüllerin üzerine ek özellikler ve hataları geliştirmek için kullanıldı. Bu nedenle kısa zamanda tam bir sistem olması gerekmektedir. 

GNU/LINUX

1991 yılına gelindiğinde GNU sistemi hemen hemen tamamlanmıştı. Lakin ellerinde çalışır durumda bir çekirdek yoktu. Bunun üzerine çekirdek arayışına girdiler.

Linux Çekirdeği Nasıl Doğdu

Linus Benedict Torvalds 28 Aralık 1969’da Finlandiya’nın başkenti ve en büyük şehri olan Helsinki’de dünyaya geldi. Ailesi ona ünlü fizik kimyager ve Nobel Ödülü sahibi olan Linus Pauling’in adını verdi. Babası bir radyo gazetecisi annesi ise bir çevirmendi.

Linus, 1988 yılında ailesinin izinden giderek Finlandiya’nın en kaliteli eğitim kurumu olan Helsinki Üniversitesi‘ne kayıt yaptırdı. O zamana kadar bilgisayar programcılığıyla uğraştığı için doğal olarak bilgisayar mühendisliği/bilimleri branşını seçti. Üniversitedeyken çok ciddi yazılım projelerinde görevler aldı. Daha sonraları Linux işletim sisteminin çekirdeğini (kernel) yazacağı C programlama diliyle 1990 yılında tanıştı. 1991 yılında 33Mhz Intel 386 işlemci kullanan ve 4MB’lık hafızaya sahip yeni bir IBM aldı. Bu işlemci, Intel’in önceki çiplerine kıyaslandığında daha iyi bir işlemci ailesinin bir temsilcisiydi. Linus donanımdan memnun olmasına rağmen, bir süre sonra bilgisayarla birlikte gelen MS-DOS işletim sistemi yüzünden hayal kırıklığına uğramıştı. Çünkü bu işletim sistemi 386 çiplerinin gelişmiş yeteneklerini kullanabilmek için yeterince gelişmiş değildi. Daha sonra kendi bilgisayarına üniversitenin bilgisayarlarından aşina olduğu Unix tabanlı bir işletim sistemi kurmaya karar verdi. Fakat aradığı sürümler çok pahalıydı ve aradığını bulamadı. En sonunda MINIX‘i tercih etti.

MINIX, işletim sistemi uzmanı Andrew Tanenbaum tarafından Hollanda’daki üniversite öğrencilerine UNIX’i öğretmek amacıyla yazılmış bir işletim sistemiydi. MINIX kullanmaya başlayan Linus Torvalds, üniversitenin UNIX sistemine ve internete bağlanmak için kullandığı terminal 17 Eylül 1991 tarihinde, Linux’un ilk sürümü olan 0.01’i internette yayınladı. Linus Torvalds geliştirmekte olduğu bu işletim sistemine önceleri Linux (Linus’un Minix’i) adını vermeyi düşündü fakat bunun çok egoist bir davranış olacağına karar vererek sonradan free (özgür), freak (garip, acayip) ve Minix’in karışımından oluşan bir kelime olan Freax’ta karar kıldı. Fakat arkadaşı Lemmke, FTP’de Linux adı altında bir dizin oluşturmuştu bile. Bu yüzden sistemin adı Linux olarak yayıldı.

Lakin Linux yazmış olduğu sistemin bir lisans olması gerektiğinin farkındaydı bu nedenle lisan için GNU GPL lisans dağıtmaya karar verdi. 1992 yılında GNU ile Linux çekirdeğinin birleşmesiyle tam bir sistem halini almıştır. Şuan yaygın olarak kullanılan “Linux” tabiri yalnıştır. Eğer bir CD-ROM dağıtıcı olsanız sistemi oluşturan kodların %28’nin tekil kullanıcı guruplarının oluşturduğunu görmektesiniz. Bunun sadece %3 lük dilimin linux çekirdeğinin olduğunu görebilirsiniz.Bu nedenle GNU / Linux olarak ifade etmek daha doğrudur.

Niçin Bilgisayar Kullanıcıları Karda Olacaktır

Yazılımlara GPL lisansı altında sahip olabileceklerdir. Yazılımla ilgili yardıma ihtiyac duyduklarinda sadece bir firmanın tekelinde olmaktan kurtulmuş olacaklardır. İstedikleri değişikliği kendi veya bir programcıya yapılabilecektir. Buda yazılımın hava gibi ücretsiz bir şekilde kullanılmasını sağlayacaktır.

Nihayi Hedef

Nihai hedef; bilgisayar kullanıcılarının yapmak istediği tüm işleri yapması için özgür yazılım sağlamak, ve böylece özel mülk yazılımı geçmişte bırakmaktır.

Kaynaklar

Read More