Open source, yani açık kaynak, insanların değiştirebileceği ve paylaşabileceği bir şeyi ifade eder. Açık kaynak yazılım ise, herkesin inceleyebileceği, değiştirebileceği ve geliştirebileceği kaynak kodlu yazılımdır.
Kaynak kodu, bilgisayar kullanıcılarının göremediği bir yazılım parçasıdır. Kaynak kod, bilgisayar programcılarının bir program veya uygulamanın çalışma şeklini değiştirmek için kullanabilecekleri koddur. Kaynak koduna erişimi olan programcılar, o programa veya uygulamaya özellikler ekleyerek veya düzgün çalışmayan parçaları düzelterek programı geliştirebilirler.
İnsanlar çeşitli nedenlerden dolayı açık kaynaklı yazılımı kapalı yazılıma tercih ediyor. Bunları şu şekilde sıralamak mümkündür:
Bazı yazılımların, yalnızca onu oluşturan veya denetim yetkisine sahip olan kişi, ekip veya kuruluş tarafından değiştirilebilen kaynak kodları vardır. Bu tür yazılımlara “tescilli” veya “kapalı kaynak” yazılım denir.
Kapalı kaynak yazılımlar, genellikle satılır veya abonelik modeliyle sunulur ve kullanıcılar, genellikle yazılımı kullanırken kaynak koduna erişemezler veya değiştiremezler. Kapalı kaynak kod projeleri, genellikle belirli bir şirket veya kuruluş tarafından geliştirilir ve yönetilir. Bu tarz yazılımları sadece orijinal yazarları tarafından yasal olarak kopyalanabilir, incelenebilir ve değiştirilebilir. Microsoft Office, Adobe Reader, iTunes kapalı kaynak kodlu yazılımların birkaç örneğidir.
Açık kaynaklı yazılımlarda yazarlar kaynak kodunu, bu kodu görüntülemek, kopyalamak, öğrenmek, değiştirmek veya paylaşmak isteyen diğer kişilerin kullanımına sunar. Açık kaynak kod projeleri, genellikle özgürce kullanılabilir ve ücretsizdir. Ayrıca, geniş bir geliştirici topluluğuna sahiptir. Linux, Python, Android açık kaynak kodlu yazılımların birkaç örneğidir.
Diğer kişilerin kaynak kodunda değişiklikler yapmasına ve bu değişiklikleri kendi projelerine dahil etmesine izin vermesinden dolayı açık kaynak yazılımlar işbirliğini ve paylaşımı teşvik eder.
Her iki modelin de kendine göre avantajları ve dezavantajları vardır. Açık kaynak kod, genellikle daha esnek bir geliştirme sürecine ve topluluk desteğine sahiptir, ancak bazen işletmelerin bazı güvenlik ve destek sorunları yaşamalarına sebep olabilir. Kapalı kaynak kod ise genellikle daha iyi destek ve güvenlik sağlar, ancak geliştirme süreci daha kapalıdır ve kullanıcılar değişiklik yapma veya yazılımı özelleştirme konusunda kısıtlanırlar.