14 Şubat 2014 Cuma

GNU ve GPL Nedir?

GNU ve GPL Nedir?

GNU nedir?

GNU'nun açılımı, 'GNU is not unix'tir. yani GNU, 'GNU, unix değildir' anlamına gelmekte olan özyinelemeli (rekürsif) bir kelimedir. richard m. stallman, 1970'li yıllarda mit (massachusetts institute of technology)'nin yapay zeka laboratuvarlarında serbest yazılımı bir yaşam şekli olarak benimsemiş bir grupla beraber 1980'li yılların başına kadar yazılım geliştirici olarak çalışmıştır. bu grup ile olan birlikteliğinin sona erişinin ardından kendisini o dönemlerde ivme kazanan bazı akımlardan dolayı benimsenmeye başlanılmış yeni bir sosyal sistem içerisinde bulmuştur, stallman bir röportajında o günleri şu şekilde nitelendirmekte: “kendimi özgür olmayan (kaynak kodu kapalı olan) yazılımların hakim olduğu ve kullanıcıların yardımsız bırakıldığı, parçalanmış ve birlikte çalışmanın korsanlık olarak nitelendirildiği çirkin bir sosyal sistemin içinde buldum. bu tür bir yaşantıyı reddettim. ancak işimi özgürlüğe ve birlikte çalışmaya adadığım zaman yaptıklarımdan gurur duyabileceğime karar verdim.”

ve 1984 yılında tamamen özgür yazılımların meydana getirdiği bir işletim sistemi ve işletim sisteminin araçlarının geliştirilmesi çalışması böylece başlamış oldu, işte bu çalışmanın adı GNU idi. yazılan özgür yazılımların bir şemsiye altında toplanması için 1985 yılında yine stallman tarafından fsf kuruldu ve GNU yazılımları korumak üzere GPL (general public licence) adı verilen yazılım lisansı duyuruldu. GPL lisansı ile lisanslanan özgür yazılımların amaçları özgürlüklerini korumaktan başka bir şey değildir. özgür yazılımlar hakkında sık rastlanan bir yanlış anlama, özgür yazılımların ücretsiz olduğudur; genellikle böyle olmakla beraber, özgür yazılımlar ücretli olabilirler, fakat kaynak kodları ücretlendirmelerinden bağımsız olarak açıktır. bir yazılımın, 'özgür yazılım' olarak değerlendirilebilmesi için yazılımın kullanıcısına neleri sağlaması gerekir?

• Yazılımı kullanan kişi onu her türlü amaç için çalıştırmakta özgürdür. özgür yazılımlar kullanıcılarıkısıtlamazlar.
• Yazılımı kullanan kişi yazılımın nasıl çalıştığını incelemekte ve kendi özel ihtiyaçlarına daha iyi cevap verebilmesi için yazılım üzerinde değişiklik yapmakta özgürdür. kendisi yeterli bilgiye sahip değilse bunu bir başkasına da yaptırabilir.
• Yazılımı kullanan kişi elindeki yazılımı dağıtmakta ve toplum ile paylaşmakta özgürdür.
• Yazılımı kullanan kişi yazılımı geliştirmekte ve geliştirdiği yeni halini toplum ile paylaşmakta özgürdür.

GPL'nin bu hükümlerine bakıldığında 'yazılımı yazan' kişi ile 'yazılımı kullanan' kişi sanki birbirine karıştırılmış gibi görünüyor. insanın, -özellikle günümüz koşullarında- bir yazılımı kullanan kişinin,kullandığı yazılım üzerinde, yazılımı üreten kişi kadar hakka sahip olmasını kabul etmekte güçlük çekmesi çok doğal... özgür yazılım akımı ile beraber, GPL şemsiyesi altında geliştirilen bir yazılım özel bir çaba sarfetmeye gerek bırakmadan, başlangıcından sonuna değin toplumun ve bilimin yararına geliştirilmiş olur. çünkü bu lisans ve yaklaşım sayesinde,

