Bu, orijinali İngilizce olan bir sayfanın çevirisidir.

GNU Projesi

İlk yazılım paylaşma topluluğu

1971 yılında MIT Yapay Zekâ Laboratuvarında çalışmaya başladığımda, yıllarca varlığını sürdürmüş bir yazılım paylaşım topluluğunun bir parçası haline geldim. Yazılımların paylaşılması özel topluluğumuzla sınırlı değildi; bu, bilgisayar tarihi kadar eskiydi, tariflerin paylaşılmasının aşçılık kadar eski olması gibi. Ancak bunu çok iyi bir şekilde başardık.

YZ Laboratuvarı, zamanın en büyük bilgisayarlarından biri olan Digital PDP-10 için laboratuvar ekibi üstatların [1] tasarladığı ve birleştirici (assembler) dilinde yazdığı ITS (Uyuşmaz Zaman Paylaşımlı Sistem) olarak adlandırılan bir zaman paylaşımlı işletim sistemini kullanmaktaydı. Bu topluluğun bir üyesi, YZ laboratuvar sistem üstadı olarak, benim görevim bu sistemi daha da geliştirmekti.

Yazılımımızı “özgür yazılım” olarak adlandırmadık çünkü o zamanlar bu terim yoktu ancak gerçekte bu özgür yazılımdı. Başka bir üniversiteden ya da firmadan insanlar programımızı almak ve kullanmak istedikleri zaman, buna memnuniyetle izin veriyorduk. Birinin pek bilinmeyen ve ilginç bir program kullandığını görürseniz, her zaman kaynak kodunu görmek istersiniz, böylece kaynak kodunu okur, değiştirir ya da yeni bir program oluşturmak için, parçalayıp başka şekilde birleştirirsiniz.

Topluluğun Çöküşü

1980'lerin başlarında Digital'in PDP-10 bilgisayarı üretiminin sona ermesiyle durum büyük ölçüde değişti. 60larda şık ve güçlü olan mimarisi, 80lerde uygun hale gelen daha geniş adres uzaylarına doğal olarak genişleyemedi. Bunun anlamı ITS'ye yönelik olarak yazılmış olan bütün programların geçersiz hale gelmesiydi.

YZ laboratuvarı zaten çökmüştü. 1981 yılında, Symbolics firması YZ Laboratuvarındaki üstatların hemen hemen hepsini işten çıkardı ve bu topluluk dağıldı. (Steven Levy tarafından yazılan Hackers kitabı bu olayları anlatmaktadır ve ayrıca bu topluluğa ilişkin açık bir tablo sunmaktadır.) YZ Laboratuvarı 1982 yılında yeni bir PDP-10 satın aldığında, yöneticileri, yeni makine üzerinde ITS yerine özgür olmayan bir zaman paylaşımlı sistemi kullanmaya karar verdi.

VAX ya da 68020 gibi zamanın modern bilgisayarları kendi işletim sistemlerine sahipti ancak bu işletim sistemlerinin hiçbiri özgür yazılım değildi: çalıştırılabilir bir kopya elde etmek için, bir gizlilik anlaşması imzalamanız gerekliydi.

Bu, bir bilgisayarın kullanımındaki ilk aşamanın komşunuza yardım etmemeye söz vermeniz olduğu anlamına geliyordu. Bu duruma göre, bir topluluğun işbirliği yapması yasaktı. Özel mülk yazılım sahipleri tarafından ortaya konan kural şuydu: “Komşunuzla bilgi paylaşırsanız siz bir korsansınız. Herhangi bir değişiklik isterseniz, bu değişikliğin yapılmasını bizden rica edin.”

Özel mülk yazılım sosyal sistemi (yazılımı paylaşmanıza ya da değiştirmenize izin vermeyen sistem) anti-sosyaldir, etik değildir, basitçe ifade edilirse yanlıştır, bu durum bazı okuyucular için şaşırtıcı olabilir. Ama toplumu bölen ve kullanıcıları çaresiz bırakan bir sistem hakkında başka ne söyleyebiliriz? Bu fikri şaşırtıcı bulan okuyucular bu özel mülk yazılım sosyal sistemini verildiği gibi almış olabilir ya da özel mülk yazılım işlerinin önerdiği şekilde değerlendirebilir. Yazılım yayıncıları, insanları, bu konuya yönelik tek bir bakış açısı olduğuna inandırmak için uzun ve zorlu bir çalışma yürütmüşlerdir.

Yazılım yayıncıları kendi “haklarını” “dayatmak” veya “korsanlığı durdurmak” hakkında konuştukları zaman, gerçekte söyledikleri şey ikincil öneme sahiptir. Bu ifadelerin gerçek mesajı, ifade edilmeyen varsayımlardadır; insanların üzerine kafa yormadan bunları kabul etmesi beklenmektedir. Şimdi bunları inceleyelim.

Yapılan varsayımlardan biri şudur: Yazılım firmaları yazılımı sahiplenme ve tüm kullanıcıları üzerinde güce sahip olma gibi sorgulanamayan doğal bir hakka sahiptir (Bu doğal bir haksa, o zaman topluma ne kadar zarar verdiği önemli değildir, buna karşı koyamayız.). Amerikan Anayasası ve yasal geleneği bu görüşe karşı çıkmaktadır; telif hakkı doğal bir hak değildir ancak telif hakkı kullanıcıların doğal kopyalama hakkını sınırlandıran ve hükümet tarafından dayatılan yapay bir tekeldir.

İfade edilmeyen başka bir varsayım, yazılım hakkındaki önemli tek şeyin size hangi işleri yapmaya izin verdiğidir, biz bilgisayar kullanıcılarının ne tür topluluklara sahip olmaya izinli olduğumuza aldırmamalıyız.

Üçüncü bir varsayım, bir firmaya programın kullanıcıları üzerinde güç sunmazsak, kullanılabilir bir yazılıma sahip olmayacağımızdır (ya da şu ya da bu belirli işi gerçekleştiren bir programa asla sahip olamayacağımızdır). Özgür yazılım hareketinin üzerlerine zincir vurmadan da çok sayıda yararlı yazılım üretebileceğini göstermesinden önce bu varsayım uygunmuş gibi görünmüş olabilir.

Eğer bu yaklaşımları kabul etmeyi reddedersek ve bu konuları basit bir sağduyu ile, kullanıcıları öncelleyerek irdelersek, çok farklı bir sonuca varırız. Bilgisayar kullanıcıları, ihtiyaçlarına uygun olması için programlarını değiştirme ve yazılımlarını paylaşma konusunda özgür olmalıdır çünkü diğer insanlara yardımcı olmak toplumun temelidir.

Burada bu sonuca varmayı açıklamaya yetecek yer kalmadı, bu yüzden okuyuculara “Yazılımın Neden Sahibi Olmamalıdır” ve “Özgür Yazılım Şimdi Çok Daha Önemli” sayfalarını öneririm.

Yalın Ahlaki Seçim

Topluluğumuzun sona ermesiyle, daha önceki gibi devam etmek mümkün değildi. Bunun yerine, bir yalın ahlaki seçimle karşı karşıya geldim.

Kolay seçenek özel mülk yazılım dünyasına katılmak ve gizlilik anlaşmaları imzalamak ve hacker arkadaşlarıma yardımcı olmamaya söz vermekti. Muhtemel olarak ben de bu gibi anlaşmalara uygun olarak hazırlanan yazılımlar geliştiriyor olacaktım, böylece diğer insanların da hacker arkadaşlarına ihanet etmesine ilişkin baskıyı arttıracaktım.

Bu şekilde para kazanacaktım ve belki de kod yazmaktan da zevk alacaktım. Ama iş hayatımın sonunda, insanları bölmek için duvarlar inşa ettiğim yılları görecek ve yıllarımı dünyayı daha kötü bir yer haline getirmekle geçirmiş olduğumu fark edecektim.

