Özgür Yazılım Nedir?

"Özgür Yazılım" başlıklı sunumlarda özgür yazılım kavramı anlatılırken gelenekten olsa gerek "özgür yazılım nedir, yenir mi, içilir mi" tarzında bir cümle ile başlanır. Bu yazıya da bu şekilde başlayalım: özgür yazılım nedir, yenir mi, içilir mi?
Özgür yazılım kavramını anlamak için ilk önce yazılım kavramından bahsedelim. Yazılım nedir? TDK sözlüğü bu soruya şu şekilde cevap veriyor: Bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar, yordamlar, programlama dilleri ve belgelemelerin tümü. Yani web sayfalarında dolaşırken kullandığınız web tarayıcısı, bu yazıyı yazarken kullandığım kelime işlemci uygulaması hepsi birer yazılım.
Peki bu yazılımı özgür yapan nedir? Ne oluyor da bir yazılıma özgür yazılım diyoruz ya da demiyoruz? Bunun için özgür yazılım kavramının nasıl ortaya çıktığına bakabiliriz. Ama bundan hemen önce kaynak kod kavramından da bahsetmek gerekecektir.
Bilgisayarınızda kullandığınız yazılımlar herhangi bir programlama dili ile kodlanır. Bu kod yazılımın kaynak kodudur. Kaynak kod derlendikten sonra yani bilgisayarın anlayacağı uygun formata çevrildikten sonra  sizin gördüğünüz son haline gelir ki bu bir web tarayıcısıdır ya da kullandığınız editördür. Kaynak kod kavramını bilgisayar dışındaki bir örnekle anlatayım. Örneğin, yediğiniz bir yemek sizin kullandığınız bir yazılıma denk geliyor gibi düşünelim yani size sunulmuş olan son üründür, ama yemeğin nasıl yapıldığı içine nelerin konulduğu ise kaynak kodudur. 
Peki özgür yazılım kavramı nasıl ortaya çıktı? 1980 başlarında MIT'in yapay zeka laboratuarında çalışan Richard Stallman, yazıcıda yaşanan bir sorun yüzünden yazıcının yazılımına müdahale etmek ister ama Xerox şirketi programın kaynak kodunu vermek istemez. Bu olay bir bakıma itici güç olarak Richard Stallman'in özgür yazılım kavramını ortaya atmasına sebep olur ve GNU projesini başlatır.
GNU projesi, 1983 yılında Richard Stallman tarafından başlatılan özgür yazılımların ortak bir şekilde geliştirilmesini hedefleyen ve bu yazılımların üstünde çalışacağı özgür bir işletim sistemi oluşturmayı hedefleyen bir projedir. GNU rekürsif bir kısaltmadır ve açılımı 'GNU is Not Unix'tir yani 'GNU Unix değildir'. Unix işletim sisteminin kaynak kodunun kapalı olması sebebiyle bu proje bu ismi almıştır.
Richard Stallman 1985 yılında Özgür Yazılım Vakfı'nı kurar. Özgür Yazılım Vakfı'nın yaptığı ilk özgür yazılım tanımına göre bir yazılımın özgür yazılım olması için şartlar şunlardır:

  • Her türlü amaç için yazılımı çalıştırma özgürlüğü
  • Yazılımın nasıl çalıştığını inceleme ve kendi gereksinimleri doğrultusunda değiştirme özgürlüğü 
  • Yeniden dağıtma ve toplumla paylaşma özgürlüğü
  • Yazılımı geliştirme ve gelişmiş haliyle topluma dağıtma özgürlüğü. Böylece yazılım bütün toplum yararına geliştirilmiş olur

2. ve 4. maddeler yazılımın kaynak koduna erişim için de bir ön şarttır. "Özgür yazılım" kavramının ingilizcesi "free software"dir. Free kelimesi ingilizcede hem özgür hem de bedava anlamına geldiği için kimi zaman özgür yazılımlar ücretsiz yazılımlardır şeklinde algılanabiliyor. Özgür yazılımlar bedava olabileceği gibi elbette ücretli de olabilir. 
Özgür yazılımlarda kullanılan lisanslar temel olarak yukarıdaki 4 maddeyi sağlarlar. Sıkça kullanılan özgür yazılım lisanslar şunlardır:

  • GNU General Public License (GNU Genel Kamu Lisansı)
  • GNU Lesser General Public License
  • BSD License
  • Mozilla Public License
  • MIT License
  • Apache License

Bunların arasında bulunan GNU Genel Kamu Lisansı en popüler olandır ve Richard Stallman tarafından GNU projesi için hazırlanmıştır.

Özetle; bir yazılımın özgür yazılım olabilmesi için yazılımın sadece derlenmiş hali değil aynı zamanda kaynak kodları da dağıtılmalıdır. Ayrıca sadece kaynak kodunun dağıtılması yetmiyor, kişinin bu kaynak kodu modifiye etme hakkına sahip olması ve modifiye edilmiş haliyle dağıtma hakkına sahip olması gerekmektedir.

Necati Demir