Açık kaynak nedir?
Açık kaynak, tasarımı herkes tarafından erişilebilir olduğundan herkesin teknolojiyi değiştirmesine ve paylaşmasına olanak tanıyan, merkezi olmayan bir üretim modelidir. Terim, yazılımın belirli ücretsiz dağıtım kriterlerine uygun olduğunu belirtmek için yazılım geliştirme bağlamında ortaya çıkmıştır. Bugün, açık kaynak yol terimi; ücretsiz bilgi alışverişi, hızlı prototip oluşturma ve iş birlikçi geliştirme ilkelerine dayanan daha geniş bir değer kümesini ifade etmektedir. Herkes yeni fikirlere katkıda bulunabilir ve teknolojiyi organik olarak gelişmesi için daha da iyileştirebilir.
Açık kaynak neden önemli?
Açık kaynak, teknoloji topluluğu tarafından ortaya çıkarılan bir fikirdir. Teknik inovasyonların gelişebilmesi için küresel iş birliğine ihtiyaç duyulur. Örneğin, ABD'deki bir programlama ekibinin bir finansal uygulama için yeni bir açık kaynak teknoloji geliştirdiğini varsayalım. Avustralya'daki bir diğer programlama ekibi teknolojiyi sağlık sektörüne uygun yeni işlevler ekleyerek değiştiriyor. Asya'daki üçüncü bir ekip orijinal teknolojiyi çekirdek bileşen olarak kullanan yeni açık kaynak ürünler geliştiriyor.
Bu bilgi paylaşımı ve kolektif inovasyon tüm topluluğa fayda sağlar. Teknolojilerin patentler, telif hakları ve pahalı lisanslar arkasında kilitlenmesi ise ilerlemeyi sınırlandırır. Birçok popüler açık kaynak proje, son birkaç on yılda teknolojinin tüm dünya genelinde hızla gelişmesini sağladı.
Açık kaynak ilkeleri nelerdir?
Açık kaynak projelerin altında yatan temel ilkeler aşağıdaki gibidir:
Topluluk
Açık kaynak topluluğu, ortak bir amaç doğrultusunda bir araya gelen bir grup kişiyi temsil eder. Bu topluluğun ortak değerleri ve hedefleri, karar alma süreçlerine rehberlik eder ve açık kaynak projeyi ileriye taşır.
Şeffaflık
Açık kaynak projelerde, topluluktaki herkesin işini en iyi şekilde yapabilmek için ihtiyaç duyacağı bilgi ve materyallere erişebilmesi sağlanır. Ekip üyeleri, büyük resim konusundaki farkındalıklarıyla, daha etkili kararlar alır ve birbirlerinin fikirleri ve keşiflerinden yararlanarak çalışır.
Açık iş birliği
Topluluk projeleri ekip çalışmasını teşvik eder; grup, bireylerin tek başlarına çözemeyeceği sorunları çözer. Ayrıca herhangi bir açık kaynak girişimin üyeleri birbirlerinin yaptığı çalışmalarda değişiklikler yaparak bu çalışmaların iyileştirilmesine katkıda bulunur. Başkalarının, çözümü gelecekte gereken şekilde değiştirebilmesi için belirli kurallar koyabilirsiniz.
Hızlı prototipleme
Bir açık kaynak projede yinelenen bir yaklaşım izlenir. Bu yaklaşıma göre ekip üyeleri sık aralıklarla prototipler oluşturup paylaşır. Hızlı prototipleme, deney kültürünü teşvik eder. İşe yarayan değişiklikleri daha da geliştirip tutabilir, işe yaramayan değişiklikleri ise kaldırabilirsiniz.
Kapsayıcı meritokrasi
Açık kaynak hareketi, çeşitlilik arz eden bakış açılarını ve konuşmaları teşvik eder. Topluluk oy birliğiyle karar alır ancak aynı zamanda başarıya öncelik verir. En iyi fikirler, açık kaynak topluluğundan daha fazla destek ve katkı alır.
Açık kaynak yazılımların özellikleri nelerdir?
Açık kaynak yazılımların özellikleri, açık kaynak hareketinin değerleriyle yakından örtüşür.
Açık kaynak
Açık kaynak yazılımlar, aşağıdaki gibi belirli dağıtım kriterlerini karşılayan bir açık kaynak lisansı altında yayınlanmalıdır:
- Yazılımın toplu yazılım dağıtımının bir bileşeni olarak satılması veya verilmesine ilişkin hiçbir kısıtlama bulunmamalıdır
- Yazılım, kaynak kodu içermeli ve kaynak kodun dağıtımına izin verilmelidir
- Kaynak kodda değişiklik yapılmasına ve türetilmiş eserlerin oluşturulmasına izin verilmelidir
- Bir programla ilişkili haklar hiçbir ayrım olmaksızın programın dağıtıldığı herkes için geçerli olmalıdır
Açık tasarım
Açık tasarım, şeffaf ve açık bir yazılım tasarlama ve planlama sürecini garanti altına alır. Yazılımın tasarımı ve özellikleri açısından izlenecek yol haritası topluluk tarafından şekillendirilir. Topluluk oy birliğine ulaşmak zaman alan bir süreç olabileceğinden bunun hayata geçirilmesi zor olabilir. Ancak, topluluk tarafından kabul edilen tasarım, kullanıcıların ihtiyaçlarını daha etkili bir şekilde karşılayan daha iyi bir ürün ortaya çıkmasını sağlar.
Açık geliştirme
Açık geliştirme, herkesin eşit bir zeminde katılmasına olanak tanıyan kapsayıcı ve şeffaf geliştirme süreçlerinin benimsenmesini ifade eder. Genel erişime açık hizmetler geliştirme faaliyetlerine görünürlük sağlar. Örneğin, açık kaynak projelerde genellikle katkıların değerlendirilmesinde kullanılacak referans ölçümleri net bir şekilde ifade eden bir dizi standart benimsenir. Böylece tüm yazılım güncellemeleri, ilk defa katkıda bulunan bir kişi tarafından mı yoksa kıdemli bir geliştirici tarafından mı yapıldığına bakılmaksızın eşit ölçütlere göre değerlendirilir.
Açık topluluk
Açık topluluk, yazılım geliştirme topluluğunun herkesin düşüncesini ifade edebildiği ve liderlik pozisyonlarına yükselebileceği kapsayıcı bir ortam olmasını sağlar. Ortak hedefleri belirleyerek ve güçlü bağlantılar inşa ederek geliştiricilerin ve kullanıcıların ihtiyaçlarını dengeler.
Açık kaynak yazılım nedir?
Açık kaynak yazılım, kaynak kodu herkes tarafından incelenebilen, değiştirilebilen ve geliştirilebilen yazılımları ifade eder. Kaynak kod, yazılımın bilgisayar programcıları tarafından bir uygulamanın çalışma şeklini değiştirmek veya yeni özellikler eklemek için üzerinde değişiklikler yaparak kullandığı kısmıdır. Bir yazılımın kaynak koduna erişebilen herkes uygulamaya özellikler ekleyerek veya mevcut hataları gidererek uygulamayı iyileştirebilir ya da özelleştirebilir. Açık kaynak yazılımlar bugün kullandığınız çoğu web uygulamasında ve cihazda kendisine yer bulmaktadır. Örneğin, Linux işletim sistemi ve Mozilla Firefox internet tarayıcısı açık kaynak yazılımlardır.
Açık kaynak yazılımlar ile diğer yazılım türleri arasındaki farklar nelerdir?
Yazılım geliştiren kuruluşlar ve kişiler bazen ticari nedenlerle yazılımlarını kontrol altında tutmayı tercih eder. Kaynak koda ilişkin tüm mülkiyet haklarını münhasıran kendilerinde tutarlar. Dolayısıyla, hataları düzeltmek ya da yeni özellikler eklemek için yalnızca kendileri kodda değişiklik yapabilir. Bu tür yazılımlara özel mülk yazılım veya kapalı kaynak yazılım adı verilir. Örneğin, Adobe Photoshop ve Norton AntiVirus ürünleri özel mülk yazılımlardır.
Açık kaynak yazılım ve kapalı kaynak yazılım karşılaştırması
Açık kaynak yazılım ve kapalı kaynak ya da özel mülk yazılım arasındaki üç ana fark aşağıdaki gibidir:
Güvenilirlik
Güvenlik
Her kaynak kod, kendisini siber saldırılara karşı açık hale getirebilecek güvenlik kusurları içerebilir. Bununla birlikte, açık kaynak yazılımlar daha hızlı düzeltme yapılabilmesi avantajına sahiptir. Siz veya diğer topluluk üyeleri tarafından bir güvenlik açığı bildirildiğinde, ilgili açık kaynak proje bir veya iki gün içinde bir kod güncellemesi yayınlar. Ticari şirketlerin açık kaynak yazılım geliştirdiği durumlarda yazılımın yüksek görünürlüğü, sorunların düzeltilmesi konusunda acilen harekete geçilmesini ve hatta daha iyi orijinal yazılımlar ortaya çıkmasını sağlayabilir.
Bunun aksine, özel mülk yazılımlarda güncelleme döngüleri aşağıdaki nedenlerle daha uzun sürmektedir:
- Satıcının ilgili proje üzerinde çalışan personel sayısı az olabilir.
- Satıcı için güvenlik kusurları yerine finansal sonuçlar daha öncelikli olabilir.
- Satıcı birçok farklı değişikliği bir arada paketleyip hep birlikte yayınlamayı tercih ettiği için güvenlik güncellemesinin yayınlanması gecikebilir.
Lisanslama
- Kişisel projeler için kaynak kodda değişiklik yapma.
- Kullanıcıların yaptıkları değişikliklerin başkaları tarafından görüntülenmesine izin vermeye devam etmesi kaydıyla değiştirilmiş kodları yeniden dağıtma.
Açık kaynak yazılım lisanslarının türleri nelerdir?
Açık kaynak yazılım lisansları genel olarak özel mülk yazılım lisanslarından daha az kısıtlayıcı nitelikte olsa da izinlerin düzeyi ve aralığı lisans türüne bağlı olarak farklılık gösterir. Yaygın açık kaynak yazılım lisansı türleri aşağıda açıklanmaktadır.
Kamu malı lisans
Kamu malı lisans, ilgili yazılımın kısıtlama olmaksızın herkes tarafından değiştirilebileceğini, kullanılabileceğini veya ticarileştirilebileceğini gösterir. Çoğu durumda, kamu malı açık kaynak yazılımların geliştiricileri yazılımlarını telif hakkıyla korumama yönünde bilinçli veya gönüllü bir karar almaktadır.
Hoşgörülü lisans
Hoşgörülü açık kaynak lisanslar, yazılımın nasıl değiştirilebileceğine veya dağıtılabileceğine ilişkin asgari gereksinimlere sahiptir. Apache Lisansı ve Berkeley Source Distribution (BSD) lisansı bu lisans türünün bazı örneklerindendir. Orijinal yazılım telif hakkıyla korunuyor ve açık kaynak olsa da kullanıcılar değiştirilmiş versiyonlarını ticarileştirebilir ve yeniden dağıtabilir.
Kısıtlı Genel Kamu Lisansı
Kısıtlı Genel Kamu Lisansı (LGPL), açık kaynak bileşenleri kısıtlama olmadan kullanmanıza izin verir. Bu bileşenlere genellikle herhangi bir kodunuza ekleyip kullanabileceğiniz kitaplıklar adı verilen kod modülleri olarak erişilebilir. Uygulamanızda LGPL kaynak kodu kullanıyorsanız uygulamanızı ticarileştirebilirsiniz. Ancak, mevcut LGPL kodunda değişiklik yaparsanız değiştirilmiş versiyonunu yine aynı lisans altında yeniden dağıtmanız gerekir.
Copyleft lisanslar
- Copyleft açık kaynak bileşenlerde değişiklik yaparsanız tüm yeni kaynak kodu uygulamanızla birlikte yayınlamanız gerekir. Bununla birlikte, uygulamayı yalnızca dahili olarak kullanıyorsanız ve hiçbir zaman kamuya yayınlamıyorsanız bunu yapmak zorunda değilsiniz.
- GPL yazılımlarını değiştirerek oluşturduğunuz yazılımları satabilirsiniz ancak alıcı dilerse bunları yeniden dağıtabilir.
- Yeni kodunuzun telif hakkı beyanında kodun tüm geçmiş yazarlarını belirtmeniz gerekir.
Açık kaynak yazılımları kim düzenliyor?
Açık Kaynak Girişimi (Open Source Initiative, OSI) her türlü açık kaynak yazılım hakkında eğitim veren ve bu tür yazılımlara ilişkin hakların savunuculuğunu yapan, kâr amacı gütmeyen küresel bir kuruluştur. Bir standart kuruluşu olarak, herhangi bir yazılımı açık kaynak hale getiren koşulları yasal olarak tanımlayan bir belge olan Open Source Definition (Açık Kaynak Tanımı) belgesini yayınlamaktadır.
Bu kuruluş tarafından yayınlanan Open Source Definition belgesindeki gereksinimleri yerine getirerek OSI onaylı lisans ticari markanızı elde edebilirsiniz. Güven veren bu ticari marka, başkalarını çalışmalarınıza katkıda bulunmaya ve sizinle iş birliği yapmaya teşvik eder. OSI, onaylı lisansların listesini tutmakta ve açık kaynak topluluğundaki yeni lisansları onaylamaktadır. Aynı zamanda yazılımlara ilişkin açık standartlar gereksinimini düzenlemektedir.
Açık standartlar nelerdir?
Açık standartlar, teknolojide tek biçimliliği ve birlikte çalışabilirliği destekleyen yazılım geliştirme kurallarıdır. Bu standartlar serbestçe uygulanabilir, benimsenebilir ve güncellenebilir. Dolayısıyla günlük yaşamımızı birçok yönden kolaylaştırırlar.
Örneğin, standartlar her türden makinenin her türden kablosuz yönlendiriciye bağlanabilmesini sağlamaktadır. Dizüstü bilgisayarınızla evinizden veya hangi yönlendiriciyi kullandıkları fark etmeksizin favori kafenizden internete bağlanabilirsiniz. Ancak, standartlar olmasaydı dizüstü bilgisayarınızla uyumlu bir yönlendirici kullanan bir kafe bulmak zorunda kalırdınız!
Açık kaynak ve açık standartlar karşılaştırması
Standartlar doğrudan kod değildir ve belirli türlerde kaynak kod yazılmasına ilişkin kurallar, kılavuzlar ve teknik özelliklerden oluşurlar. Yazılım standartlarının açık kaynak olarak sınıflandırılabilmesi için belirli kurallara uygun olmaları gerekir. Örneğin, belirli standartları uygulayabilmek için özel mülk teknolojiye gerek duyuyorsanız bu standartlar açık kaynak değildir.
Açık kaynak yazılımların neden ticari sürümleri var?
Yazılım geliştiriciler ve diğer şirketler büyük işletmelere hitap eden analiz veya güvenlik çözümleri gibi eklentiler satarak birçok açık kaynak projeyi paraya çevirmiştir. Özel şirketler açık kaynak programları kendi uygulama kodlarına ekleyerek tüm kamu malı yazılımları ticarileştirebilir. Ayrıca aynı yazılımın farklı sürümlerini farklı lisanslar altında yayınlayabilirler.
Örneğin, bir şirketin bir veritabanı yönetim sistemini hem Genel Kamu Lisansı (GPL) hem de özel mülk lisansı altında yayınladığını düşünelim. Herkes, geliştirecekleri yeni kodu açık kaynak yapmaları kaydıyla, GPL sürümünü yazılım geliştirme amaçlarıyla kullanabilir. Bunun aksine, özel mülk sürüm aşağıdakiler gibi ek yazılım hizmetleri sunmaktadır:
- Tam olarak yönetilen bir veritabanı hizmeti
- Kurumsal sınıf veri yedekleme hizmeti
- Ek güvenlik şifrelemesi
Açık kaynak yazılım, özgür yazılımla aynı şey midir?
Özgür yazılım terimi, özgür yazılım hareketi olarak da anılan ve yazılım kullanıcıları için belirli özgürlükleri edinmeyi ve garanti altına almayı amaçlayan bir toplumsal hareketi ifade eder. Bu hareket, kullanıcıların aşağıdaki özgürlüklere sahip olmasını amaçlamaktadır:
- Yazılımı çalıştırma.
- Yazılımı inceleme.
- Yazılımı değiştirme.
- Yazılımın kopyalarını paylaşma.
Açık kaynak yazılım ve özgür yazılım karşılaştırması
Özgür yazılım bugün kamu malı olan açık kaynak lisanslarını ifade etmektedir. Açık kaynak yazılımlar artık daha fazla lisans türü içeriyor ve özgür yazılım hareketinin aksine kullanıcılara bazı kısıtlamalar getirebiliyor. Ücretsiz yazılım ve özgür yazılım terimleri değişimli olarak kullanıldığından, özgür yazılımların kamu malı yazılım olarak anılması daha uygundur.
Açık kaynak yazılım ve ücretsiz yazılım karşılaştırması
Özgür yazılım terimi, belirli bir süreliğine ücretsiz olarak kullanılabilen ticari bir ürünü ifade eder. Abonelik ücreti gerektiren bir ürünün ücretsiz deneme sürümleri veya sınırlı özellikli sürümleri de ücretsiz yazılım olarak sınıflandırılabilir. Ücretsiz yazılıma erişim elde etseniz bile, hiçbir şekilde bu yazılımı yeniden satma, paylaşma veya değiştirme hakkına sahip olmazsınız.
AWS, açık kaynak yazılımlara nasıl katkıda bulunuyor?
AWS olarak, açık kaynağın herkes için faydalı olduğunu düşünüyoruz. Açık kaynağın değerini müşterilerimize sunmak ve açık kaynak topluluklarını AWS'nin operasyonel mükemmeliğiyle tanıştırmak istiyoruz. AWS mühendisleri, düzenli olarak açık kaynak yazılımlar geliştirmekte ve GitHub, Apache, Linux Foundation vb. platformlarda binlerce açık kaynak topluluğuna katkıda bulunmaktadır. Açık kaynağı desteklediğimiz diğer birkaç yolu burada bulabilirsiniz:
- Müşterilerin tercih ettikleri açık kaynak yazılımları bulutta dağıtabilmesine ve çalıştırabilmesine olanak tanımak için büyük bir çaba gösterdik. AWS diğer bulut sağlayıcılara kıyasla çok daha fazla açık kaynak teknolojiyi desteklemektedir.
- Açık kaynak topluluğunda yürüttüğümüz birkaç uzun vadeli projemiz vardır. Bu projeler kapsamında sürekli olarak hata düzeltmelerine ve güvenlik, ölçeklenebilirlik, performans ve özellik geliştirme çalışmalarına katkıda bulunuyoruz.
- HashiCorp, MongoDB, Confluent ve Red Hat gibi önde gelen açık kaynak şirketleriyle yakın iş birliği yapıyor ve müşteri beklentilerini aşmalarına yardımcı oluyoruz.
AWS'de açık kaynak adresini ziyaret ederek açık kaynak projelerimiz hakkında daha fazla bilgi edinebilir veya GitHub'da Amazon tarafından yürütülen 1200'den fazla açık kaynak projeyi inceleyebilirsiniz.
Hemen ücretsiz bir hesap oluşturarak AWS'de açık kaynağı kullanmaya başlayın.
AWS üzerinde sonraki adımlar
Ücretsiz katman AWS hizmetlerine göz atın