Birileri yazıcımıza ait kontrol programı için kaynak kodunu bana ve MIT YZ laboratuvarına vermek istemediğinde, bir gizlilik anlaşmasının alıcı ucunda olduğumu anladım. (Bu programdaki belirli özelliklerin olmaması yazıcının kullanımını bozmaktaydı.) Bu nedenle, bu gibi anlaşmaların masum olduğunu kendime söyleyemem. Yazıcı programı benimle paylaşılmayınca çok sinirlendim; vazgeçip, arkamı dönüp ben de aynı şeyi bir başkasına yapamazdım.

Kolay olan ancak hoş olmayan başka bir seçenek bilgisayar alanını tamamen bırakmaktı. Böylece yeteneklerim kötüye kullanılmamış olacaktı ama boşa harcanmış olacaktı. Bilgisayar kullanıcılarını bölme ve sınırlama konusunda suçlamayı hak etmeyecektim ama bu, bir şekilde gerçekleşecekti.

Bu nedenle, bir programcının iyi bir şeyler yapabilmesi için bir yol aradım. Kendi kendime, bir topluluğu yeniden mümkün hale getirebilecek bir programı yazıp yazamayacağımı sordum?

Yanıt açıktı: ilk olarak ihtiyaç duyulan şey bir işletim sistemiydi. İşletim sistemi, bir bilgisayarın kullanılabilmesi için gerekli yazılımdı. Bir işletim sistemiyle, birçok şey yapabilirsiniz; ancak işletim sisteminiz olmazsa, bilgisayarı çalıştıramazsınız. Özgür bir işletim sistemiyle, yine işbirliği yapan bir hacker topluluğumuz olabilir ve herkesi bu topluluğa katılmaya davet edebiliriz. Ve herkes, arkadaşlarını mahrum etmeden bir bilgisayarı kullanabilir.

Bir işletim sistemi geliştiricisi olarak, bu iş için doğru yeteneklere sahiptim. Bu nedenle, hak ettiğim başarıyı elde edebileceğimi düşünmesem de, bu iş için seçilmiş kişi olduğumu düşünüyordum. Sistemi Unix ile uyumlu olacak şekilde seçtim, böylece sistem taşınabilir bir sistem haline geldi ve böylece Unix kullanıcıları kolayca bu sisteme dönebildi. Üstat geleneğini izleyerek GNU ismi seçilmişti, “GNU's Not Unix” ifadesinin özyinelemeli bir kısaltması. Sert bir g ile tek hece şeklinde telaffuz ediliyor.

Bir işletim sistemi, yalnızca diğer programları çalıştırmak için yeterli olan bir öz anlamına gelmemektedir. 1970'lerde, her işletim sistemi, komut işlemcilerini, assembler'ları, derleyicileri, yorumlayıcıları, hata ayıklama birimlerini (debugger), metin düzenleyicilerini ve çok daha fazlasını içermekteydi . ITS'te, Multics'te, VMS'te ve Unix'te bunlar vardı. GNU işletim sistemi de bunları içerecekti.

Daha sonra Hillel'e [2] atfedilen şu sözleri duydum:

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

GNU Projesini başlatma kararı benzer bir ruhu esas almaktadır.

Özgürlükteki gibi "Free"

