Açık Kaynak Kod Nedir? Özgür Yazılım Nedir? Ne İşe Yarar? Nasıl Yazılır?
Özgür ve açık kaynak kodlu (AKK) yazılım; yazılım özgürlüğünü amaçlayan ve bilgisayar kullanıcılarının kullandıkları yazılım üzerinde kullanım, dağıtım, değiştirme özgürlükleri olduğunu vurgulayan özgür yazılım hareketi ile beraber ortaya çıkmıştır. Ağırlıklı olarak Avrupa Birliği tarafından kullanılan bir ifadedir.
Yazılımların donanımla dağıtıldığı dönemlerde, donanım aldığınızda yazılımı da beraber gelirdi ve o yazılım sadece o donanımla beraber çalışabilirdi; o yazılımı dilediğiniz gibi değiştirme, biçimlendirme şansınız vardı. Yavaş yavaş kişisel bilgisayarların yaygınlaşması, farklı karmaşık yazılımların ortaya çıkması, beraberinde yazılım üreticilerinin yazılımlarını korumaya yönelik olarak telif haklarına başvurmasına ve önceden donanımı kullanan uzman kişilerin değiştirebilmesi için açık kaynak olan kodların kapatılmasına, yazılımla beraber dağıtılmamasına neden olmaya başladı. Artık aldığınız bir yazılımı arkadaşlarınızla paylaşmanız, kaynak kodlara erişiminiz olmadığı için dilediğiniz şekilde değiştirme olanağınız elinizden alınmış oldu.
Önerilen Yazı » Veri Ambarı Nedir? Ne İşe Yarar? Özellikleri Nelerdir?
Özgür Yazılımın Gelișimi
Bilgisayar endüstrisindeki ve kullanıcılardaki kültür değişiminden rahatsız olan Richard Stallman, 1983 yılında GNU (“GNU’s Not Unix- GNU Unix değildir”) projesini başlattı. GNU işletim sistemi işleyişi ve geliştirme çalışmaları Ocak 1984 yılında başlarken, Ekim 1985 yılında Özgür Yazılım Vakfı kuruldu. Richard Stallman bu vakfın kuruluşuyla birlikte, özgür yazılım tanımını ve “Copyleft” kavramını, herkes için yazılım özgürlüğü görüşünü ortaya attı.
Copyleft Nedir?
Kısaca Copyleft ifadesini açıklarsak; İngilizcedeki Copyright teriminin zıt anlamlısıdır. Telif haklarının belirli bölümlerinden yazarı tarafından belirtilen şartlar altında feragat edilmiş olan bir esere işaret eder. Hukuki anlamda, Copyleft aslında Copyright kavramıyla tanınan hakların taraflar arası düzenlenen bir sözleşme yerine, bir tarafı anonim olan bir sözleşme ile paylaşılması anlamına gelir
Özgür yazılım, özgürlükleri korumaya yönelik bir akımın adıdır. Özgür yazılım denildiği zaman, İngilizcedeki “Free Software” ifadesinin ilk kelimesinin (“free”) çift anlamlı olması dolayısıyla oluşan yanlış anlamayı önlemek için özellikle vurgulanması gereken, “Free software” denildiği zaman “free beer” (bedava bira) değil “free speech” (ifade özgürlüğü) kavramının akla gelmesi gerektiğidir.
Önerilen Yazı » Veri Nedir? Veri Tabanı Nedir? Özellikleri Nelerdir?
Özgür yazılımın temelinde kullanıcının bir yazılımı çalıştırma, kopyalama, dağıtma, inceleme, değiştirme ve geliştirme özgürlükleri yatar. Daha kesin ve açık bir ifadeyle, özgür yazılım kullanıcılar için aşağıdaki özgürlükleri tanımlar:
- Her türlü amaç için programı çalıştırma özgürlüğü (özgürlük 0).
- Programın nasıl çalıştığını inceleme ve kendi gereksinimleri doğrultusunda değiştirme ve uyarlama özgürlüğü (özgürlük 1). Program kaynak koduna erişim bunun için bir ön şarttır.
- Yeniden dağıtma ve toplumla paylaşma özgürlüğü, böylece komşularınıza yardım edebilirsiniz (özgürlük 2).
- Programı geliştirme ve gelişmiş haliyle topluma dağıtma özgürlüğü, bu özgürlüğün amacı tüm topluluğun geliştirmelerden yararlanmasını sağlamaktır (özgürlük 3).
Program kaynak koduna erişim bunun için de bir ön şarttır. Bir program bütün kullanıcılara yukarıdaki hakları tanıdığı zaman, özgür bir yazılım olur. Özgür bir yazılıma sahip olduğunuz zaman kopyalarını aynen ya da değiştirerek, ücret karşılığı veya ücretsiz, herkese ve her yerde dağıtma özgürlüklerine sahip olursunuz. Bu özgürlüklere sahip olmak, kimseden izin almamayı ve izin için hiçbir bedel ödememeyi de içerir.
Özgür Yazılımın Yararları
Sayısal bilgi teknolojisi, bilginin güncellenmesini ve kopyalanmasını kolaylaştırarak insanlığa katkıda bulunmaktadır. Bilgisayarlar bu işlemleri hepimiz için daha kolay hale getirmeyi vaat etmektedirler. Bu kolaylaştırma, herkes tarafından istenmemektedir. Telif hakları sistemi bilgisayar yazılımlarının birer “sahibi” olmasını getirmekte ve bu ‘sahipler’in çoğu, ilgili yazılımların potansiyel faydalarını kamu ile paylaşmak istememektedirler.
Kullandığımız yazılımların yalnızca kendileri tarafından kopyalanabilir ve değiştirilebilir olmasını istemektedirler. Bu sahiplilik, yazılımların üzerinden aşırı derecede kar elde etmeyi amaçlayan yazılım tekellerinin savunduğu ve sektörel bağımlılığı arttıran bir araçtır. Bağımsızlık için özgür yazılım, özgür/açık standartlar ve özgür kültürün önemi yüksektir.
Önerilen Yazı » Alan Turing Kimdir? Hayatı ve İcatları Nelerdir?
Bir başka önemli yarar, özgür yazılımların kar amacı güdülmeden ve genellikle bedelsiz olarak dağıtılmasıyla ortaya çıkar. Günümüzde ağırlıklı olarak bir bilgisayarın maliyetini donanımdan ziyade oldukça yüksek olan yazılım lisans ücretleri oluşturmaktadır. Bu bilgisayarların maliyetini düşürmek ve kullanabilecek kişilerin sayısını arttırmak, bu bilgisayarlarla birlikte özgür yazılımın dağıtılmasının teşvik edilmesinde yatmaktadır. Özgür yazılımın yararlarını temel başlıklar halinde özetlersek:
- Yazılım tekellerinin dayatmalarına karşı durmak, bağımsızlık.
- Bir yazılım veya teknoloji hakkında gelişmiș uzmanlaşma, yenilikçilik.
- Kaçak (korsan) yazılım kullanımının önlenmesi.
- Yazılımların açık kaynak kod olması, onlara yönelik güvenilirlik ve güvenlik açısından önemlidir.
- Uyumlu çalışma, uyumlu standartlar.
- Șeffaflık, bilgilenme hakkının yerine getirilmesi.
- Veri paylaşılabilirliği.
- Kod uyarlama ve tekrar kullanım, kullanıcı gereksinimine duyarlılık ve esneklik.
- Maliyet.
Özgür Yazılım İçin Neler Yapılabilir?
Özgür yazılımın bu yararları için yaygınlaştırılması önemlidir. Zorunlu olarak sahipli yazılımlarla birlikte satılan donanım ürünlerini kullanıcıların tercihleri doğrultusunda diledikleri gibi satın alabilecekleri bir hale getirmek atılacak ilk adım olmalıdır. Kullanıcıların bilinçlendirilmesi, özgür yazılımı neden kullanmaları gerektiğinin anlatılması ve rahatça kullanabilecekleri özgür yazılımların tanıtılması bilgisayar konusunda uzman olmayan kullanıcılar için önemlidir. Belli bir destekten yoksun olan kullanıcılar, özgür yazılımın kulaktan duyma bir şekilde zor olduğunu düşündükleri için kullanmaktan kaçınabiliyor.
Özgür ve açık kaynak kodlu yazılım ile açık standartlar, bilginin aktarılması ve özgürce kullanılması açısından bağımlılığı önleyen kavramlardır. Açık standartlar, birlikte işlerliği ve veri paylaşımını kolaylaştırır. Açık standartları desteklemeyen, kendi standartlarını zorlayan yazılımların diğer yazılımlarla haberleşmesi ve veriyi herkesin (ilgili yazılımı kullanmadan) erişebileceği bir eksenden çıkarması söz konusudur.
Hükümetlerce alınacak kararlar, yalnız kurumları değil, şirketleri ve çalışanları da doğrudan etkiliyor. E-devlet sürecinde hükümetlere düşen çok fazla görev olmasına rağmen bunları dört ana maddede toplamak mümkün:
- Kamusal bilgiye özgür erişimi sağlamak.
- Kamusal verinin devamlılığını sağlamak.
- Kamunun geneline ve vatandaşlara ait verilerin güvenliğini sağlamak.
- Gereksiz kamu harcamalarından kaçınmak.
Özellikle son iki maddenin gerçekleştirilmesinde, ülkeler e-devlet projelerini gerçekleştirmek için özgür yazılımı tercih etmektedirler. Verilerin güvenliğini, içerisinde ne barındırdığını bilmediğiniz, kapalı kodlu sahipli bir yazılımla sağlayamazsınız. Gereğinde açık kaynak bir projeyi ulusal bir şekilde tekrar yaratmanız gerekir. Gereksiz kamu maliyetlerini en az indirmek ve yazılımda dışa bağımlılığı azaltmak için de açık kaynak kod yazılımı önemli bir araçtır.