• Yazılım geliştiricileri tekerleği yeniden keşfetmekle vakit harcamaz, daha önceden üretilmiş olan araçları yazılımlarına ekleyerek bunlar üzerine yeni şeyler inşa edebilir.
• Aynı işi yapan yazılımların en iyi yönleri alınarak kullanıcılara optimum çalışan, kaliteli yazılımlar hızla sunulabilir. kullanıcılar var olan yazılımlar arasından istediğini deneyerek kendi ihtiyacını rahatça seçebilir.
• Kullanıcılar özgür yazılımlara çok makul fiyatlar ile ya da -çoğunlukla- 0 maliyetle sahip olabilir, dolayısı ile yazılım ücretlerine ayırdıkları kaynaklarını donanıma ya da diğer ihtiyaçlarına ayırabilir, yaşam ve çalışma standartlarını yükseltebilirler.
• Yazılımın kaynak koduna da sahip olduklarından dolayı kullanıcılar kritik yazılımların nasıl çalıştığını anlamak için kaynak kodlarına bakabilir, isteklerine göre özelleştirebilir ve kaynak tasarrufu sağlayabilir. elbette kullanıcılar yazılım üretimi konusunda bilgili olmak zorunda değildir, ne bir programcı kiralamak kullanıcı için, ne de var olan bir yazılım üzerinde değişiklik yapmak bir programcı için zordur.

bütün bunlar göz önünde bulundurulduğunda, özgür yazılım akımı bilişim dünyasının acımasız çarkları arasında açan bir çiçek gibidir. GPL'nin zekice düşünülmüş hükümleri sayesinde bu akımın önü kendi menfaatlerinden dolayı kapalı kaynak kodu savunan, küçük bir kitleyi doyuran egoist yazılım devleri tarafından bir türlü kesilememektedir ve free software foundation'un kurulduğu 1985 yılından bu yana internet teknolojisinin de hızla yayılması ile bu akım bütün ülkelere sıçramış durumdadır. Açıkkaynak kodlu özgür yazılımlar yukarda bahsedilen özellikleri ile şu avantajları da beraberinde getirmektedir:

• Güvenilirlik: açık kaynak kodlu yazılımların belki de en büyük artısı olan güvenilir oluşları, kimi çevreler tarafından doğru olmayan bir mantıkla bir dezavantaj gibi gösterilmeye çalışılmakta ve topluma 'açık kaynak kodlu bir yazılımın tam olarak nasıl çalıştığı kaynak koduna bakılarak bilinebildiği için yazılımın barındırdığı güvenlik problemleri saldırganlar tarafından kolaylıkla tespit edilip kullanılabilmektedir' gibi bir düşünce yerleştirilmeye çalışılmaktadır. fakat açık kaynak kodlu bir yazılım, doğası gereği geliştirilmesi sürecinden kullanımı zamanına değin onbinlerce göz tarafından denetlenmektedir. var olması muhtemel bir güvenlik problemi ya da kötü niyetli bir programcı tarafından bilinçli olarak yerleştirilebilecek bir kod parçası yazılım sizin elinize ulaşmadan tespit edilmekte ve hızla düzeltilmekte ya da size ulaşması engellenmektedir. ayrıca kimse, binlerce insanınkollektif bir şekilde geliştirdiği bir yazılımın güvenilmez olduğunu idda ederken, sınırlı sayıda kişinin geliştirdiği ve kaynak kodunu kapattığı bir yazılımın güvenilirliğini kimin ve nasıl garanti edeceği sorusuna yanıt veremez.
• Sağlamlık: yine açık kaynak kodlu yazılımların doğal geliştirme süreci içerisinde çok sayıda insantarafından denenmeleri ve kaynak kodlarının gözden geçirilmesi sonucunca ortaya yüksek kalitede, stabil ve kuvvetli yazılımlar çıkmaktadır.
• Esneklik: kaynak kodu açık bir yazılım hızla ve kolaylıkla yeni bir sistem üzerinde çalışacak şekilde yeniden yapılandırılabilmekte, bir kısmı çıkarılarak kapsamı daraltılabilmekte ya da eklenen yeni fonksiyonlarla kapsamı genişletilebilmektedir.
• Uygulama desteği: çok geniş bir yelpazede ve çeşitlilikteki bir çok açık kaynak kodlu özgür yazılım her gün duyurulmaktadır. herhangi bir konudaki ihtiyaç açık kaynak kodlu yazılımlarla hızlı ve kaliteli bir şekilde çözüme kavuşturulabilmektedir.