“Free Software” (İngilizce'de “Free” hem özgür hem de ücretsiz anlamlarına geldiği için) ifadesi bazen yanlış anlaşılmaktadır, buradaki “free” ifadesinin ücretle bir ilgisi yoktur. Burada “free” ifadesi özgürlükle ilgilidir. Böylece, işte size özgür yazılımın tanımı.

Aşağıdaki şartlar yerine getirildiğinde, sizin gibi belirli bir kullanıcı için, bir program özgür bir yazılımdır:

  • Programı herhangi bir amaçla, istediğiniz gibi çalıştırma özgürlüğüne sahipseniz.
  • İhtiyaçlarınıza uygun olacak şekilde programı değiştirme özgürlüğüne sahipseniz. (Bu özgürlüğü, uygulamada etkin hale getirmek için, kaynak koduna erişebilmelisiniz, çünkü kaynak kodu olmaksızın bir programda değişiklikler yapmak aşırı zordur.)
  • Kopyaları ücretsiz olarak ya da belirli bir ücret karşılığında yeniden dağıtma özgürlüğüne sahipseniz.
  • Toplumun gelişmelerden faydalanmasını sağlamak için, programın değiştirilmiş sürümlerini dağıtma özgürlüğüne sahipseniz.

“Free” özgürlüğe atıf yaptığı ve fiyata atıf yapmadığı için, kopyaların ve özgür yazılımın satılması arasında bir çatışma yoktur. Gerçekte, kopyaları satma özgürlüğü çok önemlidir: CD-ROM'larda satılan özgür yazılım koleksiyonları, toplum için önemlidir ve bunların satılması, özgür yazılımın gelişimi için gerekli paranın toplanması için önemlidir. Bu nedenle, insanların bu koleksiyonlara ekleyemediği bir program özgür yazılım değildir.

“Free” kelimesinin anlam belirsizliğinden dolayı, insanlar uzun süre alternatif bir ifade arayışına girmiştir ancak hiç kimse uygun bir alternatif bulamamıştır. İngiliz Dili, başka herhangi bir dilden daha fazla sözcüğe ve nüansa sahiptir ancak özgürlükteki gibi “free” anlamına gelen basit, belirsizlikten uzak bir sözcüğü içermemektedir, “unfettered” (serbest, özgür) anlamca en yakın gelen sözcüktür. “Liberated” (özgürleştirilmiş, serbest), “freedom” (özgürlük) ve “open” (açık) gibi alternatifler ya yanlış bir anlama ya da başka bazı dezavantajlara sahiptir.

GNU Yazılımı ve GNU Sistemi

Bütün bir sistem geliştirmek çok büyük bir projedir. Sonuca ulaşmak için, her mümkün olduğunda, özgür yazılımın mevcut parçalarını uyarlamaya ve kullanmaya karar verdim. Örneğin, başlangıçta temel metin biçimlendirici olarak TeX'i kullanmaya karar verdim, GNU için başka bir pencere sistemi yazmak yerine X Window Sistemini kullanmaya karar verdim.

Bu kararlar ve benzeri nedenlerden dolayı, GNU sistemi tüm GNU yazılımının koleksiyonuyla aynı değildir. GNU sistemi, GNU yazılımı olmayan, kendi amaçları için diğer insanlar ve projeler tarafından geliştirilen ancak özgür yazılım oldukları için kullanabildiğimiz programları içerir.

Projenin Başlatılması

1984 yılının Ocak ayında MIT'deki görevimden ayrıldım ve GNU yazılımını geliştirmeye başladım. MIT'den ayrılmam gerekliydi, çünkü MIT'nin GNU'nun özgür yazılım olarak dağıtımını kısıtlamasını istemiyordum. Ekipte kalsaydım, MIT bu çalışmayı sahiplenebilirdi ve kendi dağıtım kurallarını dayatabilirdi ve hatta bu çalışmayı özel mülk yazılım paketine dönüştürebilirdi. Çalışmaların sonuçsuz kalmasını ve başarısız olmasını istemiyordum, amacım yeni bir yazılım paylaşım topluluğu oluşturmaktı.

Bununla birlikte, o zamanlarda MIT YZ Laboratuvarının başında bulunan Profesör Winston, beni, kibarca laboratuvarın olanaklarını kullanmaya devam etmem yönünde teşvik etti.

İlk Adımlar

GNU Projesine başlamadan kısa süre önce, VUCK olarak da bilinen Özgür Üniversite Derleyici Kitini duymuştum. (Hollanda dilinde “özgür” kelimesi v harfi ile yazılmaktadır) Bu, C ve Pascal dahil olmak üzere çok sayıda dili kontrol etmek ve çok sayıdaki hedef makineyi desteklemek için tasarlanmış bir derleyiciydi. GNU'nun bunu kullanıp kullanamayacağını sormak için yazarına yazdım.

Alaycı bir yanıt yazdı, üniversitenin özgür olduğunu ancak derleyicinin özgür olmadığını söyledi. Bu nedenle, GNU Projesi için ilk programımın çok-dilli çok platformlu bir derleyici olmasına karar verdim.

Tüm derleyiciyi kendi kendime yazma ihtiyacımı önleme umuduyla, Pastel derleyicisine ilişkin kaynak kodu edindim, Pastel derleyicisi, Lawrence Livermore Laboratuarında geliştirilmiş çok-platformlu bir derleyiciydi. Kendisinin de yazılmış olduğu, Pascal'ın sistem programlama dili olarak tasarlanmış genişletilmiş bir sürümünü destekliyordu. Bir C ön ucu [:front-end] ekledim ve Motorola 68000 bilgisayarına yüklemeye başladım. Derleyicinin megabaytlarca yığıt [:stack] alanına ihtiyaç duyduğunu ve mevcut 68000 Unix sisteminin yalnızca 64k'ya izin verdiğini fark ettiğimde bundan vazgeçtim.

Daha sonra, Pastel derleyicisinin tüm giriş dosyasını bir sözdizim ağacına ayrıştırarak çalıştığını, tüm sözdizim ağacını bir “yönerge” zincirine dönüştürdüğünü ve daha sonra, herhangi bir depolama alanını boşaltmaksızın tüm çıkış dosyasını ürettiğini fark ettim. Bu noktada, yeni bir derleyici yazmam gerektiği sonucuna vardım. Bu yeni derleyici şimdi GCC olarak bilinmektedir; içinde Pastel derleyicisi kullanılmamaktadır ancak yazmış olduğum C ön ucunu uyarlamayı ve kullanmayı sağladım. Ancak bunu birkaç yıl sonra gerçekleştirdim; ilk olarak, GNU Emacs üzerinde çalıştım.

GNU Emacs

1984 yılının Eylül ayında GNU Emacs üzerinde çalışmaya başladım ve 1985 yılında, GNU Emacs kullanılabilir olmaya başladı. Bu, düzenleme işlemleri için Unix sistemlerini kullanmaya başlamamı olanaklı kıldı; vi ya da ed'i kullanmayı öğrenme konusunda bir ilgim yoktu, o zamana kadar düzenleme işlemlerimi diğer makineler üzerinde gerçekleştirmiştim.

Bu noktada, insanlar, GNU Emacs'i kullanmayı istediler, bu durum da GNU Emacs'in nasıl dağıtılacağı sorusunu gündeme getirdi. Tabi ki, GNU Emacs'i, kullandığım MIT bilgisayarındaki ftp sunucusuna, anonim olarak erişilebilecek şekilde koydum. (Bu bilgisayar, başka bir deyişle, prep.ai.mit.edu, bu nedenle temel GNU ftp dağıtım bölgesi haline geldi; birkaç yıl sonra devreden çıkarıldıktan sonra, alan adını yeni sunucumuza yönlendirdik) Ancak, bu zaman zarfında, ilgili insanların birçoğu İnternette değildi ve ftp ile bir kopyasını alamadı. Bu nedenle, şu soru ortaya çıktı: onlara ne diyecektim?

Şöyle diyebilirdim: “Ağ üzerinde olan ve sizin için bir kopya alacak olan bir arkadaşınızı bulun”. Ya da orijinal PDP-10 Emacs'ta yaptığımı yapacaktım: “Bana bir teyp ve SASE gönderin ve ben de size üzerinde Emacs olacak şekilde bunu size geri göndereyim.” Ama işsizdim ve özgür yazılımdan para kazanmanın yollarını arıyordum. Bu nedenle, $150 karşılığında isteyen herkese bir teyp gönderebileceğimi duyurdum. Bu şekilde, özgür yazılım dağıtım işine başladım, böylece, günümüzde Linux-tabanlı GNU sistemlerini dağıtan firmalar için öncü oldum.

Bir program her kullanıcı için özgür müdür?

Bir program yazarının elinden çıktığında özgür yazılımsa, bu, programın kopyasına sahip herkes için mutlaka özgür yazılım olacağı anlamına gelmez. Örneğin, kamuya ait yazılım (telif hakkına sahip olmayan yazılım) özgür yazılımdır; ancak herkes, bunun özel mülk değiştirilmiş bir sürümünü oluşturabilir. Benzer şekilde, birçok özgür program telif hakkına sahiptir ancak değiştirilmiş özel mülk sürümlere izin veren basit izin lisansları altında dağıtılmıştır.

Bu problemin faydacı örneği, X Window Sistemidir. Bu sistem, MIT tarafından geliştirilmiş ve bir izin lisansıyla özgür yazılım olarak yayınlanmış olup, çeşitli bilgisayar firmaları tarafından benimsenmiştir. Bu firmalar, yalnızca ikili [:binary] biçimde özel mülk Unix sistemlerine X'i eklemiş ve aynı anlaşma ile kapsanmıştır. X'in bu kopyaları, bundan böyle Unix'in olduğundan daha fazla özgür yazılım değildir.

X Window Sisteminin geliştiricileri bunu bir problem olarak görmemişler , bu durumun meydana gelmesini beklemiş ve ummuşlardı. Hedefleri özgürlük değildi, yalnızca “başarıydı” ve başarı “fazla sayıda kullanıcıya sahip olmak” olarak tanımlanmaktaydı. Kullanıcıların özgürlüğe sahip olup olmamaları umurlarında değildi, tek istedikleri çok sayıda kullanıcıya sahip olmaktı.

Bu durum, “Bu program özgür mü?” sorusuna farklı yanıtlar veren iki farklı özgürlük derecesi hesaplama yönteminin olduğu bir paradoks durumuna neden olmaktadır. MIT sürümünün dağıtım terimleri cinsinden sağlanan özgürlük derecesini esas alarak değerlendirme yaptıysanız, X'in özgür yazılım olduğunu söyleyebilirsiniz. Ancak, X'in ortalama kullanıcısının özgürlüğünü ölçerseniz, o zaman Özel mülk yazılım olduğunu söylemeniz gereklidir. Birçok X kullanıcısı, Unix sistemleriyle birlikte verilen özel mülk sürümleri kullanmaktadır, özgür sürümü kullanmamaktadır.

Copyleft ve GNU GPL

GNU'nun hedefi yalnızca popüler olmak değil kullanıcılara özgürlük de sağlamaktır. Bu nedenle, GNU yazılımının özel mülk yazılıma dönüştürülmesini önleyen dağıtım terimlerini kullanmamız gereklidir. Kullandığımız yöntem “copylefttir” [3].

Copyleft, telif hakkı kanununu kullanır ancak genel amacının tersine hizmet etmesi için onu ters yüz eder: yazılımı özel hale getirmek yerine, yazılımı özgür tutmanın bir aracı 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.

Programın her kullanıcısı için özgürlüğü sağlamak istersek, değişikliklerin özgür olması gerektiğine ilişkin şart önemlidir. X Window Sistemini özelleştiren firmalar, genellikle X Window'u sistemlerine ve donanımına taşımak için bazı değişiklikler yapmıştır. Bu değişiklikler X'in üstün derecesiyle karşılaştırıldığında küçüktü ancak önemsiz değildi. Değişikliklerin yapılması kullanıcıların özgürlüklerinin inkâr edilmesine ilişkin bir özürse, herkesin bu bahaneden yararlanması kolaydır.

İlgili bir konu da özgür bir programın özgür olmayan kodla birleştirilmesidir. Bu gibi bir birleşim özgürlükten uzak olacaktır; özgür olmayan kısım için eksik olan özgürlükler bütün için de eksik olacaktır. Bu gibi birleşimlere izin verilmesi, bir gemiyi batırmaya yetecek büyüklükte deliklerin açılmasına neden olur. Bu nedenle, copyleft için önemli bir şart bu deliği tıkamaktır: copyleft edilmiş bir programla birleştirilmiş ya da bu gibi bir programa eklenmiş herhangi bir şey, birleştirilmiş daha büyük sürümün de özgür ve copyleft olmasını gerektirecektir.

Birçok GNU yazılımı için kullandığımız copyleft'in özel gerçekleştirimi, GNU Genel Kamu Lisansı ya da kısaca GNU GPL'dir. Bazı özel durumlarda ve ortamlarda kullanılan diğer copyleft tipleri de mevcuttur. GNU kullanım kılavuzu da copyleft edilir ancak çok daha basit bir copyleft tipi kullanırlar çünkü GNU GPL'nin karmaşıklığı kılavuzlar için gerekmez [4].

Özgür Yazılım Vakfı

Emacs'ın kullanımına ilişkin ilgi arttıkça, başka insanlar GNU Projesine dahil oldular ve o zaman GNU işletim sisteminin geliştirilmesini desteklemek için yeniden fon aramamızın zamanının geldiğine karar verdik. Böylece 1985 yılınca özgür yazılım geliişimi için vergiden muaf bir hayır kurumu olan Özgür Yazılım Vakfını (FSF) kurduk. FSF ayrıca Emacs bant dağıtım işini de ele aldı; daha sonra, banda diğer özgür yazılımları (hem GNU hem de GNU-olmayan) ekleyerek ve özgür (özgürlüğe saygılı) kılavuzları satarak bu işi genişletti.

FSF'nin gelirlerinin çoğu özgür yazılımın ve ilgili diğer hizmetlerin satışından gelmektedir (hepsi de yeniden dağıtma ve değiştirme özgürlüklerine sahip kaynak kod CD-ROMları, çalıştırılabilir dosya içeren CD-ROMlar, güzel basılmış kılavuzlar), ve Deluxe Dağıtımlarını (burada sizin seçeceğiniz dağıtım için tüm özgür yazılım koleksiyonu yer alıyor) satmaktadır. Günümüzde FSF hala kılavuzlar ve diğer gereçleri satsa da, gelirlerinin büyük bir kısmını üyelerinin aidatlarından sağlıyor. FSF'ye fsf.org bağlantısından üye olabilirsiniz.

Özgür Yazılım Vakfı çalışanları bazı GNU yazılım paketlerini yazmış ve ellerinde tutmuştur. Bunlardan tanınmış iki tanesi C kütüphanesi ve kabuktur (shell). GNU C kütüphanesi, GNU/Linux sisteminde çalışan her programın Linux ile haberleşmek için kullandığı şeydir. Özgür Yazılım Vakfında çalışan Roland McGrath tarafından geliştirilmiştir. Birçok GNU/Linux sisteminde kullanılan kabuk BASH'tır, Bourne Again Shell [5], bu kabuk, FSF çalışanı olan Brian Fox tarafından geliştirilmiştir.

Bu programların geliştirilmesini destekledik çünkü GNU Projesi yalnızca araçlar ya da bir geliştirme ortamı hakkında değildi. Hedefimiz tam bir işletim sistemiydi ve bu programlar söz konusu hedef için gerekliydi.

Özgür Yazılım Desteği

Özgür yazılım felsefesi, bazı yaygın ticari uygulamayı reddeder ancak ticarete karşı değildir. İşyerleri kullanıcıların özgürlüğüne saygı duyduğunda, onlara başarı dileriz.

Emacs'ın kopyalarının satılması, bir çeşit özgür yazılım ticaretini gösterir. FSF bu işi devraldığında, geçimimi sağlamak için başka bir yol gerekti. Geçimimi, geliştirmiş olduğum özgür yazılıma ilişkin hizmetlerin satılmasıyla sağladım. Bu, GNU Emacs'ın nasıl programlanacağı ve GCC'nin ve yazılım gelişiminin nasıl uyarlanacağı (çoğunlukla GCC'yi yeni platformlara taşıyan) gibi konular için eğitim vermeyi de içermektedir.

