Nedir? Nasıl?

Açık Kaynak Kodlu Yazılım (AKKY) Nedir?

29 Temmuz 2023 tarihinde Cumhurbaşkanlığından Kamuda Açık Kaynak Kodlu Yazılım Kullanımı adında bir genelge yayınlandı. Genelgeyle birlikte açık kaynak kodlu Yazılımların yaygınlaştırılıp bilişim harcamalarından tasarruf edilmesi, üretici bağımlılığının azalması ve siber güvenliğin güçlendirmesini amaçlıyor. Genelge yayım tarihinden itibaren 9 ay içerisindeyse tüm kamu kurumları AKKY Geçişi Analiz ve Yol Haritası Raporu şablonuna uygun bir şekilde Cumhurbaşkanlığı Dijital Dönüşüm Ofisi Başkanlığına Geçiş Analiz Raporlarını iletecek. Peki nedir bu Açık Kaynak Kodlu Yazılım? Bu yazımda Açık Kaynak Kodlu Yazılım (AKKY) Nedir? sorusunu cevaplayacağım.

Kamuda Açık Kaynak Kodlu Yazılım Kullanımı Genelgesi‘ne ulaşmak bu sayfayı ziyaret edebilirsiniz: Kamuda Açık Kaynak Kodlu Yazılım Kullanımı Genelgesi

Açık Kaynak Kodlu Yazılıma Geçiş Analiz Rehberi’ne ulaşmak içinse bu sayfayı ziyaret edebilirsiniz: Açık Kaynak Kodlu Yazılıma Geçiş Analiz Rehberi

Açık Kaynak Kodlu Yazılım (AKKY) Nedir?

Açık Kaynak Kodlu Yazılım (AKKY) Nedir?

Açık Kaynak Kodlu Yazılım (Open Source Software), kaynak kodunun herkes tarafından görüntülenebilen, paylaşılabilen ve değiştirilebilen yazılımlara verilen isimdir. Açık kaynak kodlu yazılımların kaynak kodları genellikle açık ve ücretsiz bir lisans altında dağıtılır, böylece kullanıcılar tarafından indirilebilir ve özgürce kullanılabilir.

Yazılımcılar açık kaynak kodlu projelerin kaynak kodlarına erişebildiği için yazılıma yeni özellikler ekleyebilir, sağlıklı şekilde çalışmasını engelleyen kodları düzeltebilir ve kodlarda bulunan olası güvenlik zafiyetlerini tespit edip güvenli hale getirebilir. Bu sayede açık kaynak kodlu yazılım ilk çıktığı günden itibaren kalitesini sürekli olarak artırabilmektedir.

Açık Kaynak Kodlu Yazılımın Temel İlkeleri

  1. Özgür Kullanım: Açık kaynak kodlu yazılımlar herkese indirilebilme, kopyalayabilme, dağıtabilme ve düzenleyebilme hakkını verir.
  2. İş Birliği: Yazılımınızı oluştururken bazen tek başınıza çözemeyeceğiniz sorunlarla karşılaşabilirsiniz. Açık kaynak kodlu yazılım projeleri bu nedenle topluluklara sahiptir. Bu sayede topluluğun üyeleri birlikte çalışarak sorunların çözülmesinde ve yazılımın iyileştirilmesinde katkıda bulunurlar.
  3. Erişilebilirlik: Yazılımın kaynak kodu herkese açık olacak şekilde paylaşılır. Bu sayede yazılımcılar yazılımın nasıl çalıştığını anlamak, incelemek ve geliştirebilmek için kaynak kodlarını kullanabilir.
  4. Lisanslama: Açık kaynak kodlu yazılımlar genelde özel lisanslar ile dağıtılır. Bu lisanslar kullanıcıların yazılımı nasıl kullanabilecekleri, dağıtabileceğini ve düzenleyebileceğini belirler. Bu lisanslama türlerine en popüler açık kaynak kodlu lisanslardan biri olan GPL (Genel Kamu Lisansı) örnek verilebilir. GPL lisansı, yazılımın özgürce kullanılabilmesini ve değiştirilmesini sağlar fakat yapılan değişikler sonrasında ortaya çıkan yeni yazılımı dağıtmak isterseniz siz de GPL lisansıyla kaynak kodlarınızın herkese açık şekilde paylaşmalısınız.
  5. Özelleştirilebilirlik: Yazılımcılar açık kaynak kodlu yazılımları lisansların izin verdiği şekilde dilediği gibi düzenleyebilir. Bu sayede dilediği şekilde yeni özellikler ekleyebilir veya ihtiyacı olmayan özellikleri kaldırabilir.
  6. Kapsayıcı Yönetim: Yazılımın geliştirilmesi için çeşitli bakış açılarını ve yorumlarını dikkate alarak toplulukta düzenlenen oylama sonucunda yeni özellikler getirilebilir. Bu sayede yazılımın daha hızlı geliştirilebilmesinin yanında kullanıcılar tarafından daha fazla destek ve katkı alınabilir.

 