Hepsinden ötesi, bahsedilen yazılım sizin kendi malınız olmaktadır. yukarıda da bahsedilen GPL lisansı uyarınca üretilmiş bir yazılım üzerinde, onu hazırlayan kişi kadar hakka sahip olmanız inanılması güç bir şeydir. İnsanların bu durum karşısında şu şekilde bir değerlendirme yapması çok sık rastlanan bir durumdur: 'bir yazılımın kaynak kodunun açık ya da kapalı olması, özgür olması ya da olmaması benim için neyi değiştirir?'

Aslında çok şeyi değiştirmektedir.

Bu şekilde düşünen kişilerin bir kısmı, bilgisayarlarında lisans bedelleri ödenmemiş, kopya yazlımlarkullanmaktadırlar, dolayısı ile ellerindeki yazılımların yasal kısıtlamaları ve hükümlerinden dolayı hırsız durumuna düşmekte ve yasaları çiğnemektedirler; sırf ihtiyaçlarını karşılamak istedikleri için hayatları boyunca yapmayı akıllarından bile geçirmeyecekleri suçlarlı işlemiş sayılmaktadırlar.

Bir kısmı da bilgisayarlarında kullandıkları yazılımların lisans bedellerini ödemekte, fakat kullandıkları yazılımın lisans hükümleri uyarınca lisans bedeli ödenmiş yazılımlarının bir kopyasını çok yakın arkadaşları dahi istese ona 'hayır' demek durumunda kalmaktadırlar. Demedikleri taktirde de arkadaşlarını ilk kısımdaki insanlar genellemesine itmektedirler. yani lisans bedelini ödedikleri taktirde dahi bir yazılıma sahip olamamakta, yazılımı özgürce kullanamamakta, özgür olamamaktadırlar. İşte bu durum, richard m. stallman'ın “bu yaşam şeklini reddettim” dediği yaşam şeklidir.

Peki bunca koşuşturma arasında linux'un yeri nerededir (linux, linuks şeklinde telaffuz edilir)?

linux linus torvalds adında finlandiya'lı bir bilgisyar mühendisinin 1991 yılında helsinki üniversitesi'nde bir öğrenci iken kişisel bilgisayarında kullanmak üzere geliştirmeye başladığı bir işletim sistemi çekirdeğidir (işletim sisteminin çekirdeği, işletim sisteminin beyni diye tabir edebileceğimiz kısmıdır). internet'te yaptığı duyuru sonucunda tüm dünyadan bir çok programcının da desteği ile hızla gelişmiş ve halen aynı destek ile gelişmekte olan açık kaynak kodlu, özgür bir yazılımdır. hızlı bir sürecin sonunda linus'un geliştirdiği çekirdek, GNU hareketinin bir meyvesi ve aynı zamanda taşıyıcısı haline gelmiştir. GNU için yazılmış özgür yazılımlar çok kısa süre içerisinde linux çekirdeği ile uyumlu çalışabilecek hale getirilmiş ve ortaya güçlü, esnek ve açık kaynak kodlu bir işletim sistemi çıkmıştır. GNU/linux olarak anılması gereken işletim sistemi zaman içerisinde telaffuz kolaylıklarından ötürü linux olarak anılmaya başlanmıştır. şu anda GNU yazılımlarını ve diğer özgür yazılımları bir araya getiren ve tüm bunları bir linux çekirdeği ile beraber toplu, derlenmiş ve kurulumu çok kolay bir işletim sistemi olarak piyasaya süren irili ufaklı bir çok çalışma mevcuttur. fedora, debian, suse, mandrake, slackware bunlardan çok bilinen bir kaçıdır. her biri, normal bir bilgisyar kullanıcısının biraz dikkat ederek bilgisayarına kurabileceği ve neredeyse hiç yabancılık çekmeden kullanabileceği kadar rahat bir kurulum arayüzüne sahip bir şekilde dağıtılmaktadır.

