Geleceği Yazanlar

Açık Kaynak Kodlu Yazılım (Open Source Software)

Açık kaynak yazılım; kaynak kodlarıyla beraber herkesin erişebileceği, değiştirebileceği, geliştirebileceği yazılımlardır. Açık kaynak kodlu yazılımların da diğer yazılımlarda da olduğu gibi lisanslarının olması gerekmektedir. Dünyada 100' den fazla çeşit açık kaynak kod yazılım lisansı bulunmaktadır. Bir yazılımın açık kaynak kodlu olması demek o kod üzerinde istediğinizi yapabileceğiniz...

Fahri Kaan Göktuna |

22.03.2020

Açık kaynak yazılım; kaynak kodlarıyla beraber herkesin erişebileceği, değiştirebileceği, geliştirebileceği yazılımlardır. Açık kaynak kodlu yazılımların da diğer yazılımlarda da olduğu gibi lisanslarının olması gerekmektedir. Dünyada 100' den fazla çeşit açık kaynak kod yazılım lisansı bulunmaktadır.

Bir yazılımın açık kaynak kodlu olması demek o kod üzerinde istediğinizi yapabileceğiniz anlamına gelmez. Örneğin bazı açık kaynak kodlu yazılımlarda, lisans gereği kaynak kodu kullanabilir, geliştirebilir ve yazılımdan kaynaklı sorunlardan ötürü kodu yayınlayan, yazan kişileri sorumlu tutabilirsiniz. Bazı yazılımlarda ise açık kaynak kodu değiştirdiğiniz ve kullandığınız anda sorumluluğunu üstlenir ve ortaya çıkabilecek problemlerden ve sorunlardan artık yazılımı kullandığınız yerde siz de sorumlu olmaya başlayabilirsiniz. Bazı açık kaynak kodlu yazılımları ticari amaçlarla kullanabilir ve dağıtabilir bazılarında ise lisans gereğini bunu yapamazsınız.

Açık Kaynak Kod Lisansı (Open Source Code License)

Lisanslar; açık kaynak kodlu yazılımın kullanımı, dağıtımı, geliştirilmesi gibi yazılımın belli haklarını ve sınırlarını koruyan, yazılımı geliştiren ve kullanacak, değiştirecek, dağıtacak kişiler arasındaki kontratlardır.

Giriş bölümünde bahsedildiği gibi dünyada 100'ün üzerinde açık kaynak kod lisanslama belgeleri bulunmaktadır. Bunlardan en çok kullanılanları bu yazıda inceleyeceğiz.

1.MIT LICENSE

MIT tarafından geliştirilen açık kaynak kodlu yazılımlarda en yaygın olarak kullanılan lisanslama şeklidir. MIT lisansı açık kaynak kod yazılımını birçok açıdan oldukça özgür kılar. Örneğin MIT lisansa sahip bir açık kaynak kodlu yazılımı, ticari amaçlı kullanılabilir, üzerinde değişiklik yapabilir ve istediğiniz gibi dağıtabilirsiniz. MIT lisansı, yazılımı kullananları özgür bıraktığı gibi geliştiricileri de özgür bırakır. Yani kaynak kodda bir sorun çıkması durumunda geliştiriciler üzerinde herhangi bir yükümlülük tutulamaz. Dikkat etmeniz gereken tek nokta ise MIT lisanslı bir yazılım kullanıyor ya da geliştiriyorsanız, temel aldığınız yazılıma referans göstermeniz gerekmektedir. MIT lisansının getirdiği tek yükümlülük budur.

2.APACHE LICENSE

MIT lisansına çok benzer şekilde bütün özgürlüklere ve yayınlama sırasında referans etme yükümlülüğüne sahiptir. MIT lisanstan farklı olarak açı kaynak koddaki yaptığınız değişiklikleri lisans üzerinden belirtmeniz ve son kullanıcıyı bu değişikliklerden haberdar etmeniz gerekliliğidir.

3.GNU (GENERAL PUBLIC LICENSE)

GNU lisansları MIT ve APACHE lisansları gibi kaynak kodun özgürlüğü hususunda benzerlik gösterir. Yazılım üzerinde istediğiniz değişikliği, geliştirmeyi yapabilirsiniz. Ticari amaçlı veya ticari amaç olmadan yazılımı dağıtabilirsiniz. Fakat bu lisanslı yazılımlarda dikkat etmeniz gereken şey eğer yazılımı ticari amaçlı yaymayı düşünüyorsanız kaynak kodlarını gizleyemezsiniz. Yazılımı sattığınız kişi veya kurumlara kaynak kodları da iletmek yükümlülüğünü getirir.