En Çok Kullanılan Açık Kaynak Kod Lisansları

  • GNU General Public License (GPL): GPL, yazılımın özgürce kullanılmasına, değiştirilebilmesine, geliştirilmesine ve dağıtılmasına izin verir. Aynı zamanda yazılımdan türetilen çalışmalarında aynı şekilde GPL lisansı altında yayınlanması zorunluluğu gibi maddeler içerir. İçerisinde bir çok lisans türü bulundurur. Örneğin yazılım kütüphaneleri için düzenlenmiş olan LGPL lisansını örnek verebiliriz.

    GNU General Public License (GPL) kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: GNU Library General Public License
  • Apache License: Yazılımın dağıtılması halinde kodun değiştirilmiş veya değiştirilmemiş fark etmeden Orijinal telif hakkı bildirimi, lisansın bir kopyasını, eğer orijinal kodda yapılan bir değişiklik bulunuyorsa beyanı, lisans sahibine atıf notlarıyla birlikte NOTICE dosyasının bir kopyasını kodlarına eklenmesi zorunluluğu gibi maddeler içerir. GPL’in aksine değiştirilen kodu Apache Lisansı altında yayınlanmasına gerek bulunmamaktadır.

    Apache License kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: Apache License
  • Microsoft Public License (MS-PL): Yazılımda orijinal olarak bulunan tüm telif hakkı, patent, ticari marka ve atıf bildirimlerinin saklanması zorunludur. Ayrıca yazılımın tümünü veya herhangi bir bölümünü kaynak kodu biçiminde dağıtılması halinde lisansın eksiksiz bir kopyası eklenerek GPL lisasnsında olduğu gibi MS-PL kapsamında yayınlanması zorunluluğu gibi maddeler içerir.

    Microsoft Public License (MS-PL) kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: Microsoft Public License
  • Berkeley Software Distribution (BSD): İlgili yazılımın herhangi bir amaçla ücretli veya ücretsiz olarak kullanılmasına, özelleştirilebilmesine ve dağıtılmasına sınırlama olmaksızın izin verir. Yazılımda doğrudan ya da dolaylı olarak yaşanacak zararlardan Lisans sahibi sorumlu olmamaktadır. Diğer açık kaynak kod lisanslarının haricinde kullanıcılara kodun açık bir şekilde sunma zorunluğu bulunmamaktadır.

    Berkeley Software Distribution (BSD) kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: Lawrence Berkeley National Labs BSD Variant License
  • Common Development and Distribution License (CDDL): Yazılımın orijinal veya değiştirilmiş versiyonlarının sınırlamalar olmadan açık kaynak kodlu olarak dağıtılmasını amaçlar. BSD lisansında olduğu gibi yazılım nedeniyle yaşanabilecek zararlardan dolayı sorumluluk taşınmaz.

    Common Development and Distribution License (CDDL) kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: Common Development and Distribution License 1.0
  • Eclipse Public License (EPL): Yazılımın geliştirilmesinde katkıda bulunan kişilerin, ilgili geliştirmeleri açık kaynaklı olarak yayınlama ve paylaşma yükümlülükleri bulunur. Katkıda bulunanlar, kendi çalışmalarını korumak ve lisans altında yayınlamak üzere telif hakkı ve patent hakkına sahiptir.

    Eclipse Public License (EPL) kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: Eclipse Public License version 2.0
  • MIT License: Yazılımı özgürce kullanma, kopyalama, dağıtma, değiştirme ve satma özgürlüğü verir. MIT lisansına sahip yazılımların kullanıcılar tarafından kaynak kodunu paylaşmadan, orijinal veya değiştirilmiş halini kullanabilir veya dağıtabilmelerine izin verir. Yazılımın değiştirilip dağıtılması halinde farklı lisanslar altında dağıtımında herhangi bir kısıtlama da bulunmamaktadır.

    MIT License kapsamı hakkında detaylı bilgi için bu sayfayı ziyaret edebilirsiniz: The MIT License