Bu dağıtımlar üniversitelerin bilgi işlem dairesi başkanlıklarından, bilgisayar mühendislikleri bölümlerinden ya da sadece dağıtım işini üstlenmiş internet sitelerinden çok cüzzi miktarlar karşılığında temin edilebilmektedirler.

Türkiye'de de dünyanın her yerinde olduğu gibi linux ile tanışmak isteyen ve yukarda vaad edilen şekilde bir bilgisayar yaşantısına adım atmak isteyen kişileri bir araya getirmek ve desteklemek vazifesini üstlenmiş ciddi ve özverili organizasyonlar mevcuttur. lkd(linux kullanıcıları derneği), tüm linux camiasının buluşma noktası olmayı hedefleyen ve bütün özgür yazılım hareketlerine kucak açmış bir dernektir. Her yıl düzenlenen ve 4 gün süren linux şenlikleri ile 3-4 paralel salonda yapılan seminer oturumları ile insanlar linux ile ilgili çeşitli konularda bilgilendirilmekte, hiç bilmeyenlerden profesyonel bilgisayar kullanıcılarına kadar herkezin faydalanabileceği etkinliklere Türkiye'nin dört yanından konuşmacılar ve izleyiciler katılmaktadır. e-posta listelerinde özgür yazılım ve linux konusunda yardım almak isteyen kişilere yardım edilmekte, düzenli ve gezici seminerler ile kitleler ücretsiz bilgilendirilmektedir. türkçeleştirme, yeni özgür yazılımların geliştirilmesi gibi çalışmalara destek verilmektedir.

Bütün bunlar sanki bir pazarlama şirketinin serzenişleri gibi görünmekte, insanın aklına 'peki bunca insan neden bu fikrin peşinden koşturuyor? Bu kişilerin menfaati nedir?' soruları takılmaktadır.

Siz kabul etmesenizde, özgür yazılımlar ve linux sizin kullanmanız için hiç bir karşılık beklemeden size sunulmuş birer hediyedir. sizin malınızdırlar, ve ona sahip çıkmak ya da çıkmamak özgürlüğü de diğer tüm özgürlükeriniz gibi sizin elinizdedir. Bu akım ve bu akımın ürettikleri, toplumların refah seviyesini yükseltmek için çalışan bilime ve gelecek nesillere bir mirastır.

Stallman'ın söylediği gibi, 'özgür yazılım kullanmayı hak ediyorsunuz'.

Dört temel özgürlük

Özgür Yazılım Vakfı (FSF) tarafından kaleme alınan GNU Genel Kamu Lisansı, dört temel özgürlüğü güvence altına almayı amaçlar. Bu dört temel özgürlük sırasıyla şunlardır:
  •            Özgürlük 0: Programı sınırsız kullanma özgürlüğü.

  • Özgürlük 1: Programın nasıl çalıştığını inceleme ve amaçlara uygun değiştirme özgürlüğü.

  • Özgürlük 2: Programın kopyalarını sınırsız dağıtma özgürlüğü.

  • Özgürlük 3: Programın değiştirilmiş halini dağıtma özgürlüğü.


GNU GPL lisans anlaşması, 1983 yılında Richard Stallman tarafından geliştirilmiş, çok akıllıca detaylarla bağlayıcılığı bulunan, teşvik edici, gerek kullanıcı gerekse üretici tarafa büyük olanaklar sağlayan bir lisans türüdür. GPL'in en çok üzerinde durduğu konu yazılımların kaynak kodu ile birlikte dağıtılmasının gerekliliğidir. Üretici firma yazılımını ikili dosya şeklinde (binary) dağıtsa bile kaynak kodunu herkes tarafından erişilebilir bir yere bırakmak zorundadır. Kullanıcı, bu kaynak kodu alıp inceleyebilir, üzerinde istediği değişikliği yapabilir, kendi projelerinde, yazılımlarında kodun tamamını ya da bir parçasını kullanabilir. Hatta başkasının kod parçasını alıp, üzerinde değişiklik yapıp satarak maddi kazanç da elde edebilir. Ama tek bir şartla, yeni üretilen program da GPL ile lisanslanmak zorundadır.

