GNULinux ve zgr Yazlm Bora Gngren Portakal Teknoloji
GNU/Linux ve Özgür Yazılım Bora Güngören Portakal Teknoloji bora@portakalteknoloji. com EMO Ankara Şubesi 23. 09. 2006
Sunum Planı • Özgür / açık kaynak kod ve örnekleri – – – • • • GNU ve GPL Berkeley Yazılım Dağıtımı Modeli Apache Vakfı Modeli Mozilla Modeli Patentler ve IBM Modeli Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli Yaygınlaşma süreci ve sürecin avantajları / dezavantajları Ticari olmayan faydalar Sonuç Kısaca Linux Kullanıcıları Derneği (LKD) 2
Özgür / açık kaynak kod ve örnekleri • Özgür / açık kaynak kodlu yazılım (free libre / open source software – FLOSS) özellikle son 10 yılda dikkat çekmekle birlikte 20 yıldan uzun süredir ortada olan bir kavramdır. – Kavramın kökenleri 1970'lerdeki hacker kültüründe doğmuştur. Bu kültürün bağımsız, sorunu çözmeye odaklı bakış açısını içinde barındırır. – Temel düşünce sistemi “bir sorun varsa kendin çözmeye çalış” olarak özetlenebilir. – Elbette bu düşünce sistemini uygulamak için gerekli her türlü yardımlaşma ve ekip çalışması, ayrıca deneyimin ve bilginin aktarılması da öngörülür. • Düşünce sistematiğini engelleyecek her türlü kural reddedilir. 3
Özgür / açık kaynak kod ve örnekleri • 1970'li yıllarda yazılım geliştirme daha çok üniversite laboratuarlarında ve çok az sayıdaki kurum bilgi işleminde yapılmaktaydı. • Donanım üreten firmalar için yazılım, donanımın yanında hediye edilen ve özellikle değer taşımayan bir yan üründü. Yazılımların müşterilere özel olarak güncellenmesi ve yeni beceriler kazandırılması ise ücrete dahil bir hizmet sayılırdı. • Sadece yazılım üreten firmalar yok denecek kadar azdı. • 1980'lerin başında bir şey oldu. Kişisel bilgisayarlar (PC) yaygınlaştı. Daha önce değişik firmaların yaptığı denemeler Apple ve IBM modellerinde kendilerine pazar yarattı. – Özellikle IBM modeli PC'ler ve onların benzeri diğer firma ürünleri (IBM PC klonları) yaygın kullanıma girdi. – Artan bilgisayar sayısı artan yazılım gereksinimi demekti. 4
Özgür / açık kaynak kod ve örnekleri • 1980'li yılların başında bu şekilde bir yazılım krizi doğdu. Krizin temel ayırt edici özellikleri nelerdi? – Yazılımın belli bir müşteriye özel yazılması yerine çok sayıda müşteriden oluşan bir pazara yazılması ve pazarlanarak satılan bir ürüne dönmesi yazılım şirketlerinin kar/zarar hesaplarını etkiledi. – Yazılım geliştiren şirketler için yazılımlarının kaynak kodları önemli bir ticari varlık haline geldi. Şirketler müşterilerinin bu kodları rakiplerine sızdırmasından yada müşterinin bilgi işleminin ekleri ve yamaları kendileri yapmasından korktular. Bunun üzerine kodlarını koruyacak lisans sözleşmeleri yazmaya başladılar. – Temel problem “ya müşterim benimle rekabet ederse” korkusuydu. 5
GNU ve GPL • Kısa bir öykü – Richard Stallman MIT'de çalışan bir araştırmacı olarak kendi yazdığı bir kodu kullanmak isteyen bir şirkete izin verir. – Şirket kodu kullanarak yazdığı ticari uygulamayı pazarlar. – Stallman sırf meraktan kodun son halini görmek isteyince reddedilir. • Temelde kendi yazdığı uygulamaya bir kaç ekten oluşan bu uygulamanın ticari olması sorun değildir. • Sorun, kodların kapatılmasıdır. Stallman'ın fikri çalışnmıştır. • Sorun kodların kapatılmasıdır. Şirketin müşterileri kodu kendileri geliştirmek isteseler bunu yapamazlar. • Sorun kodların kapatılmasıdır. Şirketin müşterileri asla tam olarak neyi satın aldıklarını bilemezler. 6
GNU ve GPL • Bilgi ürünleri bir asimetrinin kurbanı olurlar. Buna Arrow İkilemi adını veriyoruz. – – Bir bilgi ürününün değeri onun içeriğini bilmiyor olmamızdan ileri gelir. Bu değeri saptayabilmek için o üründe ne olduğunu bilmemiz gerekir. Ürünü satın almadan içindeki bilgiye erişemeyiz. Satın almak için önceden belirlenmiş bir değeri ödemeyi peşinen kabul etmemiz gerekir. • Bu problemin çözümleri var mıdır? Sorunu aklınızda tutmaya çalışın. 7
GNU ve GPL • Stallman'ın öyküsüne geri dönelim. • Stallman düşünür taşınır ve der ki “eğer kodun kapatılmasını engelleyecek bir model geliştirirsek o zaman herkes kodlarını başkalarına güvenerek dağıtabilir. ” – Stallman yazılım şirketlerinin tam tersine “kodun dağıtılmasını garanti altına almak” için düşünmüştür. – Bunu sağlamak için geriye dönük bağımlılıkları takip edecek, kendisini yineleyen (recursive) bir lisans sözleşmesi tasarlar. • GPL yani GNU Kamu Lisansı başka şeylerin yanı sıra ne der? – Eğer sen GPL bir koddan alıntı yaparsan sen de GPL olacaksın. – Bu kural sayesinde geriye doğru GPL'e bağımlılık varsa o kod da GPL olacaktır. 8
GNU ve GPL • Ancak GPL'i tasarlayan kişi yazılım geliştiren birisidir. Aslında oldukça iyi bir hacker olarak tanınır. • İyi bir başka yazılımcı, GPL kodu kullanan ama onunla entegre olmayan bir yazılım geliştirebilir. – Yani aslında kendi yazılımı GPL yazılım ile birlikte çalışan ve onunla geleneksel yollarla iletişim kuran ikinci bir yazılım olacaktır. – Bu durumda kendi yazılımı GPL ile bağlanmaz. • Bu sayede GPL modeli iki türlü ticari faaliyeti destekler. – Kodun GPL olarak dağıtıldığı yazılımlar. – Kodun GPL olmadığı ama GPL olan altyapıyı kuvvetle kullandığı yazılımlar. • Bu ikinci tür modelin daha sağlıklı gelişmesi için LGPL modeli tasarlanır. 9
Berkeley Yazılım Dağıtımı Modeli • Stallman ile aynı dönemde Berkeley Üniversitesi de benzeri bir problem yaşamaktadır. – Bilgisayar işletim sistemi dersleri, geleneksel olarak AT&T firmasının sağladığı UNIX işletim sistemi ile işlenir. Öğrenciler UNIX işletim sistemindeki mekanizmaları, UNIX'in kodlarını çalışarak öğrenir. Hatta zaman UNIX'e katkıda bulunur. – Ancak AT&T UNIX'in kodlarını kapatmıştır. Üniversiteler kodlara bakabilir; derslerinde kullanabilir. – Ancak mezunlar mezun olunca derslerindeki deneyimlerini pratiğe geçiremezler. Çünkü UNIX'in kodundan yararlanarak ürün çıkarmak suçtur. 10
Berkeley Yazılım Dağıtımı Modeli • Berkeley Üniversitesi, kendi UNIX'ini yazar. Adına Berkeley Yazılım Dağıtımı (Berkeley Software Distribution - BSD) UNIX'i derler. – Öğrencilerin daha sonra ticari hayatlarında bu kodları kapalı lisanslı yazılımlara entegre etmesi gerekir. – Bunun için BSD lisansı açık kodun kapatılarak kullanımına izin verir. • BSD lisansı akademik araştırmasını yayınlarken kodu açık tutan, ancak daha sonra bunu ticari ürün haline getirirken yeni halini kapatan Amerikan ar-ge projeleri için ideal bir model sunar. – Ancak BSD lisansı ile yazılan kodun kapatılmasının olanaklı olması bazılarını (örneğin GPL taraftarları) tatmin etmez. 11
Apache Vakfı Modeli • NCSA, ABD'de İnternet ve İnternet üzerinde veri aktarmanın bir çok yolundan birisi olan WWW teknolojisinin evidir. – ABD'deki ilk WWW sunucularını ve tarayıcılarını da NCSA yazmıştır. – Başlangıçta kodu açık olan sunucuya özellik eklemek isteyenlerin yama önerileri NCSA tarafından hızlı biçimde ürüne entegre edilmiştir. – NCSA'nın bu sunucudan kar beklentisi yoktur. – Ancak daha sonra bu sisteme zaman ayıramazlar. • NCSA web sunucusunun kullanıcısı olan bir grup genç, kodları devralır ve kendi web sunucularını yazmaya başlar. 12
Apache Vakfı Modeli • IBM kendi web sunucusu ürünü yerine bu gençlerin ürününü kullanmaya başlar. – Ücretsiz olan bu üründe kendi istedikleri eklerin yapılması için para önerir. Gençler ise bunu nasıl yapacaklarını bilemezler. Farklı şehirlerde yaşayan bağımsız kişilerdir. – IBM avukatları hem IBM'in haklarını korumak için ticari kullanımı esnek bırakan hem de insanların haklarını korumak için kodun açık kalmasını garanti eden bir lisans sözleşmesi yazar. – Para transferini sağlayabilmek için Apache Yazılım Vakfı kurulur. • İnternet ve web yaygınlaştıkça IBM dışında başka dev şirketler ve ayrıca bağımsız kuruluşlar da vakfa para yatırır. Vakıf çok büyük projelere imza atar. – Vakfın tüm ürünleri kamuya aittir. 13
Apache Vakfı Modeli • Apache Yazılım Vakfı, normalde yazılım şirketlerinin bir ortak girişim (joint venture) kurması gereken türde sorunlarla uğraşır. – Vakfın her ürünü kendi alanında “de facto standart” halini almıştır. – Bu ürünler açık kaynak kodludur. Ayrıca geliştirilen standartlar da açık standartlardır. • Vakıf, ticari kaygıları olan şirketlerin ürünlerinin kamu çıkarına en uygun standarta göre üretilmesi için gerekli ara buluculuğu üstlenir. – Bunu açık standartları teşvik ederek yapar. 14
Apache Vakfı Modeli • Ticari bir ortak girişim, içindeki oyuncuların kendi gündemleri ve organizasyon sorunları nedeni ile çoklukla açık standart üretemez. – C++ standart komitesinin 1990'lı yıllarda kilitlenme noktasına gelmesi bunun çok iyi bir örneğidir. – Daha önce USB arabirimlerini tasarlayan konsorsiyum da bir dönem benzeri bir kilitlenme yaşamıştır. – Evlere gelen elektriğin voltajı (110, 220, 240) dünyada değişir. Çünkü Avrupa ve Amerikalı şirketler bir türlü anlaşamamıştır. • Zaman zaman ticari odaklı ortak girişimler kamu yararına olan bir standart da çıkartamaz. – Müzik dinlemek için AM radyo, FM radyodan daha iyidir. Ancak 1930'larda standart FM radyoya dönmüştür. 15
Mozilla Modeli • İnternet alanında ilkleri gerçekleştiren NCSA ekibi ayrılıp şirket kurar. – Netscape adındaki web tarayıcısı ürünleri ile büyük başarı elde ederler. – Ancak zamanla daha yüksek kar oranı olan alanlara geçmeleri gerekir. – Ayrıca Microsoft ile olan rekabetleri de (MS'in ahlak dışı teknikleri nedeni ile) çoktan kaybedilmiş bir savaştır. • Netscape'in diğer iş alanlarındaki faaliyetlerine engel olmayacak bir lisans sözleşmesi ile web tarayıcısının kodları açılır. 16
Mozilla Modeli • Açılan kodlara ani bir ilgi doğar. Microsoft'un bir çok pratiğine tepki göstermek isteyen geliştiriciler bu kodlara özellik eklemek isterler. • Mozilla böyle doğar. – Netscape'in ürünü yeni nesil tarayıcının çekirdeği olur. Asgari işlevsellik buradan sağlanır. – Ancak yazılım yeniden yapılandırılır. Artık eklenti (plug-in) mekanizması daha verimli çalışmaktadır. – Tek bir eklentiyi yazmak çok daha kolaydır. Küçük bir ekip, hatta tek bir kişi, kendi istediği özelliklere sahip bir eklenti yazabilir. – Bu sayede çok sayıda Mozilla eklentisi doğar. – Mozilla kısa sürece %99 pazar payı olan Microsoft'u %80'e indirir ve pazarı geri alır. 17
Mozilla Modeli • Mozilla'nın önyüzü için XUL adnda bir teknoloji kullanılır. • Bu yeni teknoloji herhangi bir yamanın yada eklentinin doğrudan dış görünüşü değiştirmesine olanak verir. Menüler ve elemanları, ayrıca görsel bileşenlerin nasıl gözükeceği değiştirilebilir. – Mozilla'ya eklenti olarak çalışan ve arabirime bir şeyler ekleyen uygulamalar doğar. – Temel etkinliğini gerçekleştirmek için web üzerinden veri çeken her tür uygulama bu şekilde yazılabilir. – Bu uygulamanın yazılmasını kolay ve ucuz hale getirir. 18
Mozilla Modeli 19
Patentler ve IBM Modeli • IBM uzun süredir Linux ve özgür yazılıma verdiği desteği genişletmek ister. • Firmaya ait 500'den fazla yazılım patenti (doğası gereği) özgür yazılımların önünde engeldir. – Keyfi lisans verme hakkı kullanılır. – Açık kaynak kodlu herhangi bir projenin uygun lisansa sahipse bu patentlerdeki fikirlerden özgürce yararlanması için lisans verilir. – Bu ücretsiz lisanslar devredilecek biçimde verilir ki GPL gibi “bulaşıcı” lisanslar da yararlanabilsin. • Bu SCO'nun patentleri kullanımının tersi bir hamledir. – SCO kaybederken IBM kazanır. 20
Patentler ve IBM Modeli 21
Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli • Özgür yazılım fikri Arrow İkilemi için bir çözüm önerisi sunar. • Eğer yazılımın kaynak kodu açıksa, müşteri yada onun tercih edeceği bir teknik uzman yazılımın değerini saptayabilir. Daha sonra da satın alabilir. – Bir ürünün doğru fiyata sahip olması onu en çok sayıda müşterinin almasını sağlar. Bir çok özel durumda da kamu çıkarını en yüksek seviyede tutar. – Yazılımlar bu özel durumlara dahil midir, tartışılabilir. Ancak en azından en yaygın kullanım garantilenir. • Arrow İkilemi için kapalı kaynak kodlu çözüm önerileri de vardır. – Değişik becerileri olan sürümler, deneme / öğrenci sürümleri gibi modeller hep aynı sorunu çözmek içindir. – Müşteri ve ürün farklıaştırması burada şiddetle önerilir. 22
Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli • Özgür yazılım eğer Arrow ikilemini çözüyorsa, o zaman yanında bir riski de getirir. – Müşteri gerçekten de para ödemekten vazgeçip ürünü ücretsiz kullanabilir. – Müşteri ürüne kendi eklerini yapabilir yani yeni kodlar yazabilir. • GPL gibi bulaşıcı lisanslar bu durumda müşterinin yapacağı eklerin de açık olmasını garanti edecektir. Böylece geliştirici bu eklere bir ücret ödemeden sahip olur. • GPL modeli bu sayede geliştirici ve müşteri arasındaki çizgiyi oldukça bulanık hale getirir. – Diğer açık lisanslarda da bu bulanıklık az yada çok olarak vardır. 23
Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli • Aslında müşterinin geliştirme sürecine katılması yazılım sektöründe önerilen ancak zor uygulanan bir pratiktir. • Bunun ana nedeni Arrow ikileminin benzeri bir durumdur. – Eğer yapmasını bilseydim, ben yapardım – Eğer yapmak isteseydim sana yaptırmazdım. • Bilişim sektöründe “anahtar teslim proje” teriminin aşırı ilgi görmesi yukarıdaki düşünceden ileri gelir. • Ancak özgür yazılım, müşterinin, daha doğru bir tanımla kullanıcının da süreçte etkin rol almasını gerekli kılar. 24
Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli • Çoğu özgür yazılım projesi aslında temel bir çekirdeğe sahiptir. Bu çekirdek ana problemi iyi bilen küçük bir grup tarafından geliştirilir. – Bu gruplar sosyal olarak çok iyi entegre olmuş, yarı kapalı toplumlardır. – Gruba giriş liyakat ile olur. – Gruptaki herkes söz hakkına sahiptir. • Bu gruplar yazılım projesinin gidişini yöneten ana kararları alırlar. • Kişiler ayrı konumlarda olabilir, hatta bazıları reşit olmayabilir. Önemli olan teknik yetkinliktir. – Bu tür bir karar alma modeline dağıtık yönetişim diyebiliriz. 25
Özgür yazılım projelerinin ilerleyişi ve dağıtık yönetişim modeli • Çekirdek grubun çevresinde yapılanmış başka organizasyonlar olur. • Bu organizasyonlar ille de saf açık kaynaklı ürün ve hizmet veriyor olmak zorunda değildir. Geliştirme Belgeleme Paketleme Pazarlama ve Satış Danışmanlık Uygulama-Enteg. Eğitim Destek Uygulama Yönetimi – Çoğu zaman çevredeki destekleyici organizasyonların ticari boyutu da bulunur. 26
Yaygınlaşma süreci ve sürecin avantajları / dezavantajları • Bu model sayesinde hibrid iş modelleri kurgulanabilir. – – Açık kaynak yazılımlar + + Kurulum + Eğitim Destek Geliştirme + Destek Kapalı Yazılım Parçaları + Destek • Sektör şirketleri kurumların isteyeceği şeylerin üzerine odaklanabilir. – Yüksek nitelikli özellikler (ör: yüksek bulunurluk) – Devamlılık (muhatap alacak şirket olması) • Bu arada özgür geliştirme de alt yapıyı geliştirir. – Özgür yazılım ürünü kullanıcıların temel beklentisi olur. – Aynı alt yapıyı kullanan rakip ticari ürünler aslında farkında olmadan bir de facto standart üzerinde anlaşmış olur. 27
Yaygınlaşma süreci ve sürecin avantajları / dezavantajları • Ancak özgür yazılım modellerinde bu iki kesimin birini sağlıklı ve koordinasyon içinde besleyeceği garantilenmez. – Ticari kazancın bir kısmının özgür geliştirmeye akacağı varsayılmıştır ancak bu bazı durumlarda gerçekleşmeyebilir. – Özellikle belli dar uygulama alanlarında ortak beklenti ve altyapı gereksinimi zaten tekel konumunu kazanmış ticari ürünlerle belirlenmiş olabilir. (ör: Autocad) – Bu durumda özgür bir alternatifin üretilmesi için ek kaynak oluşmaz ve geliştirme süreci çok yavaş yada çok verimsiz ilerler. 28
Yaygınlaşma süreci ve sürecin avantajları / dezavantajları • Sıklıkla karşılan bir problem özgür yazılım geliştiren ekiplerin kapalı kod yazan şirketlere geçmesi ve projelerinden çekilmeleridir. – Bilgi asla kaybolmaz ama onu işleyecek ve ileri götürecek nitelikli insan kaynağını bulmak sorun olabilir. • Aynı problem ayrıca şirket satın alma ve birleşmelerinde de yaşanır. – ABD'de şirketlerin değeri hesaplanırken fikri ve sınai mülkiyet haklarına da bakılır. – Özgür yazılım geliştiren şirketlerin satın alınıp ürünlerinin lisanslarının değiştirilmesi ve kodların kapatılması olası bir taktiktir. (Ör: Oracle. Inno. DB ve SAP-My. SQL) 29
Ticari olmayan faydalar • Özgür yazılımın ticaretle ilgisi olmayan katkıları da mevcuttur • Bunlar daha çok özgür yazılım altyapısının ücretsiz olmasından yararlanan üçüncü kişilerin kazanımlarıdır. – Sivil toplum örgütleri özgür yazılım altyapılarını kullanarak kolaylıkla ve düşük maliyetle tartışma ortamları kurabilir ve önem verdikleri konularda kamuoyu oluşturabilirler. – İnternet üzerinde bağımsız gazetecilik olarak da nitelenen haber odaklı günlükler özgür yazılım altyapıları ile kurgulanmıştır. – Wikipedia gibi bağımsız haber kaynakları da özgür yazılım sayesinde var olur. – Bağımsız organizasyonlar ve henüz yasal nitelik kazanmamış gruplar normal şartlarda muhatap kabul edilmeyecekleri için ticari teknik destek alamaz. Özgür yazılımda ise belli düzeyde teknik desteği toplumdan alabilirler. 30
Ticari olmayan faydalar 31
Ticari olmayan faydalar • Özgür yazılımın tek bir kaynağı olmadığı için tek merkezden kontrol edilmesi veya yönlendirilmesi mümkün olmaz. – Hükümetlerin, şirketlerin yada çıkar odaklarının güdümünde yazılım üretilmesi söz konusu değildir. Tamamen bireyler dahil tüketicilerin çıkarları gözetilerek geliştirme olur. – Ayrıca açık kaynak kod nedeni ile “büyük ağabey” paranoyaları engellenir. Hiç kimse açık kaynak koda kötü amaçlı eklenti yapmaya cesaret edemez. – Açık kaynak kodun belli bir ülkeden, sınıftan yada kitlenin kullanımına kapatılması mümkün değildir. Ticari kotalar ve ambargolar açık kaynak kodu pratikte bağlamaz. Bilginin tüm insanlara eşit olarak verilmesi sağlanır. – Aynı şekilde kişisel yaratıcılığın eseri olan buluş ve ürünlerin ticari olarak engellenmesi de mümkün olmaz. 32
Ticari olmayan faydalar 33
Sonuç • Özgür yazılım, bilginin kaybolmasını önleyen ve uzun dönemde kamu çıkarını korumayı amaçlayan bir harekettir. – En iyi çözümleri ve en yüksek sosyal faydayı sağlamak zorunda değildir ancak amaç olarak yararlıdır. – Bu nedenle kamu çıkarını gözetmek için canlı tutulması gerekmektedir. – Burada sektör şirketleri dışında özellikle devletlere ve sivil topluma önemli görevler düşer. 34
Kısaca Linux Kullanıcıları Derneği (LKD) • Linux Kullanıcıları Derneği ülkemizde Linux ve özgür yazılım alanında faaliyetlerin merkez noktası durumundadır. – 500'den fazla üyesi bulunmaktadır ve bu sayı son iki yılda ciddi artış kaydetmiştir. – Neredeyse istisnasız tüm illerimizde ve tüm üniversitelerimizde Linux ve özgür yazılım felsefesini, açık kaynak kod kullanmanın yararlarını anlatan seminerler, tipik özgür yazılımlar üzerine laboratuar çalışmaları düzenlemektedir. – 2002'den bu yana Ankara'da Mayıs ayında Linux ve Özgür Yazılım Şenliği'ni düzenlemektedir. 2006 yılındaki beşinci şenlik 11 -14 Mayıs 2006 tarihlerinde ODTÜ'de düzenlenecektir. – http: //www. linux. org. tr/ ve http: //senlik. linux. org. tr/ adreslerini ziyaret etmeyi ihmal etmeyin. 35
Soru - Cevap 36
- Slides: 36