Neden açık kaynak değil özgür yazılım?
Özcan Oğuz
Her özgür yazılım açık kaynaktır ancak her açık kaynak özgür yazılım değildir. Bunu daha doğru anlayabilmek için özgür yazılımın tarihine biraz göz atmak gerekir. Özgürlük kavramı, ancak ortada bir tahakküm aracı mevcut olduğunda anlam kazanır; nasıl ki binlerce yıl önce ortada hiçbir devlet yokken ve mülkiyet tanımlanmamışken toplumsal bir özgürlük mücadelesi ve dahi özgürlük kavramının kendisi söz konusu değilse, mülk yazılımlar ortaya çıkmadan önce de özgür yazılım kavramına ihtiyaç duyulmamıştı.
Yetmişli yıllarla birlikte bilişim dünyasındaki bütün yazılımlar mülk hale gelmişti. Seksenlere girilirken, bir bilişim sisteminin maliyetinin çoğunu artık yazılımlar oluşturmaktaydı. Dolayısıyla bilgisayarlar çoğunlukla şirketlerde ve üniversitelerde bulunmaktaydı. Burada “Ama benim Commodore 64’üm veya Amstrad’ım vardı” diyenleriniz olabilir, ama onlar “ev bilgisayarları” veya “mikrobilgisayarlar”, bahsettiğim konunun dışındalar.
Bu süreçte, binlerce dolar ödeyip satın aldığınızı düşündüğünüz yazılımları aslında satın almış olmuyordunuz, sadece yazılım size belirli koşullar altında kullanmanız için lisanslanıyordu. Yazılım artık ticari bir üründü, ama diğer ticari ürünlerden çok önemli bir farkı vardı. Elinizde 1 ton buğday olduğunu düşünün. Yaptığınız her satışta elinizdeki buğday azalacak ve en nihayetinde bitecektir. Bunun haricinde buğdayı elde etmek için yaptığınız elle tutulur masraflar vardır; traktörlerin ve biçerdöverlerin yaktığı mazot, tarlada çalışan tayfanın yevmiyeleri, buğdayın tarladan depoya ve depodan satılan yere nakliye hizmetleri, buğdayların konulduğu çuval…
Yazılım buradaki farkı şu, eğer elinizde bir tane yazılım varsa istediğiniz kadar satın elinizdeki yazılım “azalmayacaktır”. Depolaması ve nakliyesi ya masrafsız ya da birkaç disket kadar masrafa sahiptir. Ayrıca yazılımı oluştururken illa ki “tayfa” çalıştırmak zorunda değilsiniz, kendi başınıza da yazmış olabilirsiniz.
Ayrıca bir yazılımı temelde “sıfırdan oluşturmuş” olmanız mümkün değildir. Yazdığınız her yazılım, insanlığın ortak birikiminin bir ürünüdür. Bilgi, insanlık tarihi boyunca kümülatif olarak mevcut noktaya gelmiştir. Yazılımı geliştirirken de, bu birikimden faydalanırız; matematikten, fizikten, elektronikten ve bunların alt dallarından yazılımın yazıldığı donanımdan üzerinde geliştirildiği işletim sisteminden, yazılımın yazıldığı programlama diline ve onun derleyicisine kadar pek çok parça, çok ayrı zamanlarda çok ayrı insanlar ve topluluklar tarafından geliştirilmiştir. Bu koşullar altında yazılımın “yaratıcısı” olarak bu yazılımı “mülk edinmek” ve insanların yazılıma erişimini kısıtlamak ne kadar doğrudur?
1983 yılında Richard M. Stallman, MIT’deki ofislerinde bulunan bir yazıcıda yaşadığı bir kağıt sıkıştırması sorununu, yazıcının bellenim (firmware) yazılımı mülk olduğu için tüm imkanlara sahipken çözemedi ve bu noktadan hareketle özgür yazılım kavramını ortaya atmıştır. Ayrıca dönemin en yaygın kullanılan işletim sistemi olan UNIX’in, bire bir uyumlu bütünen özgür bir halini oluşturmak için GNU işletim sistemi projesini başlatmıştır. Çünkü kendi ifadesiyle “bir yazılımı sevdiyseniz onu başkalarıyla paylaşabilmeniz gerekir”.
Bu noktada yazılım özgürlüğü de ilk defa ifade edilmiştir. Bir yazılımın özgür olabilmesi için dört temel özgürlüğü sağlaması gerekir:
- Kullan: Yazılımı her koşulda kullanabilme özgürlüğü.
- Araştır: Yazılımın nasıl çalıştığını anlama ve onu değiştirebilme özgürlüğü.
- Paylaş: Yazılımı kopyalama ve paylaşma özgürlüğü.
- Geliştir: Yazılımı değiştirip, değiştirilmiş ve geliştirilmiş hallerini dağıtma özgürlüğü.
Bu noktadan itibaren yıllar içerisinde geliştirilmeye devam edilen GNU işletim sistemi, en nihayetinde 1991 yılında geliştirilmeye başlanan Linux çekirdeği ile bir araya geldi ve bugün kullandığımız GNU/Linux işletim sistemi ortaya çıktı. GNU/Linux başta olmak üzere bu süreçte geliştirilen bütün özgür yazılımlar tek bir ortak amaç doğrultusunda yazıldı: Kullanıcıların özgürlüğünü sağlamak.
Ancak özgürlük, kendi başına politik bir kavram olarak vardır. Bir tahakküm unsuruna karşı bir mücadele doğrultusunda var olur. Özgürlükten söz ettiğinizde, doğal olarak taraf olur ve özgürlüğünüzü elinizden almaya çalışan bir şeye karşı cephe alırsınız. Yazılım özgürlüğü özelinde bu durum bazı insanları rahatsız etmekteydi, çünkü yazılım özgürlüğü doğası ve karakteristiği gereği politik bir alan olarak var olmak durumundaydı ancak dönemin özgür yazılım topluluğu içerisinde apolitik olmak isteyen bir kitle mevcuttu. Bununla beraber, şirketler ve devletler “özgür yazılım” ifadesinden ve özgürlük felsefesinden pek hoşnut değildi.
Bu gelişmelerle birlikte 1998 yılında ilk defa “açık kaynak” tanımı “özgür yazılım” ifadesinin yerine ortaya atıldı. Açık kaynak, özgür yazılımın politik duruşu ve felsefik yaklaşımının aksine, kullanıcıların ve geliştiricilerin katılımını ve yazılımın oluşumu ve gelişimini, kalitesini ön plana alan pragmatik bir yaklaşım olarak ortaya çıktı. Başlarda bütünen özgür yazılımın yerini alması istense de, doğal olarak topluluk buna karşı çıktı. Çünkü topluluğun içerisinde konuyu yalnızca yazılım geliştirme olarak değil, bir özgürlük mücadelesi olarak addeden çok geniş bir kitle mevcuttu.
Bu noktada bir ayrımı daha yapmak gerekir, “açık kaynak” ve “açık kaynak kod” da birbirinden ayrı iki kavramdır. “Açık kaynak kodlu yazılım”, kaynak koduna erişebildiğiniz herhangi bir yazılım anlamına gelir. “Açık kaynak” ise, özgür yazılıma benzer şekilde kullanıcıların bazı “haklarını” tanımlar. Örneğin TrueCrypt ismindeki bir disk şifreleme yazılımı, “açık kaynak kodludur” ancak yazılımı çalıştırabilmek bazı koşullara bağlandığı için ve yazılımın kopyalanması hususunda bazı noktalara şerh düşüldüğü için “ne özgürdür ne de açık kaynaklıdır”.
Özgür yazılım ve açık kaynak arasındaki temel fark, yaklaşım farkıdır. Özgür yazılım kullanıcının özgürlüğünü esas alır, temel dayanağı budur. Mülk olanın ve mülk edinmeye çalışanın karşısında durur. Basın özgürlüğü gibi, ifade özgürlüğü gibi, düşünce özgürlüğü gibi bir özgürlük mücadelesidir. Açık kaynak ise bir yazılım geliştirme stratejisidir, yazılımın gelişmişliğini ön plana alır. Daha çok katılımcıya ulaşmaya ve daha kaliteli yazılımlar elde etmeye çalışır.
Eğer özgür olmak ve özgürlük sizin için önemliyse, özgür bir dünyada yaşama hayaliniz varsa “özgür yazılım” kavramını kullanın. Özgürlüğün kişisel tercihiniz olmadığını, ancak hepimiz özgür olmak için çabaladığımızda gerçekten özgür olabileceğimizi unutmayın.