Günümüzde özgür yazılım ticaretinin bu tiplerinin her biri belirli sayıda kurum tarafından uygulanmaktadır. Bazıları, CD-ROM üzerinde özgür yazılım koleksiyonları dağıtmaktadır; diğerleri, çeşitli seviyelerde destek satmaktadır, bu destek: kullanıcı sorularının yanıtlanması, sorunların giderilmesi ve büyük ve yeni özelliklerin eklenmesini içerir. Yeni özgür yazılım ürünlerinin başlatılmasını esas alan özgür yazılım firmalarını görmeye başladık bile.

Yine de dikkatli olun, kendilerini “açık kaynak” terimiyle ilişkilendiren bazı firmalar, özgür yazılımla çalışan özgür olmayan yazılımı esas almaktadır. Bunlar özgür yazılım firmaları değildir, bunlar, özel mülk yazılım firmalarıdır, ürünleri kullanıcıları özgürlükten uzaklaştırmaktadır. Onlar bu progrmları “katma değerli paketler” olarak adlandırırlar, bu terim benimsememizi istedikleri değerleri yansıtır: özgürlükten önce kazanç. Özgürlüğe daha çok değer veriyorsak, bunları “özgürlüğü azaltılmış” ürünler olarak adlandırmalıyız.

Teknik hedefler

GNU'nun temel hedefi, özgür yazılımı sağlamaktır. GNU'nun UNIX'e göre teknik bir avantajı olmasa da, sosyal bir avantajı vardır, kullanıcıların birlik olmasına imkân verir ve etik bir avantajı vardır, kullanıcıların özgürlüğüne saygı duyar.

Ancak iyi uygulamaların bilinen standartlarının çalışmaya uygulanması doğaldı, örneğin rastgele sabit büyüklükteki sınırları önlemek için veri yapılarının dinamik olarak tahsis edilmesi ve anlamlı olan her yerde mümkün olan tüm 8-bitli kodların kontrol edilmesi gibi.

Ek olarak, 16-bit makineleri (GNU sistemi tamamlandığında, 32-bit makineler geçerli olacaktır) desteklememeye ve megabaytı geçmedikçe bellek kullanımını azaltmak için çaba göstermemeye karar vererek Unix'in küçük bellek büyüklüğü üzerine odaklanmasını reddettik. Çok büyük dosyalarla işlem yapılmasının çok önemli olmadığı programlarda, programcıların, tüm giriş dosyasını çekirdekte okumasını, daha sonra içeriğini I/O konusunda tedirginliğe kapılmaksızın taramasını sağladık.

Bu kararlar, birçok GNU programının Unix benzerlerini, güvenilirlik ve hız açısından geçmesini mümkün kılmıştır.

Bağışlanan Bilgisayarlar

GNU Projesinin ünü arttıkça, insanlar, üzerlerinde Unix çalışan makinelerini projeye bağışlamaya başladı. Bunlar çok yararlıydı çünkü GNU'nun bileşenlerini geliştirmenin en kolay yolu, bunu bir Unix sistemi üzerinde gerçekleştirmek ve söz konusu sistemin bileşenlerini birer birer değiştirmekti. Ancak bu durum etik bir sorunu ortaya çıkardı: Unix'in bir kopyasına sahip olmamız doğru mudur.

Unix, özel mülk bir yazılımdı (hâlâ da öyledir) ve GNU Projesinin felsefesi, özel mülk yazılım kullanmamamız gerektiğini söyler. Ancak, aynı mantık uygulandığında şu sonuca varılır: kendini korurken şiddet uygulanabilir, insanların özel mülk paketi kullanmalarını durdurmasına yardımcı olan özgür programı kullanabilmek için özel mülk paketin kullanılması mantıklıdır.

Savunulabilir bir durum olmasına rağmen, bu durum yine de kötü bir durumdur. Günümüzde, Unix'in hiçbir kopyasına sahip değiliz çünkü bu kopyaların yerine özgür işletim sistemlerini yerleştirdik. Bir makinenin işletim sistemini özgür bir işletim sistemiyle değiştiremediysek, bunun yerine makineyi değiştirirdik.

GNU Görev Listesi

GNU Projesi ilerledikçe ve artan sayıda sistem bileşeni bulundukça ya da geliştirildikçe, artık kalan eksiklerin bir listesinin yapılması yararlı bir hale geldi. Eksik parçaları yazmak için geliştiricileri işe almaktaydık. Bu liste, GNU Görev Listesi olarak bilinmeye başladı. Eksik Unix bileşenlerine ek olarak, gerçekten tam bir sistemin sahip olmasının gerekli olduğunu düşündüğümüz diğer yararlı yazılım ve belgeleme projelerini listeledik.