GPL'in avantajları

  • Kullanıcı yazılımının içinde ne olduğunu bilir. Bazı üretici firmaların yaptığı öne sürülen arka kapı (backdoor) yerleştirme vakaları imkânsızdır. Bu özellikle askeri kurumlar için önemli olmaktadır. GPL ile lisanslanan yazılımın kaynak kodu ortada olduğu için gerekli inceleme yapıldıktan sonra rahatlıkla kullanılabilir.

  • Yazılım çok büyük bir kitle tarafından kullanılması sonucunda hataların keşfedilmesi ve yine çok büyük bir kitle tarafından geliştirildiği için düzeltilmesi süreci bazen dakikalarla sınırlı olur.

  • Üretici firma, kullanıcı kitlesini geliştirmek için büyük bir şans elde etmiş olur.

  • Kullanıcı yazılımda beğenmediği kısımları değiştirmekte hürdür. Bunu eğer kendisi yapamıyorsa bile yazılım çok büyük bir kitle tarafından kullanıldığı için, İnternet'te biraz aradıktan sonra büyük ihtimalle aynı yazılımın kendi istediği şekilde değiştirilmiş halini rahatlıkla bulur.

  • Üretici firma, dünyaca popüler bir GPL yazılımın üreticisi olarak büyük bir prestij elde eder. Referans listesinde onbinlerce kişi tarafından kullanılan bir programı geliştirmiş bir firma olmanın onurunu taşır. Bunun sonucunda bir sonraki geliştirdiği yazılıma dışarıdan bakışlar daha profesyonelce olur ve firmanın ismi duyulduğu için de hedef kitle daha büyük olur.

  • BSD gibi lisansların aksine GPL bir yazılımdan türetilen yazılım da GPL olmak zorunda olduğu için geliştiricinin kodunun çalınması riski yoktur.

  • GPL bir yazılımın kodunun üzerinde oynayan kişi sayısı bazen binleri bulmaktadır. Bu nedenle programlar çok hızlı bir şekilde çok büyük bir kitle tarafından geliştirilir. Bu da yazılımın kalitesinin artmasında büyük bir rol oynar.

  • GPL, yazılım sektöründe bir rekabet ortamı yaratmayı sağlar. Ücretli ve kapalı kod olarak sunulan yazılımların ücretsiz ve açık kodlu olanlara nispeten çok daha kaliteli olmasının gerekliliği ortaya çıkar. Bu da yazılımların kalitesini artırır ve sektörün ütopik tam rekabet piyasasına olabildiğince yaklaşmasını sağlar. Sektörü sadece arz değil, talep de yönlendirmeye başlar.

  • Kullanıcı ürünün gelişmesi için üretici firmaya bağımlı kalmaz. Özellikle kritik uygulamalarda kullanılan bir yazılımı üreten firmanın batması veya artık yazılıma destek vermemesi durumunda mağdur kalmaz. Kaynak kodu ortada olduğu için kullanıcı istenirse kendi bünyesinde isterse destek alarak yazılımı geliştirmeye devam edebilir.

GPL'in dezavantajları


  • GPL ile lisansladığınız yazılımların başkaları tarafından değiştirilerek geliştirilen türevlerinin elde ettiği gelire yönelik maddi bir talepte bulunamazsınız. Kamuya açtığınız kodları kullanan türev yazılımların ticari süreçlerde kullanılması durumunda karşı tarafı bir çeşit rüçhan/gelir paylaşımı anlaşması imzalamaya zorlayan Mozilla Kamu Lisansı, bu gibi durumlarda önerilebilir.

Hiç yorum yok :

Yorum Gönder