Eğer kullanıcılar bir yazılımı özgürce kullanabiliyor, kopyalayabiliyor, dağıtabiliyor ve üzerinde çalışıp değişiklik yapabiliyorlarsa bu yazılım bir özgür yazılımdır.
- Herhangi bir amaç için yazılımı çalıştırma özgürlüğü.
- Her ne istiyorsanız onu yaptırmak için programın nasıl çalıştığını ögrenmek ve onu değiştirme özgürlüğü. Yazılımın kaynak koduna ulaşmak, bu iş için önkoşuldur.
- Kopyaları dağıtma özgürlüğü. Böylece komşunuza yardım edebilirsiniz.
- Tüm toplumun yarar sağlayabileceği şekilde programı geliştirme ve geliştirdiklerinizi (ve genel olarak değiştirilmiş sürümlerini) yayınlama özgürlüğü. Kaynak koduna erişmek, bunun için bir önkoşuldur.
Bir yazılım, eğer yazılımın kullanıcıları bu özgürlüklere sahipse özgür yazılımdır. Yani, kopyalarını değiştirerek ya da değiştirmeden, ücretli ya da ücretsiz, herhangi birine dağıtmaya serbest olmalısınız. Bu anlamda özgür olmak demek, tüm bunları yapmak için izin istemek zorunda olmamanız demektir.
Açık Kaynak Kod Nedir?
"Açık kaynak kodlu yazılım" terimini sıkça duyuyoruz. Linux ve Linux tabanlı Android gibi yazılımların açık kaynak kodlu olduğunu biliyoruz. Peki açık kaynak kod tam olarak ne demek ve açık kaynaklı yazılımın avantajları neler?
Programlar, yani kısaca .exe, ..dmg, .deb gibi dosyalar, binlerce "kaynak kodu" satırından derlenmiştir. Programlama dilini bilmeyenler için fazlasıyla karışık görünebilecek bu kodlar, bir uygulama dosyası olarak derlenir. Derleme işleminden sonra artık kaynak koduna ihtiyaç duyulmaz. Dolayısıyla iTunes gibi bir yazılımı çalıştırırken kaynak kodunu görmez, sadece ürünün son halini görürsünüz. Çoğumuz için bu zaten olması gereken şeydir. Açık kaynak kodlu yazılımlar ise kaynak kodlarıyla beraber yayınlanırlar. Geliştirici, bazen onları derleyip, kaynak kodlarının yanında bir uygulama dosyası da sunabilir. Bazı durumlarda ise derleme işi kullanıcıya bırakılır.
Avantajları ;
-Açık kaynak kodlu yazılımlar, programcı topluluğunun gelişimini sağlar. Bu sayede eğitime, yaratıcılığa ve ilham almaya yardımcı olur.
-Açık kaynak kodlu yazılımlarda örneğin bir açık bulunduğunda, onunla ilgilenen çok daha fazla kişi olduğundan çok daha çabuk kapatılabilir. Kapalı kaynak kodlu yazılımlarda ise uzun bir süre beklemeniz gerekebilir.
-Yazılımların farklı çeşitlerinin ortaya çıkmasını sağlar. Örneğin Mozilla Firefox, Chromium ve Linux'tan türeyen birçok yazılım var.
-Yazılım geliştiricisinin PC'nizde şüpheli işler çevirmediğinden emin olmanızı sağlar. Kaynak kodu kapalı bir yazılımın yaptığını iddia ettiği şeyleri gerçekten güvenilir yoldan yaptığını anlamanın çok fazla yolu olmayabilir.
Açık kaynak kodlu işletim sistemleri;
Kişisel bilgisayar kullanımının popüler bir hal almaya başladığı zaman dilimi içerisinde işletim sistemi olarak en çok kullanılan sistemler Windows ve Apple'ın ürettiği Mac OS işletim sistemleriydi. Bu işletim sistemleri kullanıcılara belli bir lisans karşılığı satılıyor ve kaynak kodları gizli olarak ulaşıyordu. Ticari amaçlara dönüştürülen bu işetim sistemleriyle beraber tamamen açık kaynaklı “özgür yazılım” hareketi de baş gösterdi. Bu hareket sonucunda ortaya güzel bir alternatif olarak Linux tabanlı dağıtımlar sunulmaya başlandı. Hala günümüzde azımsanamayacak bir aktif kitle tarafından kullanılan Linux tabanlı işletim sistemleri açık kaynak kodludur ve kullanıcılarının geliştirmesine açık olarak yayın yapmaktadır. Açık kaynak kodlu ve özgür bir yazılım olduğu için de Linux dağıtımlarının büyük bir kısmı ücretsiz olarak kullanılabilmektedir.
Son olarak; kaynak kodların daha kolay yorumlanabilmesi için yazılımcılar kod satırlarının içerisine yorum ekleyebilirler. Eklenen bu yorumlar sadece kaynak kod dosyası incelenirken görünür ve normal şartlarda görülemez. Bu yorumların eklenmesinin nedeni sistemi parçalara ayırmak ve olası güncelleme ya da sorun giderme durumunda diğer yazılımcıların veya kendisinin kolayca doğru kod parçasını bulmasına yardımcı olmasıdır. Sadece işletim sistemi değil birçok alanda hizmet eden küçük ya da büyük birçok yazılım geliştirilmektedir. Açık kaynak topluluğu Photoshop gibi ticari yazılımlara alternatif olarak Gimp gibi açık kaynaklı ve ücretsiz yazılımlar çıkarmıştır ve çıkarmaya devam etmektedir. Çeşitliliği ve kaliteyi artırmak için kullanılarak ya da geliştirilerek destek verilmesi gerekir.
Kapalı Kaynak Kodlu Yazılım Nedir?
Kaynak kodun açık olması güvenliği nasıl etkiler?
Özgür yazılımla yeni tanışmış olanların aklına ilk gelen sorulardan biri kaynak kodun açık olmasının bir güvenlik sorunu oluşturup oluşturmayacağı oluyor. Madem programın kaynak kodu ortada saldırganlar bunu saldırı için de kullanabilirler, bu da olumlu bir şey değil diye düşünüyor büyük kalabalıklar. Güvenlikle ilgili neredeyse bütün yazılımların kaynak kodlarının açık olması, kullandığımız bütün şifreleme araçlarının kodlarının ortada olması içinizi rahatlatmıyorsa birlikte bakalım durum gerçekten böyle mi?
Algoritmayı gizleyerek güvenlik sağlanamaz
Kriptografi dersinin başlangıcında anlatılan konu budur: bir algoritmayı gizleyerek onu daha güvenli hale getiremezsiniz. Konuyla ilgisi yok ama gizlenmesi gereken şey algoritma değil anahtar olmalıdır. Eğer güvenlik için tek dayanağınız algoritmanın gizliliği olursa o sızdırıldığında (saklanmak isteyen her şey bir gün sızdırılacaktır) algoritmanın yenilenmesi gerekecektir. Bunun ne kadar büyük maliyetli bir iş olacağı düşünülünce açıklıktan başka alternatif olmadığı da görülecektir.
Hatasız yazılım olmaz!
Yazdığınız programın kaynak kodunu ister açın isterseniz kapalı tutun mutlaka hatalar/açıklar içerecektir. Yazılımı tek başınıza sizin yazmış olmanız veya bir grupla geliştirmiş olmanız bu gerçeği değiştirmeyecektir. Ne kadar kalabalık bir geliştirici topluluğunuz olursa hatalar da o kadar azalacaktır. Benzer şekilde test için projeye ayırabileceğiniz kaynak da hataların azaltılmasına olumlu katkıda bulunacaktır. Projenizin kaynak kodlarını geliştirici ekipten başka kimsenin görmesine izin vermezseniz bütün bu yük sizin üzerinizde olacaktır. Halbuki projenizi bir özgür yazılım veya açık kaynak lisansıyla lisanslarsanız kaynak kodlarınıza başkaları da bakıp hataları size bildirebilecek veya daha da iyisini yapıp iyileştirmeleri size gönderebilecektir. Eğer benim projeme kim bakacak diyorsanız kendi endişenizi kendiniz ortadan kaldırmışsınız demektir ama projenizi dışarıdan katkı almaya uygun bir şekilde lisanslarsanız projeye ayıracağınız bütçe ile bedelini ödeyemeyeceğiniz geliştiricilere ve testçilere kavuşabilirsiniz.
Özgür yazılımlara daha çok göz bakar
Yazılımın geliştiricisi değil de kullanıcısı iseniz daha çok kişi tarafından ortaklaşa geliştiriliyor olması ve daha fazla test edilmiş olması sizin için daha az hata barındıran bir yazılım anlamına gelecektir. Neden bir şirketin çalıştırabileceği sınırlı sayıda yazılım geliştiriciye güvenebilirken dünyanın dört bir tarafına dağılmış çok daha büyük kalabalıklara güvenmeyeceksiniz? Hangi şirket bir tarayıcı yaklaşık 5000 kişinin kod göndermesine, yani yazılımın kodlarını okumasına kaynak ayırabilir? Bunu ancak özgür yazılımın gücü sağlayabilir.
Yazılımların hataları çoğunlukla kod okuyarak bulunmaz
Bir projenin kaynak kodlarını okuyup hatasını bulmak tahmin edilenden çok daha zor bir iştir. Elbette yazılımların hataları, açıkları kodları da okunarak tespit edilebilir ama yukarıdaki örneğe bakarsanız yaklaşık 16 milyon satırlık bir projede bunun pek kolay bir iş olmayacağını tahmin edebilirsiniz. Peki yazılımların açıkları nasıl bulunuyor? Belirli koşullar altındaki davranışlarına bakılarak elbette. Neredeyse bütün GNU/Linux dağıtımlarının varsayılan olarak kullandığı kabuk olan bash’in 1989’dan bu yana içerdiği bir hata ancak 2014’de görülebildi. Eğer kodu okuyup açığı tespit etmek sanıldığı kadar kolay olsaydı bu 25 yıldan kısa sürerdi herhalde.
Özgür yazılımların açıkları çok hızlı kapatılabilir
Özgür yazılımlar kullanıcılarına yazılım üzerinde değişiklik yapma ve bu değişikliği dağıtma hakkı verdiklerinden bir yazılım için geçerli bir hata veya açık bulunduğunda onu mutlaka geliştiricinin düzeltmesi gerekmez. Yazılımın geliştiricisini veya ait olduğu firmayı beklemek zorunda kalmazsınız özgür yazılım kullanırken.
Yazılımın kaynak kodlarının açık olması elbette yukarıda saydığım avantajlar için yeterli değildir. Eğer kullanıcılar yazılımı istedikleri gibi çalıştıramıyorsa, değiştiremiyorsa, dağıtamıyorsa veya değiştirdiği halini dağıtamıyorsa yazılım bu getirilerden mahrum kalacaktır. Yani sadece kaynak kodun açık olmasından sihirli bir iyileştirme beklememek gerekir. Bu avantajları bize sağlayan şey özgür yazılımdır.
■ Ülke Güvenliği:
Yazılımların kodlarına herkes ulaşmalıdır. Kısacası açık kaynak kod ve özgür yazılım kapalı kaynak koda göre daha güvenlidir.
■ Maliyet:
Bu tür yazılımlar ya ücretsiz ya da özellikle diğer türlerde yazılımlara kıyasla oldukça daha düşük ücretlerle sunulduğundan maliyeti düşürmek açısından da tercih edilmelidir.
■ Etik/Ahlaki Açıdan:
Etik açıdan özgür yazılımın kullanılması ,özgür yazılıma destek olunması yazılımların gelişimine de katkı sağlamak açısından önemlidir. Ayrıca sağladığı 4 temel özgürlük de (çalıştırma, değiştirme, dağıtma, geliştirme) topluma fayda sağlamak amacıyla düşünülmüş özgürlüklerdir. Bu yüzden ahlaka da uygundur.
Yararlandığım kaynaklar :
http://ozgurlisanslar.org.tr/sik-sorulan-sorular/ozgur-yazilim-nedir/
https://forum.pardus.org.tr/t/kaynak-kodun-acik-olmasi-guvenligi-nasil-etkiler/1586
Ve blogumda ki yazı
https://www.blogger.com/blog/post/edit/1348394277034548609/1059683498150948315