En Popüler Açık Kaynaklı Kodlu Yazılımlardan Bazıları

İşletim Sistemi: Linux

Açık Kaynak İşletim Sistemi: Linux

En popüler işletim sistemi çekirdeklerinden biri olan Linux, GNU General Public License (GPL) ile sunulan ve The Linux Foundation tarafından geliştirilen özgür bir yazılım projesidir. Sunucular, kişisel bilgisayarlar, akıllı televizyonlar, akıllı telefonlar gibi neredeyse her platformda çalışabilmektedir. Linux çekirdeği kullanılarak Linux Dağıtımları olarak adlandırılan işletim sistemleri sunulmuştur. Bu dağıtımlardan popüler olanlara örnek olarak ücretsiz olarak sunulan Android, CentOS, AlmaLinux, Linux Mint, Arch Linux ve Türkiye’de geliştirilen Pardus işletim sistemlerini ücretli olaraksa Red Hat Enterprise dağıtımını gösterebiliriz.

CMS (İçerik Yönetim Sistemi): WordPress

WordPress Açık Kaynaklı Yazılım

WordPress ücretsiz, GPL lisansıyla sunulan açık kaynak kodlu bir içerik yönetim sistemidir. Ücretli veya ücretsiz olarak neredeyse her iş alanına ve kullanıma uygun temin edilebilecek temalara ve eklentilerle sahiptir. Modern ve yaratıcı web sitelerini kolaylıkla oluşturabilmenize olanak sağlayan WordPress’i kullanmak için bir WordPress’e uyumlu olacak sunucu servislerine (LiteSpeed, Ngnix, Apache gibi bir web server, MySQL, PHP) sahip Web hosting ve bir domain adresine sahip olmanız yeterli olacaktır.

Domainhizmetleri olarak hem domain hem de hosting hizmeti sunuyoruz. Eğer bir WordPress tabanlı web sitesi oluşturmayı düşünüyorsanız, WordPress Hosting paketlerimizi gözden geçirebilir ve sipariş verirken tercih ettiğiniz domain adresinizi tescil edebilirsiniz.

Ofis Yazılımları: LibreOffice

Libre Office Açık Kaynaklı Ofis Yazılımı

LibreOffice aynı Microsoft Office gibi bir ofis yazılım paketidir. Microsoft Office yazılımlarıyla karşılaştırırsak Microsoft Office Word gibi içerisinde yazı yazmanıza olanak sağlayan Writer, Excel gibi veri analizi, grafik oluşturma, tablo oluşturma ve hesaplama yapabilme özelliğine sahip olan Calc, PowerPoint gibi içerisinde hazır bulunan animasyonlar ve geçişlerle sunumlar oluşturabileceğiniz Impress, Paint gibi çizim yapabilmenizi sağlayan Draw, Microsoft Access gibi veritabanı programı olan Base gibi Microsoft Office yazılımlarının yaptığı çoğu işlemi gerçekleştiren yazılımlara sahiptir. Açık kaynak kodlu olarak MPL s2 (İkincil lisans olarak LGPL s3, GPL, Apache Lisansı 2.0) lisanslarıyla sunulur.

Görüntü Düzenleme: Gimp

Gimp Açık Kaynak