Açık kaynak yazılımların faydaları nelerdir?

Turkcell içerisinde de hem kullanım hem de geliştirici olarak en önem verdiğimiz konulardan biri olan açık kaynak kodlu yazılımların kişi veya kurumlara sağlandığı birçok avantajlar vardır.

1.Yüksek Kalitede Yazılımlar

Açık kaynak kodlu yazılımlar doğası gereği yüksek kaliteye sahip yazılımlardır. Kaynak kod herkese açık olduğundan dolayı, yazılımlar geliştiriciler tarafından sürekli güncel tutulan az hataya sahip olurlar.

2.Sağlayacı (Vendor) Kısıtlaması

Açık kaynak kodlu yazılımlar diğer kapalı kutu yazılımlara göre daha hızlı ve efektif çözümlerdir. Ticari amaçlı kapalı kutu bir yazılımda örneğin İlişkisel Veri tabanı (RDMS) yazılımları için organizasyonunuz oldukça yüksek lisans ücretleri ödemek zorundadır. Organizasyona ait herhangi bir değişiklik veya geliştirim konusunda ise sağlayıcılara muhtaç kalmaktadır. Organizasyon, bu yazılımı kaynak koda sahip olmadığı için güncelleyemez ve kendi ihtiyaçları doğrultusunda özelleştirip kullanamaz. Öte yandan açık kaynak kodlu bir RDMS yazılımı olan PostgreSQL için ise durum bu şekilde değildir.

PostgreSQL' in kodu internet ortamında herkese açıktır ve organizasyonunuz özelleştirme veya geliştirim durumunda bu kodu kendi ihtiyaçları doğrultusunda hızlı bir şekilde değiştirip kullanabilir.

Örneğin Turkcell de geliştirdiğimiz BPM(Business Process Management - Süreç Altyapısı) altyapısı yakın bir zamana kadar sadece kapalı kutu bir veri tabanı ile çalışıyordu. Daha sonra ekibimiz uygulamayı PostgreSQL ve diğer RDMS sistemlerle de çalıştırabilir hale getirdi. Turkcell içerisinde ilişkisel veri tabanlarında kullanılan veri tabanı seviyesindeki şifre politikasını PostgreSQL için de uygulamamız gerekiyordu. Bu ihtiyaçtan dolayı PostgreSQL kaynak kodu üzerinde şirket organizasyonuna uygun şifre politikasını kaynak kodda değiştirip kullanmaya başladık. Bunu diğer kapalı kutu yazılımlarda sadece sağlayıcının (Vendor) verdiği destekle yapabilirsiniz.

3.Kolay Lisans Yönetimi

Açık kaynak kodlu yazılımlarda, diğer yazılımlara oranla lisanslama konusunda çok fazla efor sarf etmenize gerek kalmaz. Açık kaynak kodlu yazılımı ihtiyacınız doğrultusunda, herhangi bir açık kaynak kodu lisanslama ile kolayca imzalayabilirsiniz

4. Düşük Yazılım Maliyeti

Açık kaynak kodlu yazılımlar organizasyonunuzdaki yazılım maliyetlerini minimum seviyeye düşürür. Bir sağlayıcı tarafından satın aldığınız kapalı kutu, ücretli ilişkisel veri tabanları yerine PostgreSQL veya MySQL gibi açık kaynak kodlu yazılımlarla ödediğiniz yüksek lisans maliyetlerinden kurtulabilirsiniz.

5. Oldukça Fazla Destek

Açık kaynak kodlu yazılımların kaynak kodu herkese açık olduğundan dolayı yazılım geliştiriciler topluluğundan oldukça fazla destek alırsınız. Destek alabilmek için herhangi bir sağlayıcıya bağlı kalmak durumunda kalmazsınız.

6. Güvenli Yazılım

Kapalı kutu yazılımlara oranla açık kaynak kodlu yazılımlar daha güvenli yazılımlardır. Kaynak koduna erişemediğiniz yazılımların güvenliğinden hiçbir zaman emin olamazsınız. Ama kaynak kodu sizde olan yazılımlardaki varsa güvenlik zafiyetlerini kolayca çözebilir ve kaynak kodu daha güvenli hale getirebilirsiniz.

7. Yazılım Teknolojisinin Geleceği

Günümüzde açık kaynak kodlu yazılımlar artık yazılım teknolojisinin geleceği olarak görünmektedir. Web, Mobile ve Cloud çözümlerinde dominant bir hale gelmiştir. Birçok veri, robotik, yapay zeka, siber güvenlik, AR/VR ve analitik yazılım çözümleri artık internet ortamında kaynak kodları açık bir şekilde paylaşılmaktadır.

Bazı popüler olan açık kaynak kodlu yazılımlar

2000'ler sonrası açık kaynak kodlu yazılım trendinin tırmanışından sonra günümüzde birçok hali hazırda kullandığımız sağlayıcılar tarafından sağlanan kapalı kutu yazılımlara alternatif birçok açık kaynak kodlu yazılımlar popülerleşmeye başlamıştır. 

1.Linux

Windows işletim sistemine rakip olan Linux, günümüz yazılım dünyasında popülerliği gittikçe artan, oldukça güvenli, gelişmiş özelliklere sahip bir açık kaynak kodlu işletim sistemi yazılımıdır.

2.LibreOffice

Alternatif açık kaynak kodlu son kullanıcı ofis aracıdır.

3.PostgreSQL

PostgreSQL son 10 yılda her geçen gün artan son kullanıcı ve destekleyicilere(contributor) sahiptir. Db-Engines.com sitesi' nin 2012 ve 2020 yılları arasında yaptığı araştırmaya göre diğer kapalı kutu ilişkisel veri tabanlarının popülerlik puanı gittikçe azalırken, PostgreSQL' in eksponansiyel artışı gözlerden kaçmamaktadır.

 

Fig. 1. Histrorical trend of the popularity ranking of database management systems in 2013-2020. (Graph from DB-Engines.com 2020-03-01)​

 

4.Kubernetes

“Kubertenes” Google tarafında GO dilinde geliştirilmiş “Cloud Native” uygulamalar için “container” ların cluster edilmesi ve yönetilmesini sağlayan açık kaynak kodlu bir yazılımdır. “Kubernetes” şu an en popüler kaynak kodu paylaşım platformu olan “GitHub” üzerinden en fazla popülerliği olan açık kaynak kodlu yazılımdır.

 

Fahri Kaan Göktuna |

22.03.2020

Yorumlar

Abdulsamet Ekşi
28.04.2020 - 06:02

Bilgilendirici bir yazı olmuş. Teşekkürler.

İsa İmadoğlu
08.05.2020 - 02:55

Yazı sayesinde özellikle lisansların geçerlilik durumlarıyla ilgili kafamdaki soru işaretlerini gidermiş oldum. Teşekkür ederim.
 

ABDULLAH KIRMIZI
23.04.2020 - 04:26

yazı için teşekkürler

Gökhan Güneş
23.01.2021 - 01:15

Çok güzel bir yazı olmuş

Dilara Yeni
11.04.2021 - 08:08

Etkileyici bir yazı, teşekkürler.

Hasan Aday
22.04.2022 - 10:36

Bilgilendirme için teşekkürler...

EKREM EROL
26.10.2022 - 05:06

Güzel ve bilgilendirici bir yazı olmuş teşekkürler..

Mertkan Akay
26.10.2022 - 10:52

Teşekkürler :)

Serhat BİRİNCİ
30.10.2022 - 11:35

çok açıklayıcı bir yazı olmuş teşekkürler

Fatma Bornovalı
02.11.2022 - 02:09

Çok faydalı bilgiler. Teşekkürler 

Fatma Bornovalı
02.11.2022 - 02:10

Çok faydalı bilgiler. Teşekkürler 

Fatma Bornovalı
02.11.2022 - 02:10

Çok faydalı bilgiler. Teşekkürler 

Gökhan Başargel
02.11.2022 - 04:09

Makale gayet açıklayıcı.

Hüseyin Erkal Ergül
03.11.2022 - 01:24

Bilgilendirici bir yazı olmuş. Teşekkürler.

Selçuk Mehmet TUNÇER
04.11.2022 - 11:45

Teşekkürler :)

Aynur Çelebi
07.11.2022 - 01:28

Teşekkürler.

Esat Özkan
07.11.2022 - 09:51

Bilgilendirici bir yazı olmuş. Teşekkürler

Kamil Aydın
08.11.2022 - 07:15

kapsamlı ve güzel bir yazı olmuş teşekkürler

Şehmus Erol
10.11.2022 - 07:14

Yazıyı okuyunca üniversite 2.sınıfta yerli işletim sistemi olup aynı zamanda Open Source olan 'Pardus' aklıma geldi, linux kadar iyi olmasada kullanılabilir bir işletim sistemi

Muharrem Enes Durak
28.11.2022 - 08:17

Tüm yazılım geliştiricileri için dikkate alınması gereken bir mesele bu. Birçok kişinin başının ağrıdığına şahit oldum.
Sade ve yararlı anlatımınız için teşekkürler.

Fatma Bornovalı
29.05.2023 - 07:04

Çok açıklayıcı bir bilgilendirme olmuş. Teşekkürler