Günümüzde [6], GNU Görev Listesinde ancak çok az Unix bileşeni kalmıştır, bu işler (birkaç tane önemsiz iş hariç olmak üzere) gerçekleştirilmiştir. Ancak, liste, bazılarının “uygulamalar” olarak adlandırabileceği projelerle doludur. Dar bir kullanıcı grubundan daha fazlasını gerektiren herhangi bir program, işletim sistemine eklenecek yararlı bir şeydir.

Oyunlar bile görev listesine dahildir ve başlangıçtan beri durum böyledir. Unix'te oyunlar vardı, bu nedenle doğal olarak GNU'da da olmalıydı. Ancak oyunlar için uyumluluk söz konusu değildi, bu nedenle, Unix'in sahip olduğu oyun listesini izlemedik. Bunun yerine, kullanıcıların sevebildiği farklı oyun tipi çeşitlerini listeledik.

GNU Kısıtlı GPL

GNU C kütüphanesi, GNU Kısıtlı Genel Kamu Lisansı [7] olarak adlandırılan ve özel mülk yazılımla kütüphane arasında bağlantı kurma iznini sağlayan özel bir copyleft tipini kullanmaktadır. Bu istisnai durumun nedeni nedir?

Bu bir ilke sorunu değildir; özel mülk yazılım ürünlerinin kodumuzu içermesi konusunda yetkilendirilmesini söyleyen bir ilke yoktur. (Bizimle paylaşmayı reddeden bir projeye niye katılalım?) C kütüphanesi ya da herhangi bir kütüphane için LGPL kullanılması bir strateji hususudur.

C kütüphanesi genel bir işi başarmıştır; özel mülk her sistem ya da derleyici bir C kütüphanesine sahiptir. Bu nedenle, C kütüphanemizi yalnızca özgür yazılıma açık kılmak özgür yazılıma hiçbir avantaj sağlamayacaktır, bu yalnızca kütüphanemizin kullanımını engelleyecektir.