Gimp, Adobe Photoshop benzeri ücretsiz bir görüntü işleme aracıdır. Genel olarak Photoshop’un sahip olduğu katmanlarla çalışabilme, PNG, JPG, JPEG, TIFF, SVG ve Adobe Photoshop tarafından geliştirilen dosya türü olan PSD gibi yüzlerce dosya türü desteği, Grafik tablet uyumluluğu gibi ortak özelliklerine sahiptir. Açık kaynak kodlu olarak GNU LGPL s3 ve GNU GPL s3 lisansıyla sunulur.

Veritabanı Yönetim Sistemi: MySQL

MySQL Açık Kaynak Kodlu Veritabanı Yönetim Sistemi

Dünyada en çok kullanılan veritabanı yönetim sistemidir. GPL lisansı altında ücretsiz olarak sunulmaktadır. Veri depolamak, veritabanlarını organize etmek, verilere erişmek için kullanılır. SQL (Structured Query Language) adı verilen dili kullanarak veritabanlarında sorgulama yapabilir ve verilerde düzenleme yapabilir. Bir çok işletim sistemi ve programlama diliyle uyumludur. Hızlı ve güvenilir bir yapıya sahip olduğu için büyük verilerin yönetimi için de uygun bir çözümdür. Günümüzde Facebook, Youtube, Netflix gibi popüler firmalar tarafından da kullanılmaktadır.

Üç Boyutlu Modelleme ve Animasyon: Blender

Blender Açık Kaynak 3D Modelleme Yazılımı

Blender, GPL lisansı altında topluluk odaklı bir proje olarak sunulan ücretsiz bir 3D modelleme ve animasyon yazılımıdır. Metaryal ve texture oluşturma, animasyon, fizik tabanlı simülasyon, post-prodüksiyon efektleri oluşturma, güçlü render motoru ve daha birçok özelliğe sahip olması nedeniyle tercih edilmektedir. Oyun, mimarlık, simülasyon, film ve dizi, reklamcılık gibi çeşitli endüstrilerde kullanılır.

Dosya Barındırma: NextCloud

Nextcloud Açık Kaynak Dosya Saklama

Bir sunucu üzerine kendinizin oluşturabileceğiniz veri depolama sistemidir. Google Cloud, iCloud, Dropbox gibi bir yapıya sahiptir. Mobil ve bilgisayar platformlarından verilerinizi senkron bir şekilde sunucuya yükleyebilir ve görüntüleyebilirsiniz. Genelde verilerin 3.kişilerle paylaşılmasını istemeyen ya da sunucu ve verilerin yönetiminin tamamen kendisine ait olmasını isteyen kullanıcılar tarafından tercih edilir.

Eğer kendinize ait bir veri depolama sistemine ihtiyaç duyuyorsanız, bu süreçte Domainhizmetleri olarak sizlere yardımcı olmak isteriz. SSD VDS Sanal Sunucu veya NVMe VDS Sanal Sunucu paketlerimizden ihtiyacınız olanı seçip bizimle iletişime geçmeniz halinde ücretsiz olarak NextCloud kurulumunu sizin için gerçekleştirebiliriz.

Kapalı Kaynak Kodlu Yazılım (Closed Source Software) Nedir?

Açık kaynak kodlu yazılımların aksine yazılımların kaynak kodları kapalı tutularak sadece yazılım üreticisi tarafından görüntülenir ve geliştirilebilir. Genelde kar amaçlı olarak sunulur. Kapalı Kaynak Kodlu yazılımlara Microsoft Office, Adobe Photoshop, Microsoft Windows ve Apple OS X işletim sistemleri örnek verilebilir.

Açık Kaynak Kodlu Yazılımlar ile Kapalı Kaynak Kodlu Yazılımlar Arasındaki Farklar Nelerdir?

Kaynak Kod Erişimi: Açık kaynak kodlu yazılımların kaynak kodu, herkes tarafından erişilebilir, incelenebilir ve değiştirilebilir şekilde dışarıya açılır. Kapalı kaynak kodlu yazılımlardaysa, kaynak kodu sadece yazılım şirketi ve şirketin yazılımı geliştirilebilmesi için özel olarak onay verdiği gruplar haricinde dışarıya paylaşılmaz.