Bir sistem bu kurala uymayan bir durumdur: GNU sisteminde (ve bu GNU/Linux'ı içerir) GNU C kütüphanesi, tek C kütüphanesidir. Böylece, GNU C kütüphanesinin dağıtım terimleri, GNU sistemi için özel mülk bir programın derlenmesinin mümkün olup olmadığını belirler. GNU sistemi üzerinde özel mülk uygulamalara izin vermek için etik bir neden yoktur ancak stratejik açıdan, onlara olanak vermemek, özgür uygulamaların geliştirilmesini cesaretlendirmekten ziyade GNU sisteminin kullanımına yönelik cesareti kıracaktır. Bu, Kısıtlı GPL kullanımının C kütüphanesi için iyi bir strateji olmasının nedenidir.

Diğer kütüphaneler için, stratejik karar her duruma özgü bir şekilde oluşturulmalıdır. Bir kütüphane belirli program tiplerinin yazılmasına yardımcı olan özel bir işi gerçekleştirdiğinde, o zaman bunu GPL altında yayarak sadece özgür programlarda kullanımını sınırlandırmak diğer özgür yazılım geliştiricilerine yardımcı olmanın bir yolu olacaktır, bu da özel mülk yazılıma karşı onlara bir avantaj sağlayacaktır.

GNU Readline'ı değerlendirelim, bu, BASH için komut satırının düzenlenmesini sağlayan bir kütüphanedir. Readline, sıradan GNU GPL altında dağıtılıyor, Kısıtlı GPL altında değil. Bu muhtemelen Readline'nin kullanım miktarını azaltır ancak bizim için bir kayıp yoktur. Bu arada, özgür yazılım için en azından bir tane yararlı uygulama belirli olarak gerçekleştirilmiştir böylece Readline kullanılabilir ve bu, toplum için gerçek bir kazançtır.

Özel mülk yazılım geliştiricileri, paranın sağladığı avantajlara sahiptir; özgür yazılım geliştiricilerinin, birbirleri için avantajlı durumlar oluşturması gerekir. Umarım, günün birinde özel mülk yazılımlar için eşleri olmayan GPL ile lisanslanmış geniş kütüphane kolleksiyonlarına sahip olacağız, bu kütüphaneler yeni özgür yazılımlar için inşa birimlerini oluşturacak ve daha fazla özgür yazılım geliştirmesi için önemli bir avantaj sağlayacaklar.

Arzuyu kaşımak?

Eric Raymond, “Her iyi yazılım çalışması, geliştiricinin kişisel ve güçlü bir arzusunun ortaya çıkmasıyla başlar” der. Bu söz bazı durumlarda doğrudur ancak GNU yazılımının birçok esas parçası tam bir özgür işletim sistemine sahip olmak için geliştirilmiştir. Bunlar, bir bakış açısından ve bir plandan gelmektedir, bir dürtüden değil.

Örneğin, GNU C kütüphanesini geliştirdik çünkü Unix-benzeri bir sistem bir C kütüphanesine, ihtiyaç duyar, Bourne Again Shell'i (BASH) geliştirdik çünkü Unix-benzeri bir sistem bir kabuğa ihtiyaç duyar ve Unix-benzeri bir sistem bir tar programına ihtiyaç duyduğu için GNU tar'ı geliştirdik. Kendi programlarım için de aynısı geçerlidir: GNU C derleyicisi, GNU Emacs, GDB ve GNU Make.

Bazı GNU programları özgürlüğümüze ilişkin bazı tehditlerle başa çıkmak için geliştirilmiştir. Bu nedenle, Compress programının yerine geçmesi için gzip'i geliştirdik, bu program, LZW patentlerinden dolayı kayıptır. LessTif'i geliştirdik ve yakın zamanda belirli özel mülk kütüphaneler nedeniyle oluşan problemleri halletmek için GNOME ve Harmony'i başlattık (aşağıdaki “özgür olmayan kütüphaneler” bölümüne bakınız). Özgür olmayan gözde şifreleme yazılımının yerine geçmesi için GNU Gizlilik Kılavuzunu geliştirmekteyiz çünkü kullanıcılar gizlilik ve özgürlük arasında bir tercih yapmak zorunda kalmamalıdır.

Tabi ki, bu programları yazan insanlar çalışmayla ilgilenmeye başlamıştır ve kendi ihtiyaçları ve çıkarları için, çeşitli insanlar tarafından bunlara birçok özellik eklenmiştir. Ancak programların var olma nedeni bu değildir.

Beklenmedik gelişmeler

GNU Projesinin başlangıcında, tüm GNU sistemini geliştirebileceğimizi ve daha sonra bir bütün olarak yayınlayabileceğimizi hayal etmiştim. Ancak durum böyle olmadı.

GNU sisteminin her bir bileşeni bir Unix sisteminde gerçekleştirildiği için, bütün bir GNU sisteminin var olmasından çok önce her bir bileşen Unix sistemlerinde çalışabilmeliydi. Bu programların bazıları gözde hale geldi ve kullanıcılar, bunları, çeşitli uyumsuz Unix sürümlerine ve bazen de diğer sistemlere genişletmeye ve taşımaya başladı.

Süreç, bu programların çok daha güçlü olmasını sağladı ve hem maddi destek sağladı, hem de destekçileri GNU Projesine çekti. Ancak bu en az özellikli, çalışır bir sistemin tamamlanmasını da yıllarca geciktirdi çünkü GNU geliştiricilerinin zamanı, birbiri ardına eksik bir bileşenin yazılmasından çok, bu bileşenlerin devamlılığının sağlanmasına ve mevcut bileşenlere yeni özelliklerin eklenmesine harcandı.

GNU Hurd

1990 yılı itibariyle, GNU sistemi hemen hemen tamamlanmıştı; tek temel eksik bileşen, çekirdekti. Çekirdeğimizi, Mach'ın en üstünde çalışan sunucu süreçleri kümesi olarak gerçekleştirmeye karar verdik. Mach, Carnegie Mellon Üniversitesinde ve daha sonra Utah Üniversitesinde geliştirilen bir mikro-çekirdektir; GNU Hurd, Mach'ın üstünde çalışan sunucu topluluğudur ve Unix çekirdeğinin çeşitli işlemlerini gerçekleştirir. Mach'ın, söz verilmiş olduğu gibi özgür yazılım olarak dağıtılmasını beklerken, geliştirmenin başlaması gecikti.

Bu tasarımın seçilmesinin bir nedeni, işin en zor kısmı olarak görülen aşamadan kaçınılmasıydı: kaynak-seviyesinde bir hata ayıklayıcı [:debugger] olmaksızın çekirdek programındaki hataların ayıklanması. İşin bu kısmı hâlihazırda Mach'da gerçekleştirilmişti ve GDB ile kullanıcı programları olarak Hurd sunucularının hatalarının ayıklanmasını ummuştuk. Ancak bunun mümkün kılınması uzun zaman aldı ve birbirine mesaj gönderen çok-kullanımlı sunucuların hatalarının ayıklanmasının çok zor olduğu fark edildi. Hurd çalışmasının gerçekleştirilmesi yıllara yayıldı.

Alix

GNU çekirdeğinin başlangıçta Hurd olarak adlandırılacağı düşünülmemekteydi. Orijinal adı Alix'ti, o zamanlar sevgilim olan kadının adıydı. Bir Unix sistem yöneticisi olan Alix, Unix sistem sürümleri için isminin bir birime verilmesi gerektiğini şaka yollu olarak söylerdi: arkadaşlarına, “Benim adımın bir çekirdeğe verilmesi lazım” derdi. Hiçbir şey söylemezdim ancak çekirdeğe Alix adını vererek ona sürpriz yapmaya karar verdim.

Ancak daha sonra durum değişti. Michael Bushnell (şimdi Thomas), çekirdeğin ana geliştiricisi, Hurd adını tercih etti ve Alix'in yalnızca çekirdeğin belirli bir kısmının adı olmasına karar verdi, bu kısım sistem çağrılarını alan ve Hurd sunucularına mesaj göndererek kontrol eden kısımdır.

Sonunda Alix ve ben ayrıldık ve Alix, adını değiştirdi; bundan bağımsız olarak, Hurd tasarımı değiştirildi, böylece C kütüphanesi sunuculara doğrudan mesajlar göndermeye başladı ve bu durum Alix bileşeninin tasarımdan çıkarılmasına neden oldu.

Ancak bu olaylar meydana gelmeden önce, Alix'in bir arkadaşı, Hurd kaynak kodunda Alix ismine rastladı ve Alix'e bunu söyledi. Böylece Alix kendi adı verilen çekirdeği öğrenmiş oldu.

Linux ve GNU/Linux

GNU Hurd; üretim kullanımı için uygun değildir ve ne olacağını bilemeyiz. Yeteneğe dayalı tasarım; doğrudan tasarımın esnekliğinden kaynaklanan sorunlara sahiptir ve çözümlerin var olup olmadığı açık değildir.

GNU Hurd, normal kullanım (production use) için hazır değildi. Neyse ki, başka bir çekirdek ortaya çıktı. 1991 yılında, Linus Torvalds Unix'e uyumlu bir çekirdek geliştirdi ve bunu Linux olarak adlandırdı. İlk başta özel mülktü ama 1992 yılında onu özgür yazılım yaptı; henüz tamamlanmamış GNU sistemiyle Linux'un birleşmesi bütün bir özgür işletim sistemine neden oldu. (Bunların birleştirilmesi de tabi ki kendi içinde önemli bir işti). Günümüzde GNU sisteminin bir sürümünün çalıştırılması Linux sayesindedir.

Çekirdek olarak GNU sisteminin Linux'la birleşiminin oluşumunu ifade etmek için bu sistemi GNU/Linux olarak adlandırırız. Lütfen bütün sistemi “Linux” olarak adlandırma hatasına düşmeyin, çünkü bu bizim çalışmamızı başkasına mal etmek olur. Lütfen bizden de eşit derecede söz edin.

Geleceğimizde Ortaya Çıkabilecek Sorunlar

Geniş özgür yazılım çeşitlerini geliştirmek konusundaki yeteneğimizi kanıtladık. Ancak bu, bizim yenilmez ve durdurulamaz olduğumuz anlamına gelmemektedir. Çeşitli sorunlar, özgür yazılımın geleceğini belirsiz hale getirmektedir; bunların yerine getirilmesi sadık çalışmaları ve sabrı gerektirecek ve bu bazen yıllarca sürecektir. Bu, insanların özgürlüklerine değer vermeleri ve onu kimsenin almasına izin vermemeleri konusunda kararlılık göstermesini gerektirecektir.

Aşağıdaki dört bölüm bu hususları açıklamaktadır.

Gizli Donanım

Donanım üreticileri, donanım belirtimlerini sır olarak saklama eğilimindedir. Bu durum, Linux'ın ve XFree86'nın yeni bir donanımı desteklemesini sağlayan özgür sürücülerin yazılmasını zorlaştırmaktadır. Günümüzde bütün özgür sistemlere sahibiz ancak yarının bilgisayarlarını destekleyemezsek, yarın bunlara da sahip olamayacağız.

Bu problemle başa çıkmanın iki yolu vardır. Programcılar, donanımı nasıl destekleyeceklerini belirlemek için tersine mühendisliği gerçekleştirebilir. Geri kalanımız, özgür yazılım tarafından desteklenen donanımı seçebilir; sayımız arttıkça, belirtimlerin gizliliği kendi kendine terk edilen bir politika haline gelecektir.

Tersine mühendislik önemli bir iştir; bunu üstlenebilecek yeterli kararlılığa sahip programcılarımız var mı? Evet, özgür yazılımın bir ilke konusu olduğuna ve özgür olmayan sürücülerin dayanılmaz olduğuna dair güçlü bir duygu oluşturursak olabilir. Ve çoğumuz özgür sürücüleri kullanmak için fazladan para harcarsak ya da hatta biraz fazladan zaman harcarsak? Evet, özgürlüğe sahip olma kararlılığı yaygınsa bu olabilir [8].

Özgür olmayan Kütüphaneler

Özgür işletim sistemleri üzerinde çalışan özgür olmayan bir kütüphane, özgür yazılım geliştiricileri için bir tuzaktır. Kütüphanenin çekici özellikleri yemdir; kütüphaneyi kullanırsanız, tuzağa düşersiniz çünkü programınız özgür bir işletim sisteminin bir parçası olamaz. (Daha doğrusu, programı dahil edebiliriz ancak eksik kütüphane ile çalışmayacaktır). Daha da kötüsü, özel mülk kütüphaneyi kullanan bir program gözde hale gelirse, şüpheci olmayan diğer programcıları da tuzağa düşürebilir.

Bu probleme ilişkin ilk örnek, 80'lerdeki Motif araç-kitiydi. O zamanlar, özgür yazılımların mevcut olmamasına rağmen, daha sonra onlar için Motif probleminin oluşacağı açıktı. GNU Projesi buna iki şekilde yanıt verdi: ayrı özgür yazılım projelerinin özgür X araç-kiti bilgisayar ekranındaki tuş, buton, çubuk gibi unsurlardan her birinin desteklemesini isteyerek ve birilerinin Motif için özgür bir yedek hazırlamasını isteyerek. Bu iş yıllar aldı; Hungry Programcıları tarafından geliştirilen LessTif, yalnızca 1997'de birçok Motif uygulamasını desteklemek için yeterince güçlü hale geldi.

1996 ile 1998 yılları arasında, Qt olarak adlandırılan özgür olmayan başka bir Grafiksel Kullanıcı Ara Yüzü (GUI) araç-kiti kütüphanesi özgür yazılım koleksiyonunda, masaüstü KDE'de kullanıldı.

Özgür GNU/Linux sistemleri KDE'yi kullanmadı çünkü bu kütüphaneyi kullanamazdık. Ancak, sistemlerine özgür yazılımın eklenmesi konusunda duyarlı olmayan bazı ticari GNU/Linux sistem dağıtıcıları, sistemlerine KDE'yi ekledi, daha fazla özelliğe ancak daha az özgürlüğe sahip bir sistem ürettiler. KDE> grubu, daha fazla sayıda programcının Qt'yi kullanmasını destekledi ve milyonlarca yeni “Linux kullanıcısı” bununla ilgili bir problemin var olduğu fikrine inanmadılar. Bu durum korkutucu görünüyordu.

Özgür yazılım topluluğu probleme iki şekilde yanıt verdi: GNOME ve Harmony.

GNOME, açık adıyla, GNU Network Object Model Environment (GNU Ağ Nesne Model Ortamı), GNU'nun masaüstü projesidir. 1997 yılında Miguel de Icaza tarafından başlatılmıştır ve Red Hat Software'in desteğiyle geliştirilmiştir, GNOME, benzer masaüstü özellikleri sağlamak için oluşturulmuştur ancak özgür yazılımları kullanır. Teknik avantajları da vardır, yalnızca C++'ı değil, çeşitli dilleri de destekler. Ancak temel amacı özgürlüktür: özgür olmayan hiçbir yazılıma ihtiyaç duymaz.

Harmony, uyumlu bir değiştirme kütüphanesidir, Qt'yi kullanmaksızın KDE yazılımının çalıştırılmasını mümkün kılmak için tasarlanmıştır.

1998 yılının Kasım ayında, Qt'nin geliştiricileri, bir lisans değişikliğini anons etti, bu lisans değişikliğinin gerçekleşmesiyle, Qt özgür yazılım haline gelmekteydi. Bundan emin olmanın bir yolu yoktur ancak bana kalırsa bu, QT'nin özgür olmamasından kaynaklanan soruna topluluğun verdiği yanıttan kaynaklanmaktadır. (Yeni lisans elverişsiz ve eşitlikten uzaktır, bu nedenle, Qt'nin kullanımının önlenmesi istenmektedir [9].)

Sonraki özgür olmayan kütüphaneye karşı nasıl bir tepki vereceğiz? Tüm topluluk tuzaktan uzak kalmanın gerekliliğini anlayacak mı? Ya da birçoğumuz kullanışlılık için özgürlükten vazgeçecek mi ya da büyük bir problem mi ortaya çıkacak? Geleceğimiz felsefemize bağlıdır.

Yazılım Patentleri

Karşılaştığımız en büyük tehdit yazılım patentlerinden gelmektedir, bu patentler, özgür yazılıma yirmi yıla kadar varabilen algoritma ve özellik sınırları koyabilir. LZW sıkıştırma algoritma patentleri 1983'te uygulanmıştı ve hâlâ uygun şekilde sıkıştırılmış GIF'ler üretmek için özgür yazılımı yayınlayamıyoruz. [10] 1998 yılında, bir patent grubunun tehdidi altında, MP3 sıkıştırma ses programı üreten özgür bir program dağıtımdan kaldırılmıştı [11].

Patentlerle başa çıkmanın yolları vardır: bir patentin geçersiz olduğuna ilişkin bir kanıt araştırabiliriz ve bir işi yapmanın alternatif yollarına bakabiliriz. Ancak bu yöntemlerin her biri yalnızca bazen çalışır; bu iki yöntem de başarısız olduğunda, patent, tüm özgür yazılımı, kullanıcıların istediği birtakım özelliklerden mahrum bırakmaya zorlayabilir. Uzun bir süre sonra patentlerin süresi dolar, ama o zamana kadar ne yapacağız?

Özgürlük adına özgür yazılıma değer veren bizim gibi insanlar her durumda özgür yazılımla kalacaktır. İşlerimizi hallederken patentli özellikleri kullanmayacağız. Ancak teknik açıdan daha üstün olmasını bekledikleri için özgür yazılıma değer verenler, patent onu geri tuttuğunda, bunu bir başarısızlık olarak adlandırma eğilimindedir. Bu nedenle, yazılım geliştirmenin “pazar” modelinin ve özgür yazılımın güvenilirliği ve gücünün pratik etkililiği hakkında konuşmak yararlı iken, burada durmamalıyız. Özgürlük ve ilke hakkında konuşmalıyız.

Özgür belgeler

Özgür işletim sistemlerimizdeki en büyük eksiklik yazılımda değildir, en büyük eksiklik, sistemlerimize dahil edebildiğimiz iyi özgür belgelerin olmamasıdır. Belgeleme, her türlü yazılım paketinin önemli bir parçasıdır; önemli bir özgür yazılım paketi iyi bir özgür belgeyle birlikte verilmediğinde, bu büyük bir eksiktir. Günümüzde bu gibi eksiklerimiz vardır.

Özgür belgeleme, tıpkı özgür yazılım gibi, bir özgürlük konusudur, ücretle ilgili değildir. Özgür bir kılavuza ilişkin ölçütler özgür yazılıma ilişkin ölçütlere oldukça benzerdir: bu, tüm kullanıcılara belirli özgürlükler verilmesi hususudur. Yeniden dağıtıma (ticari satış dahil olmak üzere) izin verilmelidir, bu, çevrim-içi olarak ya da kağıt biçiminde olabilir, böylece kılavuz, programın her kopyasıyla birlikte verilebilir.

Değiştirmeye ilişkin izin de önemlidir. Genel kural olarak, insanların tüm makale ve kitap tiplerini değiştirme iznine sahip olmasının gerekli olduğuna inanmıyorum. Örneğin, işlemlerimizi ve görüşlerimizi tanımlayan bu gibi makaleleri değiştirmek için izin vermek zorunda olduğumuzu sanmıyorum.

Ancak, özgür yazılımın belgelerinin değiştirilme özgürlüğünün önemli olmasının belirli bir nedeni vardır. İnsanlar, yazılımı değiştirme hakkını kullandıklarında ve özelliklerine ekleme yaptıklarında ya da özelliklerini değiştirdiklerinde, vicdanlı davranır ve özenlilerse kılavuzları da değiştireceklerdir, böylece değiştirilmiş programla birlikte doğru ve kullanılabilir belgeleri de sağlayacaklardır. Programcıların özenli olmalarına izin vermeyen ve işi tanımlamayan özgür olmayan bir kılavuz, topluluğun ihtiyaçlarını karşılamaz.

Değişikliklerin nasıl gerçekleştirildiğine ilişkin bazı sınırlamalar hiçbir problem oluşturmaz. Örneğin, asıl yazarın telif hakkı uyarısının korunmasına ilişkin şartlar, dağıtım ifadeleri ve yazar listesi uygundur. Ayrıca değiştirilmiş sürümlerde uyarı bulunmasının gerekli olması ve bu kısımların teknik-olmayan başlıkları ele almaları durumunda, silinemeyen ya da değiştirilemeyen kısımlara sahip olma konusunda bir problem yoktur. Değişikliklerin nasıl gerçekleştirildiğine ilişkin bazı sınırlamalar hiçbir problem oluşturmaz. Örneğin, asıl yazarın telif hakkı uyarısının korunmasına ilişkin şartlar, dağıtım ifadeleri ve yazar listesi uygundur. Ayrıca değiştirilmiş sürümlerde uyarı bulunmasının gerekli olması ve bu kısımların teknik-olmayan başlıkları ele almaları durumunda, silinemeyen ya da değiştirilemeyen kısımlara sahip olma konusunda bir problem yoktur.

Ancak, kılavuzun tüm “teknik” içeriğinin değiştirilmesi ve daha sonra tüm genel kanallar üzerinden tüm genel ortamlarda sonucun dağıtılması mümkün olmalıdır; aksi takdirde, kısıtlamalar topluluğu engellemektedir, kılavuz özgür değildir ve başka bir kılavuza ihtiyaç duyarız.

Özgür yazılım geliştiricileri tam bir özgür belge çeşitliliği oluşturma bilincine ve kararlılığına sahip olacak mıdır? Yine, geleceğimiz felsefeye bağlıdır.

Özgürlük Hakkında Konuşmalıyız

Günümüzde Debian GNU/Linux ve Red Hat “Linux.” gibi GNU/Linux sistemlerinin on milyon kullanıcısının var olduğu tahmin edilmektedir. Özgür yazılım öyle pratik avantajlar sunmuştur ki, kullanıcılar tamamen uygulamaya ilişkin nedenlerden dolayı özgür yazılımı kullanmaktadır, uygulamaktadır.

Bunun iyi sonuçları ortadadır: özgür yazılımın geliştirilmesiyle daha fazla ilgilenildiğinde, yazılım işleri için daha fazla müşteri mevcuttur, bu da özel mülk yazılım ürünleri yerine ticari özgür yazılımın geliştirilmesi için firmaların daha fazla cesaretlendirilmesi için olanak demektir.

Ancak yazılıma olan ilgi yazılımın esas aldığı felsefenin bilincinden daha hızlı bir şekilde büyümektedir ve bu durum soruna neden olmaktadır. Yukarıda açıklanan sorunlarla ve tehditlerle başa çıkma özelliği, özgürlük için direnme isteğine bağlıdır. Topluluğumuzun bu isteğe sahip olduğundan emin olmak için, topluluğumuza girdiklerinde yeni kullanıcılara bu fikri yaymamız gereklidir.

Ancak bunu yapmakta başarısız olmaktayız: yeni kullanıcıları topluluğumuza çekme çabaları, topluluğumuzun temel bilgilerini öğretme çabalarını fazlasıyla geride bırakmaktadır. Her ikisini de gerçekleştirmemiz ve iki çabayı da dengede tutmamız gereklidir.

“Açık Kaynak”

Yeni kullanıcılara özgürlüğü öğretmek 1998 yılında daha zor hale geldi çünkü topluluğun bir kısmı “özgür yazılım” terimi yerine “açık kaynak yazılımı” terimini kullanmaya karar verdi.

Bu terimi destekleyen bazıları, “özgür” teriminin “bedava” terimiyle karıştırılmasını önlemeyi hedefledi, bu geçerli bir hedefti. Ancak diğerleri, özgür yazılım hareketini ve GNU Projesini güdüleyen ilkenin ruhunu bir kenara koydu ve bunun yerine yöneticilere ve işyeri kullanıcılarına yöneldi, bunların çoğu kârı özgürlüğün, toplumun ve ilkenin üstünde tuttu. Bu nedenle, “açık kaynak” konusu, yüksek-kaliteli ve güçlü yazılımın gerçekleştirilmesi potansiyeline odaklanmaktadır ancak özgürlük, toplum ve ilke fikirlerinden uzak durmaktadır.

“Linux” dergileri bunun açık bir örneğidir, GNU/Linux'la çalışan özel mülk yazılım için ilanlarla doludurlar. Sıradaki Motif ya da Qt ortaya çıktığında, bu dergiler programcıları bundan uzak durması konusunda uyaracak mı yoksa onun için reklam mı yayınlayacaklar?

Ticaretin desteklenmesi topluma birçok şekilde katkı sağlayabilir; diğer her şey eşit olduğunda, bu yararlıdır. Ancak özgürlük ve ilke hakkında daha az konuşarak desteklerini kazanmak çok kötü sonuçlar doğurabilir; bu, sosyal yardımlaşma ve yurttaşların eğitimindeki dengesizlği daha da kötüleştirecektir.

“Özgür yazılım” ve “açık kaynak” yaklaşık olarak aynı yazılım kategorisini tanımlar ancak yazılım hakkında ve değerler hakkında farklı şeyler söyler. GNU Projesi, yalnızca teknolojinin değil özgürlüğün de önemli olduğunu ifade etmek için “özgür yazılım” ifadesini kullanmaya devam eder.

Deneyin!

Yoda'nın felsefesi (“'Deneme' yoktur”) iyi ve zekice görünmektedir ancak bu, benim için geçerli değildir. İşi yapıp yapamayacağım konusunda tedirginken aslında işin çoğunu yaparım ve hedefi gerçekleştirsem bile, hedefi yakalamak için yeterli olup olmadığım konusunda emin değilimdir. Ama en azından denedim çünkü düşmanım ile şehrim arasında benden başka hiç kimse yoktu. Şaşırtıcı bir şekilde, bazen başarılı oldum.

Bazen başarısız oldum; bazı şehirlerim düştü. O zaman tehdit altında olan başka bir şehir buldum ve başka bir savaş için hazırlandım. Zaman içinde, tehditleri aramayı ve kendimi tehditlerle şehrim arasına koymayı öğrendim ve diğer hacker'ların gelip bana katılmaları konusunda çağrı yaptım.

Bugünlerde yalnız değilim. Bana destek olan hacker'ları gördüğümde bir rahatlama ve neşe duyuyorum ve bu şehrin, en azından şimdilik, dayanabileceğini görüyorum. Ancak tehlike her geçen yıl büyüyor ve şimdi Microsoft açık bir şekilde topluluğumuzu hedef aldı. Özgürlüğün geleceğini veremeyiz. Teslim olmayalım! Özgürlüğümüzü korumak istiyorsak, her zaman hazır olmalıyız.

Dipnotlar

  1. Yaygın medyada “güvenlik kırıcısı”nı ifade etmek için “hacker”ın kullanılması kafa karışıklığı yaratır. Biz üstatlar bu ifadeyi kabul etmeyiz ve hacker'ın kelime anlamı olarak “programlamayı seven, oyuncu zekadan veya bunların bir bileşiminden hoşlanan kimse” tanımını ve üstat karşılığını kullanmayı tercih ederiz. “Hacking üzerine” başlıklı yazıma bakabilirsiniz.
  2. Bir ateist olarak, dini liderleri izlemiyorum ama bazen dini liderlerden birinin söylediği bir sözü beğendiğimi fark ediyorum.
  3. 1984 ya da 1985 yılında, Don Hopkins (hayal gücü çok geniş olan bir adam) bana bir mektup gönderdi. Zarfta birçok komik şey yazıyordu, şu da onlardan biriydi: “Copyleft—tüm hakları ters çevrilmiştir”. “Copyleft” sözcüğünü o zamanlar geliştirmekte olduğum dağıtım kavramını adlandırmak için kullanmıştım.
  4. Şimdi belgeler için GNU Özgür Belgelendirme Lisansını kullanıyoruz.
  5. “Bourne again Shell”, Unix'teki olağan kabuk olan “Bourne Shell”'in adıyla yapılan bir şakadır.
  6. Bu 1998'de yazıldı. 2009'da artık uzun bir görev listesi tutmuyoruz. Topluluk o kadar hızlı özgür yazılım geliştiriyor ki hepsini takip bile edemiyoruz. Bunun yerine Yüksek Öncelikli Projeler listemiz var, insanları daha çok yazmaya teşvik etmek istediğimiz çok daha kısa bir projeler listesi.
  7. Bu lisans önceden GNU Kütüphane Genel Kamu Lisansı adındaydı, tüm kütüphanelerin onu kullanması gerektiği fikrini vermemek için ismini değiştirdik. Ayrıntılı bilgi için Bir sonraki kütüphaneniz için neden Kısıtlı GPL kullanmamalısınız yazısına bakabilirsiniz.
  8. 2008 notu: bu konu BIOS'a da genişletilebilir. Özgür bir BIOS vardır, LibreBoot, sorun (bir coreboot dağıtımı olan) LibreBoot'un özgür olmayan “bloblar” olmadan destekleyebilmesini sağlamak için makine belirtimlerini elde etmektir.
  9. Eylül 2000'de Qt GNU GPL olarak yayınlanmıştır, bu da bu sorunu çözmüştür.
  10. 2009 yılı itibariyle GIF patentlerinin süresi dolmuştur.
  11. 2017 yılı itibariyle MP3 patentlerinin süresi dolmuştur. Ne kadar uzun beklediğimize bakın.