Lisanslama: Açık kaynak kodlu yazılımlar genellikle tüm kullanıcılar tarafından erişilebilmesi kullanabilmesi ve düzenleyebilmesi için ücretsiz ve En Çok Kullanılan Açık Kaynak Kod Lisansları başlığı altında bahsetmiş olduğum gibi açık kaynak kod lisanslarıyla sunulur. Kapalı kaynak kodlu yazılımlardaysa kullanıcıların kullanım ve dağıtım sınırlamalarını içeren özel lisanslar kullanır.

Geliştirme ve Özelleştirme: Açık kaynak kodlu yazılımlarda kaynak kodlarının ulaşılabilir olması sayesinde yazılım üzerinde dilediğiniz şekilde düzenleme ve ihtiyaçlarınıza göre özelleştirme yapılabilir. Kapalı kaynak kodlarındaysa yazılımın izin verdiği doğrultuda düzenleme ve özelleştirme yapılabilir. Geliştirme ve özelleştirme için yazılıma bir ödeme sistemi entegrasyonu eklenmesi veya yazılımın görsel arayüzünde düzenlemeler örnek verilebilir.

Güvenlik ve Hata Düzeltme: Her yazılımda zafiyet yaşatabilecek güvenlik açıkları veya sağlıklı çalışmasını engelleyebilecek hatalar bulunabilir. Açık kaynak kodlu yazılımlarda siz veya yazılımın topluluk üyeleri tarafından test edilebileceği için hızlı bir şekilde bu açıkların önlenebilmesi avantajına sahiptir. Kapalı kaynak kod ise yazılım firmasının personel sayısına veya güncellemeleri birden çok geliştirme paketiyle birlikte sunma tercihine bağlı olarak çözüm gecikebilir. Tabii ki burada açık kaynak kodlu yazılımın sahip olduğu topluluğun anında düzelteceği anlamına gelmeyecektir. Kapalı kaynak kodlu yazılımların genellikle destek hizmeti bulunur, yaşadığınız herhangi bir sorun olursa yazılım üreticisine ulaşarak çözüm için destek isteyebilirsiniz. Bu nedenle eğer tecrübeli bir yazılım geliştirici değilseniz veya yazılım desteği alamıyorsanız kapalı kaynak kodlu yazılımları tercih etmeniz sizin için daha yararlı olabilir.

Test Süreci: Genelde açık kaynak kodlu yazılım üreticilerinin ticari bir beklentisi olmadığı için detaylı test süreçlerinden geçirilemeyebiliyor. Bu nedenle yaşanabilecek problemler eğer topluluk üyeleri tarafından hiç yaşanmayıp çözüm bulunmamışsa çözüm süreci zorlaşabilir. Kapalı kaynak kodlu yazılımların ticari amaçla üretildiği için yaşanan problemleri destek ekibiyle paylaşılması halinde daha kolay bir şekilde çözüm sunulabilir.

Açık Kanyak Kodlu Yazılımlar ile Kapalı Kaynak Kodlu yazılımlar arasında ki genel farklar bu şekildedir. İki yazılım türünün de kendilerine ait olan avantajları bulunuyor. Dolayısıyla, ihtiyacınıza uygun bir yazılım tercih ederken, yazılım için ayırabileceğiniz bütçeyi, olası bir teknik sorunla karşılaştığınızda yazılımdaki sorunu çözebilmek için tecrübeniz veya destek alabileceğiniz birinin bulunup bulunmadığını ve yazılımların sunduğu ek avantajları ne kadar verimli kullanabileceğinizi göz önünde bulundurabilirsiniz.

Cumhurbaşkanlığı tarafından yayınlanan genelgenin yazılım sektörümüzü hareketlendireceğini ve bağımsız yerli yazılımcıların bu süreçte daha çok duyulmaya başlanacağını düşünüyorum. Umarım ülkemiz için bu genelgeyle birlikte, yerli yazılımcılara destek sağlayabilecek yeni genelgelerle de karşılaşırız.  


Kaynaklar
Open Source Initiative

Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments