Özgür yazılımın ideolojisi ve GNU projesi: mevcut durum ve acil görevler. GNU ve GPL nedir

UNIX benzeri işletim sistemleri ve özgür yazılım dünyasını anlamaya başlayan her kullanıcı, muhtemelen başlıktaki kısaltmalarla karşılaşacaktır.

GNU, "GNU UNIX değildir" anlamına gelir ve çeşitli sistem kitaplıklarının ve uygulamalarının geliştirildiği büyük ölçekli bir projeyi ifade eder. Bu projede oluşturulan her şey açık kaynaktır. Bu, uygun programlama bilgisine sahip herkesin bu kodu kendi geliştirmelerinin temeli olarak kullanabileceği ve onu değiştirme ve dağıtma hakkına sahip olabileceği anlamına gelir.

Proje kapsamında geliştirilen yazılım ürünleri, GNU Hard sistem çekirdeği ile desteklenerek tam teşekküllü bir projenin temelini oluşturdu. işletim sistemi GNU olarak da anılırdı. Ancak 1990 yılında başlayan yaratılışı bugüne kadar tamamlanmadı. Ancak 1991'de Linus Torvalds'ın buluşu ortaya çıktı: Linux çekirdeği. GNU Projesinin Linux'un bir işletim sistemi olarak geliştirilmesinde büyük rol oynadığı yer burasıdır. Sonuçta, sistem yalnızca çekirdek değil, kitaplıklar, yardımcı programlar, sürücüler ve çok daha fazlasını içeren ayrılmaz bir sistem yazılımı kümesidir. Ve artık Windows ve MacOS ile başarılı bir şekilde rekabet eden ürünü dünyaya ortaya çıkaran, Linux çekirdeği ile birlikte kullanılan GNU katılımcılarının geliştirmeleri oldu. Ve buna "GNU/Linux" denir ve ilk kısım çoğunlukla atılır ki bu genel durumda yanlıştır.

GNU Projesi, yazılımın yanı sıra açık kaynak dünyasında ana lisans haline gelen ve yaygın olarak kullanılan Genel Kamu Lisansını (GNU GPL) oluşturdu. Özgür yazılımın dağıtımını düzenler ve son derece demokratiktir. Her kullanıcının bu lisans kapsamındaki uygulamaların kaynak kodlarını değiştirme, dağıtma ve projelerinde kullanma hakkına sahip olduğunu belirtir. Aynı zamanda tüm yan programlar da GPL'ye tabi olacaktır. Yani, açık kaynak kullanan bir geliştirici aynı zamanda açık kaynak da üretir ve dolayısıyla lisansın kendisi de miras alınır. Bu zorunlu bir kuraldır, ancak GPL'yi atlatmanın ve kullanılan açık kodlara göre kendi kodunuzu kapatmanın yolları vardır.

GNU ve yarattığı GPL'nin teknoloji endüstrisi üzerinde büyük bir etkisi oldu. Özgür yazılım, çok sayıda yetenekli programcıyı kendi sektörüne çekmiş ve en büyük topluluğu oluşturmuştur. GPL kapsamında oluşturulan ürünler yalnızca geniş pratik kullanım alanı elde etmekle kalmadı, aynı zamanda yüksek kaliteli ve erişilebilir kod sayesinde milyonlarca acemi geliştirici için mükemmel bir eğitim alanı haline geldi. Bu tür bilgi alışverişi kavramı ve geleneksel telif haklarına en gürültülü alternatif, her ne kadar açık olmasa da, olası gelişme yazılım ve şu anda ivme kazanıyor.

Orijinal olarak kitapta yayınlanmıştır Açık Kaynaklar. Richard Stallman öyleydi, ancak özgür yazılım hareketinin fikirlerinin bu kitapta tamamen eksik olmaması için bu makaleye katkıda bulundu.

İlk yazılım paylaşım topluluğu

1971 yılında MIT Yapay Zeka Laboratuvarı'nda çalışmaya başladığımda uzun yıllardır var olan bir yazılım paylaşım topluluğunun parçası oldum. Yazılımın paylaşımı topluluğumuzla sınırlı değildi; yemek tariflerinin paylaşılmasının yemek pişirme kadar eski olması gibi, bilgisayarlar kadar eskidir. Ama çoğundan daha fazlasını yaptık.

Yapay Zeka Laboratuvarı, laboratuvarın personel hackerlarının (1) dönemin büyük bilgisayarlarından biri olan Digital PDP -10 için çevirici dilinde tasarlayıp yazdığı, ITS (Uyumsuz Zaman Paylaşımı Sistemi) adı verilen bir zaman paylaşımlı işletim sistemini kullandı. Bu topluluğun bir üyesi olarak, bir Yapay Zeka Laboratuarı personeli sistem korsanı olarak benim görevim bu sistemi geliştirmekti.

Yazılımımıza “özgür yazılım” adını vermedik çünkü bu terim henüz mevcut değildi; ama olan buydu. Başka bir üniversiteden ya da firmadan kişiler bir programı taşımak ve kullanmak istediğinde memnuniyetle izin verdik. Alışılmadık ve ilginç bir program kullanan birini görürseniz, her zaman kaynak kodunu görmeyi isteyebilirsiniz, böylece onu okuyabilir, değiştirebilir veya yeni bir program oluşturmak için bazı kısımlarını yamyamlayabilirsiniz.

(1) “Hacker” sözcüğünün “güvenlik kırıcı” anlamında kullanılması kitle iletişim araçları açısından bir kafa karışıklığıdır. Biz hackerlar bu anlamı tanımayı reddediyoruz ve bu kelimeyi programlamayı seven biri, şakacı zekadan hoşlanan biri veya bu ikisinin birleşimi anlamında kullanmaya devam ediyoruz. Hacking Üzerine başlıklı makaleme bakın.

Toplumun çöküşü

Digital'in PDP-10 serisini sonlandırdığı 1980'lerin başında durum büyük ölçüde değişti. 60'larda zarif ve güçlü olan mimarisi, 80'lerde mümkün hale gelen daha geniş adres alanlarına doğal bir şekilde uzanamıyordu. Bu, ITS'yi oluşturan programların neredeyse tamamının geçerliliğini yitirdiği anlamına geliyordu.

AI Lab hacker topluluğu çok geçmeden zaten çökmüştü. 1981'de, yan şirket Sembolikler AI Laboratuvarı'ndaki bilgisayar korsanlarının neredeyse tamamını işe almıştı ve nüfusu azalan topluluk kendini ayakta tutamayacak durumdaydı. (Steve Levy'nin yazdığı Hackers kitabı, bu olayları anlatmanın yanı sıra bu topluluğun en parlak dönemindeki net bir resmini de veriyor.) Yapay Zeka Laboratuvarı 1982'de yeni bir PDP-10 satın aldığında, yöneticileri Digital'i kullanmaya karar verdi" ITS yerine özgür olmayan zaman paylaşım sistemi.

VAX veya 68020 gibi dönemin modern bilgisayarlarının kendi işletim sistemleri vardı, ancak hiçbiri özgür yazılım değildi: çalıştırılabilir bir kopya almak için bile bir gizlilik sözleşmesi imzalamanız gerekiyordu.

Bu, bilgisayar kullanmanın ilk adımının komşunuza yardım etmeyeceğinize söz vermek olduğu anlamına geliyordu. İşbirliği yapan bir topluluk yasaklandı. Özel mülk yazılım sahiplerinin koyduğu kural şuydu: “Komşunuzla paylaşırsanız korsansınızdır. Eğer herhangi bir değişiklik istiyorsanız, yapmamız için bize yalvarın.”

Özel mülk yazılım sosyal sisteminin (yazılımı paylaşmanıza veya değiştirmenize izin verilmediğini söyleyen sistem) antisosyal olduğu, etik olmadığı, tamamen yanlış olduğu fikri bazı okuyuculara sürpriz gelebilir. Peki toplumu bölmeye ve kullanıcıları çaresiz bırakmaya dayalı bir sistem hakkında başka ne söyleyebiliriz? Bu fikri şaşırtıcı bulan okuyucular, özel mülk yazılım sosyal sistemini verili olarak almış veya bunu özel mülk yazılım şirketlerinin önerdiği şartlara göre değerlendirmiş olabilir. Yazılım yayıncıları, insanları soruna tek bir açıdan bakmanın mümkün olduğuna ikna etmek için uzun süre ve çok çalıştılar.

Yazılım yayıncıları “haklarını uygulamaktan” veya “korsanı durdurmaktan” bahsettiklerinde gerçekte ne yaparlar? söylemek ikincildir. Bu açıklamaların asıl mesajı, kamuoyunun incelemeden kabul etmesi istenen, söylenmemiş varsayımlarda yatmaktadır. Bu nedenle bunları inceleyelim.

Bir varsayım, yazılım şirketlerinin yazılıma sahip olma konusunda tartışmasız doğal bir hakka sahip olduğu ve dolayısıyla tüm kullanıcılar üzerinde güce sahip olduğudur. (Eğer bu doğal bir hak olsaydı, halka ne kadar zarar verirse versin, itiraz edemezdik.) İlginçtir ki, ABD Anayasası ve hukuk geleneği bu görüşü reddediyor; Telif hakkı doğal bir hak değil, kullanıcıların doğal kopyalama hakkını sınırlayan, hükümetin dayattığı yapay bir tekeldir.

Belirtilmemiş bir başka varsayım da, yazılımla ilgili tek önemli şeyin, hangi işleri yapmanıza izin verdiği olduğudur; biz bilgisayar kullanıcılarının, ne tür bir topluma sahip olmamıza izin verildiğini umursamamamız gerektiğidir.

Üçüncü bir varsayım ise, eğer bir şirkete programın kullanıcıları üzerinde güç sağlamasaydık, kullanışlı bir yazılımımız olmayacaktı (ya da hiçbir zaman şunu ya da bu işi yapacak bir programa sahip olmayacaktık). Özgür yazılım hareketi, üzerine zincirler koymadan pek çok yararlı yazılım yapabileceğimizi göstermeden önce bu varsayım makul görünebilirdi.

Bu varsayımları kabul etmeyi reddeder ve kullanıcıları ilk sıraya yerleştirerek bu konuları sıradan sağduyulu ahlaka dayalı olarak değerlendirirsek, çok farklı sonuçlara varırız. Bilgisayar kullanıcıları, programları kendi ihtiyaçlarına uyacak şekilde değiştirmekte ve yazılımı paylaşmakta özgür olmalıdır, çünkü diğer insanlara yardım etmek toplumun temelidir.

Keskin bir ahlaki seçim

Topluluğumun gitmesiyle eskisi gibi devam etmek imkansızdı. Bunun yerine katı bir ahlaki seçimle karşı karşıya kaldım.

Kolay seçim, özel mülk yazılım dünyasına katılmak, gizlilik anlaşmaları imzalamak ve bilgisayar korsanı arkadaşıma yardım etmeyeceğime söz vermekti. Büyük olasılıkla, gizlilik anlaşmaları kapsamında yayımlanan bir yazılım da geliştiriyor olurdum, böylece diğer insanların da arkadaşlarına ihanet etmeleri yönündeki baskıyı artırıyor olurdum.

Bu şekilde para kazanabilirdim ve belki de kod yazarak kendimi eğlendirebilirdim. Ancak kariyerimin sonunda, insanları bölmek için duvarlar ördüğüm yılları hatırlayacağımı ve hayatımı dünyayı daha kötü bir yer haline getirmek için harcadığımı hissedeceğimi biliyordum.

Birisi bana ve MIT Yapay Zeka Laboratuvarı'na yazıcımızın kontrol programının kaynak kodunu vermeyi reddettiğinde, bir gizlilik anlaşmasının alıcı tarafında olduğumu zaten deneyimlemiştim. (Yazıcının kullanıldığı bu programda bazı özelliklerin bulunmaması son derece sinir bozucu.) Bu nedenle gizlilik anlaşmalarının masum olduğunu kendime söyleyemedim. Bizimle paylaşmayı reddettiğinde çok kızmıştım; Geri dönüp aynı şeyi herkese yapamazdım.

Basit ama tatsız bir başka seçenek de bilgisayar alanını terk etmekti. Bu şekilde becerilerim kötüye kullanılmaz ama yine de boşa gider. Bilgisayar kullanıcılarını bölüp kısıtlamaktan ben sorumlu olmayacağım ama yine de bu gerçekleşecekti.

Bu yüzden bir programcının iyilik için bir şeyler yapmasının bir yolunu aradım. Kendime şunu sordum: Bir topluluğu yeniden mümkün kılmak için yazabileceğim bir program veya programlar var mıydı?

Cevap açıktı: İlk ihtiyaç duyulan şey bir işletim sistemiydi. Bilgisayar kullanmaya başlamak için çok önemli bir yazılımdır. Bir işletim sistemiyle pek çok şey yapabilirsiniz; biri olmadan bilgisayarı hiç çalıştıramazsınız. Ücretsiz bir işletim sistemiyle yeniden işbirliği yapan bilgisayar korsanlarından oluşan bir topluluğa sahip olabiliriz ve herkesi katılmaya davet edebiliriz. Ve herkes, arkadaşlarını mahrum etmek için komplo kurmadan da bilgisayar kullanabilir.

Bir işletim sistemi geliştiricisi olarak bu iş için doğru becerilere sahiptim. Başarıyı garanti olarak kabul edemesem de, bu işi yapmak için seçildiğimi fark ettim. Taşınabilir olması ve Unix kullanıcılarının kolaylıkla geçiş yapabilmesi için sistemi Unix ile uyumlu hale getirmeyi seçtim. GNU adı, hacker geleneğini takip ederek, "GNU Unix Değildir" ifadesinin yinelenen kısaltması olarak seçildi. Sert g harfiyle tek hece olarak telaffuz edilir.

İşletim sistemi, yalnızca diğer programları çalıştırmaya yetecek kadar bir çekirdek anlamına gelmez. 1970'lerde, isme layık her işletim sistemi komut işlemcilerini, derleyicileri, derleyicileri, yorumlayıcıları, hata ayıklayıcıları, metin editörlerini, posta göndericilerini ve çok daha fazlasını içeriyordu. ITS'de vardı, Multics'te vardı, VMS'de vardı ve Unix'te vardı. GNU işletim sistemi de bunları içerecektir.

Daha sonra Hillel'e atfedilen şu sözleri duydum (1):

Ben kendim için değilsem, kim benim için olacak?
Eğer sadece kendim içinsem, neyim?
Şimdi değilse ne zaman?

GNU Projesini başlatma kararı da benzer bir ruha dayanıyordu.

(1) Bir Ateist olarak herhangi bir dini lideri takip etmiyorum, ancak bazen onlardan birinin söylediği bir şeye hayran kaldığımı fark ediyorum.

Özgürlük kadar özgür

"Özgür yazılım" terimi bazen yanlış anlaşılıyor; bunun fiyatla hiçbir ilgisi yok. Bu özgürlükle ilgilidir. Dolayısıyla burada özgür yazılımın tanımı yer almaktadır.

Bir program sizin için, yani belirli bir kullanıcı için, aşağıdaki durumlarda özgür yazılımdır:

  • Programı istediğiniz gibi, herhangi bir amaç için çalıştırma özgürlüğüne sahipsiniz.
  • Programı ihtiyaçlarınıza göre değiştirme özgürlüğüne sahipsiniz. (Bu özgürlüğü pratikte etkili kılmak için kaynak koduna erişiminizin olması gerekir, çünkü kaynak koduna sahip olmadan bir programda değişiklik yapmak son derece zordur.)
  • Kopyaları ücretsiz veya ücret karşılığında yeniden dağıtma özgürlüğüne sahipsiniz.
  • Topluluğun iyileştirmelerinizden yararlanabilmesi için programın değiştirilmiş sürümlerini dağıtma özgürlüğüne sahipsiniz.

“Ücretsiz” fiyat değil özgürlük anlamına geldiğinden, kopya satmakla özgür yazılım arasında bir çelişki yoktur. Aslında kopya satma özgürlüğü çok önemlidir: CD-ROM'larda satılan özgür yazılım koleksiyonları topluluk için önemlidir ve bunları satmak, özgür yazılım geliştirme için fon sağlamanın önemli bir yoludur. Dolayısıyla insanların bu koleksiyonlara dahil etmekte özgür olmadığı bir program, özgür yazılım değildir.

"Özgür" kelimesinin belirsizliği nedeniyle insanlar uzun süredir alternatifler aradılar ancak kimse daha iyi bir terim bulamadı. İngilizce dili diğerlerinden daha fazla kelimeye ve nüansa sahiptir, ancak özgürlükte olduğu gibi "özgür" anlamına gelen basit, net bir kelimeden yoksundur; anlam bakımından en yakın kelime "sınırsız"dır. "Özgürleştirilmiş", "özgürlük" ve "açık" gibi alternatiflerin ya yanlış anlamı vardır ya da başka bir dezavantajı vardır.

GNU yazılımı ve GNU sistemi

Bütün bir sistemi geliştirmek çok büyük bir projedir. Bunu ulaşılabilir hale getirmek için, mümkün olan her yerde mevcut özgür yazılım parçalarını uyarlamaya ve kullanmaya karar verdim. Örneğin, en başta TeX'i ana metin biçimlendirici olarak kullanmaya karar verdim; Birkaç yıl sonra GNU için başka bir pencere sistemi yazmak yerine X Pencere Sistemini kullanmaya karar verdim.

Bu kararlar ve bunlara benzer kararlar nedeniyle GNU sistemi, tüm GNU yazılımlarının toplamı ile aynı değildir. GNU sistemi, GNU yazılımı olmayan programları, başkaları tarafından geliştirilen programları ve kendi amaçlarına yönelik projeleri içerir, ancak özgür yazılım oldukları için kullanabileceğimiz programlar içerir.

Projenin iletilmesi

Ocak 1984'te MIT'deki işimden ayrıldım ve GNU yazılımı yazmaya başladım. MIT'in GNU'nun özgür yazılım olarak dağıtımına müdahale edememesi için MIT'den ayrılmak gerekliydi. Eğer ben kadroda kalsaydım, MIT işin sahibi olduğunu iddia edebilir, kendi dağıtım şartlarını dayatabilir, hatta işi özel bir yazılım paketine dönüştürebilirdi. Büyük miktarda iş yapıp, bunun amaçlanan amacı açısından işe yaramaz hale geldiğini görmek gibi bir niyetim yoktu: yeni bir yazılım paylaşım topluluğu oluşturmak.

Ancak o zamanlar MIT Yapay Zeka Laboratuvarı'nın başkanı olan Profesör Winston, beni laboratuvarın olanaklarını kullanmaya devam etmeye nezaketle davet etti.

İlk adımlar

GNU Projesi'ne başlamadan kısa bir süre önce VUCK olarak da bilinen Özgür Üniversite Derleyici Kiti'ni duydum. (Hollandaca "bedava" kelimesi bir harfle yazılmıştır: v.) Bu, C ve Pascal da dahil olmak üzere birden çok dili işlemek ve birden çok hedef makineyi desteklemek üzere tasarlanmış bir derleyiciydi. Yazarına GNU'nun bunu kullanıp kullanamayacağını sordum.

Üniversitenin ücretsiz olduğunu ancak derleyicinin olmadığını belirterek alaycı bir şekilde yanıt verdi. Bu nedenle GNU Projesi için ilk programımın çok dilli, çok platformlu bir derleyici olmasına karar verdim.

Derleyicinin tamamını kendim yazma ihtiyacını ortadan kaldırmayı umarak Lawrence Livermore Laboratuvarı'nda geliştirilen çok platformlu bir derleyici olan Pastel derleyicisinin kaynak kodunu aldım. Bir sistem programlama dili olarak tasarlanan Pascal'ın genişletilmiş bir sürümü desteklenir ve bu sürümde yazılmıştır. Bir C ön ucu ekledim ve onu Motorola 68000 bilgisayarına taşımaya başladım. Ancak derleyicinin megabaytlarca yığın alanına ihtiyaç duyduğunu ve mevcut 68000 Unix sisteminin yalnızca 64k'ye izin verdiğini keşfettiğimde bundan vazgeçmek zorunda kaldım.

Daha sonra Pastel derleyicisinin tüm giriş dosyasını bir sözdizimi ağacına ayrıştırarak, tüm sözdizimi ağacını bir "talimatlar" zincirine dönüştürerek ve ardından hiçbir depolama alanı boşaltmadan tüm çıktı dosyasını oluşturarak çalıştığını fark ettim. Bu noktada sıfırdan yeni bir derleyici yazmam gerektiği sonucuna vardım. Bu yeni derleyici artık GCC olarak biliniyor; İçinde Pastel derleyicilerinden hiçbiri kullanılmıyor ama yazdığım C ön ucunu uyarlayıp kullanmayı başardım. Ancak bu birkaç yıl sonraydı; ilk önce GNU Emacs üzerinde çalıştım.

GNU Emacs

Eylül 1984'te GNU Emacs üzerinde çalışmaya başladım ve 1985'in başlarında kullanılabilir olmaya başladı. Bu, düzenleme yapmak için Unix sistemlerini kullanmaya başlamamı sağladı; vi veya ed'i kullanmayı öğrenmeye hiç ilgim olmadığından, o zamana kadar düzenlemelerimi başka tür makinelerde yapmıştım.

Bu noktada insanlar GNU Emacs'ı kullanmak istemeye başladı ve bu da onun nasıl dağıtılacağı sorusunu gündeme getirdi. Tabi bunu kullandığım MIT bilgisayarındaki anonim ftp sunucusuna koydum. (Bu bilgisayar, prep.ai.mit.edu, böylece ana GNU ftp dağıtım sitesi haline geldi; birkaç yıl sonra hizmet dışı bırakıldığında, adını yeni ftp sunucumuza aktardık.) Ancak o zamanlar ilgilenenlerin çoğu insanlar internette değildi ve ftp yoluyla bir kopya alamıyorlardı. Asıl soru şuydu: Onlara ne diyeceğim?

"İnternette dolaşan ve sizin için kopyasını çıkaracak bir arkadaş bulun" diyebilirdim. Ya da orijinal PDP-10 Emacs ile yaptığımın aynısını yapabilirdim: Onlara şunu söyleyebilirsiniz: "Bana bir kaset ve SASE gönderin, ben de onu üzerinde Emacs ile birlikte geri göndereceğim." Ancak işim yoktu ve özgür yazılımdan para kazanmanın yollarını arıyordum. Ben de isteyen herkese 150 dolar ücret karşılığında kaset göndereceğimi duyurdum. Bu şekilde, bugün tüm GNU/Linux sistem dağıtımlarını dağıtan şirketlerin öncüsü olan özgür yazılım dağıtım işine başladım.

Bir program her kullanıcı için ücretsiz midir?

Bir program, yazarının elinden çıktığında özgür yazılım ise, bu, onun bir kopyasına sahip olan herkes için mutlaka özgür yazılım olacağı anlamına gelmez. Örneğin, kamuya açık yazılımlar (telif hakkıyla korunmayan yazılımlar) özgür yazılımdır; ancak herkes bunun özel olarak değiştirilmiş bir versiyonunu yapabilir. Benzer şekilde, birçok ücretsiz programın telif hakkı vardır ancak özel olarak değiştirilmiş sürümlere izin veren basit izin veren lisanslar altında dağıtılır.

Bu sorunun paradigmatik örneği X Pencere Sistemidir. MIT'de geliştirilen ve izin verilen bir lisansla özgür yazılım olarak piyasaya sürülen bu yazılım, kısa sürede çeşitli bilgisayar şirketleri tarafından benimsendi. X'i kendi özel Unix sistemlerine yalnızca ikili biçimde eklediler ve aynı gizlilik anlaşması kapsamındaydılar. X'in bu kopyaları Unix'ten daha özgür bir yazılım değildi.

X Pencere Sisteminin geliştiricileri bunu bir sorun olarak görmediler; bunun olmasını beklediler ve amaçladılar. Amaçları özgürlük değil, sadece “çok kullanıcıya sahip olmak” olarak tanımlanan “başarı”ydı. Bu kullanıcıların özgür olup olmaması umurlarında değildi, sadece sayılarının çok olması gerekiyordu.

Bu, özgürlük miktarını hesaplamanın iki farklı yolunun "Bu program ücretsiz mi?" sorusuna farklı yanıtlar verdiği paradoksal bir duruma yol açtı. MIT sürümünün dağıtım koşullarının sağladığı özgürlüğe göre karar verirseniz X'in özgür yazılım olduğunu söylersiniz. Ancak ortalama bir X kullanıcısının özgürlüğünü ölçerseniz, bunun özel mülk bir yazılım olduğunu söylemek zorunda kalırsınız. Çoğu X kullanıcısı, ücretsiz sürümü değil, Unix sistemleriyle birlikte gelen özel sürümleri çalıştırıyordu.

Copyleft ve GNU GPL

GNU'nun amacı kullanıcılara sadece popüler olmak değil, özgürlük de vermekti. Bu nedenle, GNU yazılımının özel mülk yazılıma dönüştürülmesini engelleyecek dağıtım terimlerini kullanmamız gerekiyordu. Kullandığımız yöntemin adı “copyleft”.(1)

Copyleft, telif hakkı yasasını kullanır, ancak onu genel amacının tam tersine hizmet edecek şekilde tersine çevirir: bir programı kısıtlamanın bir aracı olmak yerine, programın özgür kalmasının bir aracı haline gelir.

Copyleft'in ana fikri, herkese programı çalıştırma, programı kopyalama, programı değiştirme ve değiştirilmiş sürümleri dağıtma izni vermemiz, ancak kendi kısıtlamalarını ekleme izni vermememizdir. Böylece, “özgür yazılımı” tanımlayan önemli özgürlükler, bir kopyaya sahip olan herkese garanti edilir; devredilemez haklar haline gelirler.

Etkili bir copyleft için değiştirilmiş sürümlerin de ücretsiz olması gerekir. Bu, bizimkine dayanan çalışmaların yayınlanması durumunda topluluğumuzun kullanımına sunulmasını sağlar. Programcı olarak çalışan programcılar GNU yazılımını geliştirmek için gönüllü olduklarında, işverenlerinin "Bu değişiklikleri paylaşamazsınız, çünkü bunları programın özel mülk versiyonunu yapmak için kullanacağız" demesini engelleyen copyleft'tir.

Programın her kullanıcısı için özgürlük sağlamak istiyorsak, değişikliklerin ücretsiz olması gerekliliği çok önemlidir. X Pencere Sistemini özelleştiren firmalar genellikle bunu sistemlerine ve donanımlarına taşımak için bazı değişiklikler yaptılar. Bu değişiklikler X'in büyük boyutuyla karşılaştırıldığında küçüktü ama önemsiz değildi. Eğer değişiklik yapmak, kullanıcıların özgürlüğünü reddetmek için bir mazeret olsaydı, herkesin bu mazeretten faydalanması kolay olurdu.

İlgili bir sorun, özgür bir programın özgür olmayan kodla birleştirilmesiyle ilgilidir. Böyle bir birleşim kaçınılmaz olarak özgür olmayacaktır; Özgür olmayan kısım için hangi özgürlükler eksikse, bütün için de eksik olacaktır. Bu tür kombinasyonlara izin vermek, bir gemiyi batırmaya yetecek kadar büyük bir delik açacaktır. Bu nedenle, copyleft için çok önemli bir gereklilik bu deliği kapatmaktır: copyleft programa eklenen veya onunla birleştirilen her şey, daha büyük birleştirilmiş versiyonun da özgür ve copyleft olacağı şekilde olmalıdır.

Çoğu GNU yazılımı için kullandığımız özel copyleft uygulaması, GNU Genel Kamu Lisansı veya kısaca GNU GPL'dir. Belirli durumlarda kullanılan başka tür copyleftlerimiz de var. GNU kılavuzları da copyleft'lidir, ancak çok daha basit bir copyleft türü kullanırlar çünkü GNU GPL'nin karmaşıklığı kılavuzlar için gerekli değildir.(2)

(1) 1984 veya 1985'te Don Hopkins (hayal gücü çok kuvvetli bir adam) bana bir mektup gönderdi. Zarfın üzerine birkaç eğlenceli söz yazmıştı, bunların arasında şu da vardı: "Copyleft - tüm hakları ters çevrilmiştir." O zamanlar geliştirmekte olduğum dağıtım konseptine isim vermek için “copyleft” kelimesini kullanmıştım.

Özgür Yazılım Vakfı çalışanları bir dizi GNU yazılım paketi yazmış ve sürdürmüştür. Dikkate değer iki tanesi C kütüphanesi ve kabuktur. GNU C kütüphanesi, GNU/Linux sisteminde çalışan her programın Linux ile iletişim kurmak için kullandığı kütüphanedir. Özgür Yazılım Vakfı personelinin bir üyesi olan Roland McGrath tarafından geliştirilmiştir. Çoğu GNU/Linux sisteminde kullanılan kabuk, FSF çalışanı Brian Fox tarafından geliştirilen Bourne Again Shell(1) olan BASH'dir.

Bu programların geliştirilmesini finanse ettik çünkü GNU Projesi yalnızca araçlarla veya geliştirme ortamıyla ilgili değildi. Amacımız eksiksiz bir işletim sistemiydi ve bu amaç için bu programlara ihtiyaç vardı.

(1) “Bourne Again Shell”, Unix'teki olağan kabuk olan “Bourne Shell” ismine dayalı bir oyundur.

Ücretsiz yazılım desteği

Özgür yazılım felsefesi belirli bir yaygın iş uygulamasını reddeder ancak iş dünyasına karşı değildir. İşletmeler kullanıcıların özgürlüğüne saygı duyduğunda onlara başarılar dileriz.

Emacs kopyalarının satılması bir tür özgür yazılım işinin göstergesidir. FSF bu işi devraldığında, geçimimi sağlamak için başka bir yola ihtiyacım vardı. Bunu, geliştirdiğim özgür yazılımla ilgili hizmetleri satarken buldum. Buna, GNU Emacs'ın nasıl programlanacağı ve GCC'nin nasıl özelleştirileceği gibi konularda eğitim ve çoğunlukla GCC'yi yeni platformlara taşıyan yazılım geliştirme de dahildi.

Bugün bu tür özgür yazılım işlerinin her biri bir dizi şirket tarafından uygulanmaktadır. Bazıları CD-ROM'da özgür yazılım koleksiyonları dağıtır; diğerleri kullanıcı sorularını yanıtlamaktan hataları düzeltmeye ve önemli yeni özellikler eklemeye kadar çeşitli düzeylerde destek satarlar. Yeni özgür yazılım ürünlerini piyasaya süren özgür yazılım şirketlerini bile görmeye başlıyoruz.

Ancak dikkatli olun; kendilerini "açık kaynak" terimiyle ilişkilendiren bazı şirketler aslında işlerini özgür yazılımla çalışan özgür olmayan yazılımlara dayandırıyor. Bunlar özgür yazılım şirketleri değil, ürünleri kullanıcıları özgürlükten uzaklaştıran özel mülk yazılım şirketleridir. Bu programlara “katma değerli paketler” adını veriyorlar ve bu da benimsememizi istedikleri değerleri gösteriyor: özgürlüğün ötesinde rahatlık. Eğer özgürlüğe daha çok değer veriyorsak bunlara “özgürlük eksiltilmiş” paketler demeliyiz.

Teknik hedefler

GNU'nun temel amacı özgür yazılım olmaktır. GNU'nun Unix'e karşı hiçbir teknik avantajı olmasa bile, kullanıcıların işbirliği yapmasına olanak tanıyan sosyal bir avantajı ve kullanıcının özgürlüğüne saygı gösteren etik bir avantajı olacaktı.

Ancak bilinen iyi uygulama standartlarını işe uygulamak doğaldı; örneğin, keyfi sabit boyut sınırlamalarından kaçınmak için veri yapılarını dinamik olarak tahsis etmek ve mantıklı olan her yerde olası tüm 8 bitlik kodları işlemek.

Ayrıca, 16 bitlik makineleri desteklememeye karar vererek (GNU sistemi bittiğinde 32 bitlik makinelerin norm olacağı açıktı) ve hiçbir çaba göstermemeye karar vererek, Unix'in küçük bellek boyutuna odaklanmasını reddettik. Bir megabaytı aşmadığı sürece bellek kullanımını azaltmak için. Çok büyük dosyaların işlenmesinin çok önemli olmadığı programlarda, programcıları giriş dosyasının tamamını çekirdeğe okumaya ve ardından G/Ç konusunda endişelenmenize gerek kalmadan içeriğini taramaya teşvik ettik.

Bu kararlar birçok GNU programının güvenilirlik ve hız açısından Unix benzerlerini geçmesini sağladı.

Bağışlanan bilgisayarlar

GNU Projesi'nin itibarı arttıkça insanlar, Unix çalıştıran makineleri projeye bağışlamayı teklif etmeye başladı. Bunlar çok faydalıydı çünkü GNU bileşenlerini geliştirmenin en kolay yolu, bunu bir Unix sistemi üzerinde yapmak ve bu sistemin bileşenlerini başka bir sistemle değiştirmekti. Ama etik bir konuyu gündeme getirdiler: Unix'in bir kopyasına sahip olmamızın doğru olup olmadığı.

Unix özel mülk bir yazılımdı (ve öyledir) ve GNU Projesi'nin felsefesi özel mülk yazılım kullanmamamız gerektiğini söylüyordu. Ancak meşru müdafaada şiddetin haklı olduğu sonucuna götüren aynı mantığı uygulayarak, bunun kullanımının meşru olduğu sonucuna vardım. Başkalarının özel paketi kullanmayı bırakmasına yardımcı olacak ücretsiz bir değiştirme geliştirmek için bu çok önemliyken, özel bir paket.

Ancak bu haklı bir kötülük olsa bile yine de bir kötülüktü. Bugün artık Unix'in herhangi bir kopyasına sahip değiliz çünkü bunların yerini özgür işletim sistemleriyle değiştirdik. Bir makinenin işletim sistemini ücretsiz bir işletim sistemiyle değiştiremezsek, onun yerine makineyi değiştirdik.

GNU Görev Listesi

GNU Projesi ilerledikçe ve artan sayıda sistem bileşeni bulundukça veya geliştirildikçe, sonunda kalan boşlukların bir listesini yapmak faydalı hale geldi. Eksik parçaları yazacak geliştiricileri işe almak için kullandık. Bu liste GNU Görev Listesi olarak bilinmeye başlandı. Eksik Unix bileşenlerine ek olarak, gerçekten eksiksiz bir sistemin sahip olması gerektiğini düşündüğümüz diğer çeşitli faydalı yazılım ve dokümantasyon projelerini de listeledik.

Bugün (1), GNU Görev Listesi'nde neredeyse hiç Unix bileşeni kalmadı; birkaç gereksiz iş dışında bu işler yapılmıştı. Ancak liste bazılarının “uygulama” diyebileceği projelerle dolu. Dar bir kullanıcı sınıfından daha fazlasına hitap eden herhangi bir programın, bir işletim sistemine eklenmesi faydalı olacaktır.

Oyunlar bile görev listesine dahil edilmiştir ve en başından beri de öyledir. Unix oyunları içeriyordu, dolayısıyla doğal olarak GNU da oyunları içermelidir. Ancak oyunlar için uyumluluk bir sorun değildi, bu yüzden Unix'in sahip olduğu oyunların listesini takip etmedik. Bunun yerine kullanıcıların hoşuna gidebilecek farklı oyun türlerini listeledik.

(1) Bu 1998'de yazıldı. 2009'da artık uzun bir görev listesi tutmuyoruz. Topluluk özgür yazılımı o kadar hızlı geliştiriyor ki, hepsini takip edemiyoruz bile. Bunun yerine, Yüksek Öncelikli Projelerin bir listesi var; insanları yazmaya gerçekten teşvik etmek istediğimiz çok daha kısa bir proje listesi.

GNU Kütüphanesi GPL

GNU C kütüphanesi, özel mülk yazılımı kütüphaneye bağlama izni veren, GNU Kütüphanesi Genel Kamu Lisansı(1) adı verilen özel bir tür copyleft kullanır. Bu istisna neden yapılıyor?

Bu bir prensip meselesi değil; özel mülk yazılım ürünlerinin kodlarımızı içerme hakkına sahip olduğunu söyleyen bir ilke yoktur. (Bizimle paylaşmayı reddetmeye dayalı bir projeye neden katkıda bulunalım ki?) LGPL'yi C kütüphanesi veya herhangi bir kütüphane için kullanmak bir strateji meselesidir.

C kütüphanesi genel bir iş yapar; her tescilli sistem veya derleyici bir C kütüphanesiyle birlikte gelir. Bu nedenle, C kitaplığımızı yalnızca özgür yazılıma açık hale getirmek, özgür yazılıma herhangi bir avantaj sağlamazdı; yalnızca kitaplığımızın kullanımını caydırırdı.

Bir sistem bunun istisnasıdır: GNU sisteminde (ve buna GNU/Linux da dahildir), GNU C kütüphanesi tek C kütüphanesidir. Dolayısıyla GNU C kütüphanesinin dağıtım koşulları, GNU sistemi için özel mülk bir program derlemenin mümkün olup olmadığını belirler. GNU sistemi üzerinde özel mülk uygulamalara izin vermenin etik bir nedeni yoktur, ancak stratejik olarak öyle görünüyor ki bunlara izin vermemek, özgür uygulamaların geliştirilmesini teşvik etmekten çok, GNU sisteminin kullanımını caydırmaya neden olacaktır. Bu nedenle Kütüphane GPL'sini kullanmak C kütüphanesi için iyi bir stratejidir.

Diğer kütüphaneler için stratejik kararın duruma göre değerlendirilmesi gerekir. Bir kütüphane belirli türde programların yazılmasına yardımcı olabilecek özel bir iş yaptığında, bunu GPL altında yayınlamak ve bunu yalnızca ücretsiz programlarla sınırlamak, diğer özgür yazılım geliştiricilerine yardım etmenin ve onlara özel mülk yazılıma karşı avantaj sağlamanın bir yoludur.

BASH için komut satırı düzenlemesi sağlamak üzere geliştirilmiş bir kitaplık olan GNU Readline'ı düşünün. Readline, Kütüphane GPL'si değil, normal GNU GPL'si altında yayınlanır. Bu muhtemelen Readline'ın kullanım miktarını azaltacaktır, ancak bu bizim için bir kayıp değildir. Bu arada en az bir yararlı uygulama oldu Readline'ı kullanabilmek için özel olarak özgür yazılım hazırladık ve bu, topluluk için gerçek bir kazançtır.

Özel mülk yazılım geliştiricileri paranın sağladığı avantajlara sahiptir; özgür yazılım geliştiricilerinin birbirlerine avantaj sağlaması gerekir. Umarım bir gün, özel mülk yazılımla paraleli olmayan, yeni özgür yazılımın yapı taşları olarak hizmet verecek yararlı modüller sağlayan ve daha fazla özgür yazılım geliştirme için büyük bir avantaj sağlayan, GPL kapsamındaki kitaplıklardan oluşan geniş bir koleksiyona sahip olacağız.

(1) Tüm kütüphanelerin onu kullanması gerektiği fikrini vermekten kaçınmak için bu lisansa artık GNU Kısıtlı Genel Kamu Lisansı adı verilmektedir. Daha fazla bilgi için Bir sonraki kitaplığınızda Neden Daha Az GPL'yi kullanmamalısınız konusuna bakın.

Kaşıntı mı kaşınıyorsun?

Eric Raymond şöyle diyor: "Yazılımın her iyi çalışması, geliştiricinin kişisel kaşıntısını gidermekle başlar." Belki bu bazen olur, ancak GNU yazılımının birçok temel parçası tamamen özgür bir işletim sistemine sahip olmak için geliştirildi. Bunlar bir dürtüden değil, bir vizyondan ve bir plandan geliyor.

Örneğin, GNU C kütüphanesini Unix benzeri bir sistemin bir C kütüphanesine ihtiyacı olduğu için geliştirdik, Unix benzeri bir sistemin bir kabuğa ihtiyacı olduğu için BASH'ı ve Unix benzeri bir sistemin bir tar programına ihtiyacı olduğu için GNU tar'ı geliştirdik. Aynı şey kendi programlarım için de geçerli; GNU C derleyicisi, GNU Emacs, GDB ve GNU Make.

Bazı GNU programları özgürlüğümüze yönelik belirli tehditlerle başa çıkmak için geliştirildi. Böylece, LZW patentleri nedeniyle topluluğun kaybettiği Compress programının yerine gzip'i geliştirdik. Belirli özel kütüphanelerin neden olduğu sorunları çözmek için LessTif'i geliştirecek insanlar bulduk ve yakın zamanda GNOME ve Harmony'yi başlattık (aşağıya bakın). Popüler özgür olmayan şifreleme yazılımının yerine GNU Privacy Guard'ı geliştiriyoruz çünkü kullanıcıların gizlilik ve özgürlük arasında seçim yapmak zorunda kalmaması gerekiyor.

Elbette bu programları yazan kişiler esere ilgi duymaya başlamış ve kendi ihtiyaçları ve ilgileri doğrultusunda çeşitli kişiler tarafından bunlara birçok özellik eklenmiştir. Ancak programların var olmasının nedeni bu değil.

Beklenmedik gelişmeler

GNU Projesinin başlangıcında, GNU sisteminin tamamını geliştireceğimizi ve ardından onu bir bütün olarak yayınlayacağımızı hayal ettim. Bu böyle olmadı.

GNU sisteminin her bir bileşeni bir Unix sistemi üzerinde uygulandığından, her bir bileşen, tam bir GNU sistemi ortaya çıkmadan çok önce Unix sistemlerinde çalışabiliyordu. Bu programlardan bazıları popüler hale geldi ve kullanıcılar bunları Unix'in çeşitli uyumsuz sürümlerine ve bazen de diğer sistemlere genişletmeye ve taşımaya başladı.

Süreç, bu programları çok daha güçlü hale getirdi ve hem fonları hem de katkıda bulunanları GNU Projesi'ne çekti. Ancak, GNU geliştiricilerinin eksik bileşenleri birbiri ardına yazmaya devam etmek yerine bu bağlantı noktalarının bakımına ve mevcut bileşenlere özellikler eklemeye zaman ayırması nedeniyle, muhtemelen minimum çalışma sisteminin tamamlanmasını da birkaç yıl geciktirdi.

GNU Hurd'u

1990'a gelindiğinde GNU sistemi neredeyse tamamlanmıştı; tek önemli eksik bileşen çekirdekti. Çekirdeğimizi Mach üzerinde çalışan sunucu işlemlerinin bir koleksiyonu olarak uygulamaya karar vermiştik. Mach, Carnegie Mellon Üniversitesi'nde ve ardından Utah Üniversitesi'nde geliştirilen bir mikro çekirdektir; GNU Hurd, Mach üzerinde çalışan ve Unix çekirdeğinin çeşitli işlerini yapan bir sunucular topluluğudur (yani bir GNU sürüsü). Söz verdiğimiz gibi Mach'ın özgür yazılım olarak piyasaya sürülmesini beklediğimizden geliştirmenin başlangıcı ertelendi.

Bu tasarımı seçmenin bir nedeni, işin en zor kısmı gibi görünen şeyden kaçınmaktı: kaynak düzeyinde bir hata ayıklayıcı olmadan bir çekirdek programında hata ayıklamak. İşin bu kısmı zaten Mach'ta yapılmıştı ve GDB ile Hurd sunucularındaki kullanıcı programları olarak hata ayıklamayı bekliyorduk. Ancak bunu mümkün kılmak uzun zaman aldı ve birbirlerine mesaj gönderen çok iş parçacıklı sunucularda hata ayıklamanın çok zor olduğu ortaya çıktı. Hurd'un sağlam bir şekilde çalışmasını sağlamak uzun yıllar sürdü.

Alix

GNU çekirdeğinin başlangıçta Hurd olarak adlandırılması planlanmamıştı. Orijinal adı Alix'ti; o zamanlar sevgilim olan kadının adını taşıyordu. Bir Unix sistem yöneticisi olan kendisi, adının Unix sistem sürümleri için ortak bir adlandırma modeline nasıl uyacağına dikkat çekmişti; şaka olarak arkadaşlarına "Biri bir çekirdeğe benim adımı vermeli" dedi. Hiçbir şey söylemedim ama ona Alix adında bir çekirdekle sürpriz yapmaya karar verdim.

Bu böyle kalmadı. Çekirdeğin ana geliştiricisi Michael (şimdi Thomas) Bushnell, Hurd adını tercih etti ve Alix'i, çekirdeğin belirli bir kısmına atıfta bulunacak şekilde yeniden tanımladı; sistem çağrılarını yakalayacak ve Hurd sunucularına mesaj göndererek bunları yönetecek kısım.

Daha sonra Alix'le ayrıldık ve Alix adını değiştirdi; bağımsız olarak Hurd tasarımı, C kütüphanesinin mesajları doğrudan sunuculara göndermesini sağlayacak şekilde değiştirildi ve bu, Alix bileşeninin tasarımdan kaybolmasına neden oldu.

Ancak bu olaylar yaşanmadan önce bir arkadaşı Hurd'un kaynak kodunda Alix ismine rastlamış ve ona bundan bahsetmiş. Böylece kendi adını taşıyan bir çekirdek bulma şansına sahip oldu.

Linux ve GNU/Linux

GNU Hurd, üretimde kullanıma uygun değildir ve olup olmayacağını da bilmiyoruz. Yeteneğe dayalı tasarımın, doğrudan tasarımın esnekliğinden kaynaklanan sorunları var ve çözümlerin olup olmadığı da açık değil.

Neyse ki başka bir çekirdek mevcut. 1991 yılında Linus Torvalds Unix uyumlu bir çekirdek geliştirdi ve buna Linux adını verdi. İlk başta özel mülktü ancak 1992'de onu özgür yazılım haline getirdi; Linux'u tam olarak tamamlanmamış GNU sistemiyle birleştirmek, tamamen özgür bir işletim sistemiyle sonuçlandı. (Elbette bunları birleştirmek başlı başına önemli bir işti.) Linux sayesinde bugün GNU sisteminin bir versiyonunu gerçekten çalıştırabiliyoruz.

Geleceğimizdeki zorluklar

Geniş bir özgür yazılım yelpazesi geliştirme yeteneğimizi kanıtladık. Bu yenilmez ve durdurulamaz olduğumuz anlamına gelmez. Çeşitli zorluklar özgür yazılımın geleceğini belirsiz hale getiriyor; bunlarla tanışmak, bazen yıllarca süren istikrarlı bir çaba ve dayanıklılık gerektirecektir. Bu, insanların özgürlüklerine değer verdiklerinde ve onu kimsenin elinden almasına izin vermeyecekleri zaman gösterdikleri kararlılığı gerektirecektir.

Aşağıdaki dört bölümde bu zorluklar tartışılmaktadır.

Gizli donanım

Donanım üreticileri giderek donanım özelliklerini gizli tutma eğiliminde oluyor. Bu, Linux ve XFree86'nın yeni donanımı destekleyebilmesi için ücretsiz sürücüler yazmayı zorlaştırır. Bugün tamamen özgür sistemlerimiz var, ancak yarının bilgisayarlarını destekleyemezsek yarın onlara sahip olamayacağız.

Bu sorunla başa çıkmanın iki yolu vardır. Programcılar donanımın nasıl destekleneceğini bulmak için tersine mühendislik yapabilirler. Geri kalanımız özgür yazılım tarafından desteklenen donanımı seçebilir; sayımız arttıkça spesifikasyonların gizliliği kendi kendini yenilgiye uğratan bir politikaya dönüşecek.

Tersine mühendislik büyük bir iştir; Bunu üstlenmek için yeterli kararlılığa sahip programcılarımız olacak mı? Evet; özgür yazılımın bir prensip meselesi olduğuna ve özgür olmayan sürücülerin kabul edilemez olduğuna dair güçlü bir duygu geliştirmişsek. Ve birçoğumuz ücretsiz sürücüleri kullanabilmek için fazladan para mı, hatta biraz fazladan zaman mı harcayacağız? Evet, eğer özgürlüğe sahip olma kararlılığı yaygınsa.

(2008 notu: bu sorun BIOS'u da kapsıyor. Ücretsiz bir BIOS var, LibreBoot (bir coreboot dağıtımı); sorun, LibreBoot'un onları özgür olmayan "bloblar" olmadan destekleyebilmesi için makineler için teknik özellikler almaktır.)

Özgür olmayan kütüphaneler

Özgür işletim sistemlerinde çalışan özgür olmayan bir kütüphane, özgür yazılım geliştiricileri için bir tuzak görevi görür. Kütüphanenin çekici özellikleri yemdir; kütüphaneyi kullanırsanız tuzağa düşersiniz çünkü programınız özgür bir işletim sisteminin parçası olamaz. (Açıkçası, programınızı dahil edebiliriz, ancak bunu yapmaz) koşmak(kitaplık eksiktir.) Daha da kötüsü, özel kitaplığı kullanan bir program popüler hale gelirse, diğer şüphelenmeyen programcıları da tuzağa düşürebilir.

Bu sorunun ilk örneği 80'lerde Motif araç setiydi. Henüz özgür bir işletim sistemi olmasa da Motif'in ileride ne gibi sorunlara yol açacağı belliydi. GNU Projesi iki şekilde yanıt verdi: bireysel özgür yazılım projelerinden Motif'in yanı sıra ücretsiz X Araç Takımı widget'larını da desteklemelerini isteyerek ve birinden Motif'in yerine ücretsiz bir parça yazmasını isteyerek. Bu iş uzun yıllar sürdü; Hungry Programmers tarafından geliştirilen LessTif, ancak 1997 yılında çoğu Motif uygulamasını destekleyecek kadar güçlü hale geldi.

1996 ile 1998 yılları arasında, Qt adı verilen başka bir özgür olmayan GUI araç seti kitaplığı, özgür yazılımın önemli bir koleksiyonu olan masaüstü KDE'de kullanıldı.

Özgür GNU/Linux sistemleri, kütüphaneyi kullanamadığımız için KDE'yi kullanamıyordu. Ancak, özgür yazılıma bağlı kalma konusunda katı olmayan bazı ticari GNU/Linux sistemleri distribütörleri, sistemlerine KDE'yi eklediler; daha fazla yeteneğe sahip ancak daha az özgürlüğe sahip bir sistem ürettiler. KDE grubu aktif olarak daha fazla programcıyı Qt kullanmaya teşvik ediyordu ve milyonlarca yeni "Linux kullanıcısı" bunda bir sorun olduğu fikrine asla maruz kalmamıştı. Durum vahim görünüyordu.

Özgür yazılım topluluğu soruna iki şekilde yanıt verdi: GNOME ve Harmony.

GNU Ağ Nesne Modeli Ortamı olan GNOME, GNU'nun masaüstü projesidir. 1997 yılında Miguel de Icaza tarafından başlatılan ve Red Hat Yazılımının desteğiyle geliştirilen GNOME, benzer masaüstü olanaklarını sağlamak için yola çıktı, ancak yalnızca özgür yazılımı kullandı. Yalnızca C++'ı değil, çeşitli dilleri desteklemek gibi teknik avantajlara da sahiptir. Ancak asıl amacı özgürlüktü: özgür olmayan herhangi bir yazılımın kullanılmasını gerektirmemek.

Harmony, KDE yazılımını Qt kullanmadan çalıştırmayı mümkün kılmak için tasarlanmış uyumlu bir yedek kitaplıktır.

Kasım 1998'de, Qt geliştiricileri, gerçekleştirildiğinde Qt'u özgür yazılım haline getirecek bir lisans değişikliği duyurdular. Emin olmanın bir yolu yok, ancak bunun kısmen topluluğun Qt'nin özgür olmadığında ortaya çıkardığı soruna verdiği kararlı tepkiden kaynaklandığını düşünüyorum. (Yeni lisans uygunsuz ve adaletsizdir, bu nedenle kullanmaktan kaçınmak hala arzu edilir.) Qt.)

Bir sonraki cazip, özgür olmayan kütüphaneye nasıl karşılık vereceğiz? Bütün toplum tuzağın dışında kalmanın gerekliliğini anlayacak mı? Yoksa çoğumuz rahatlık uğruna özgürlükten vazgeçip büyük bir sorun mu yaratacağız? Geleceğimiz felsefemize bağlıdır.

Yazılım patentleri

Karşılaştığımız en büyük tehdit, algoritmaları ve özellikleri yirmi yıla kadar özgür yazılıma sınırlayabilen yazılım patentlerinden geliyor. LZW sıkıştırma algoritması patentleri için 1983'te başvuruldu ve hâlâ uygun şekilde sıkıştırılmış GIF'ler üretmek için özgür yazılım yayınlayamıyoruz. 1998 yılında, MP3 sıkıştırılmış ses üretmeye yönelik ücretsiz bir program, patent davası tehdidi altında dağıtımdan kaldırıldı.

Patentlerle başa çıkmanın yolları var: Bir patentin geçersiz olduğuna dair kanıt arayabiliriz ve bir işi yapmanın alternatif yollarını arayabiliriz. Ancak bu yöntemlerin her biri yalnızca bazen işe yarar; her ikisi de başarısız olduğunda, bir patent tüm özgür yazılımların kullanıcıların istediği bazı özelliklerden yoksun olmasına neden olabilir. Uzun bir bekleyişin ardından patentlerin süresi doluyor (MP3 patentlerinin süresinin 2018 yılında dolması bekleniyor), peki o zamana kadar ne yapacağız?

Özgür yazılıma özgürlük uğruna değer verenlerimiz yine de özgür yazılımda kalacaklar. İşimizi patentli özellikler olmadan yapmayı başaracağız. Ancak özgür yazılıma teknik açıdan üstün olmasını bekledikleri için değer verenler muhtemelen buna özgür yazılım adını verecekler. Bir patentin onu geri tutması başarısızlıktır. Bu nedenle, “çarşı” geliştirme modelinin pratik etkinliğinden ve bazı özgür yazılımların güvenilirliğinden ve gücünden bahsetmek faydalı olsa da, özgürlük ve prensiple yetinmemeliyiz.

Ücretsiz dokümantasyon

Özgür işletim sistemlerimizdeki en büyük eksiklik yazılımda değil; sistemlerimize dahil edebileceğimiz iyi ücretsiz kılavuzların olmayışıdır. Dokümantasyon herhangi bir yazılım paketinin önemli bir parçasıdır; Önemli bir özgür yazılım paketinin iyi bir özgür kılavuzla birlikte gelmemesi büyük bir boşluktur. Bugün buna benzer pek çok eksiğimiz var.

Özgür yazılım gibi özgür belgeler de bir fiyat meselesi değil, bir özgürlük meselesidir. Özgür bir kılavuzun kriteri, özgür yazılımınkiyle hemen hemen aynıdır: bu, tüm kullanıcılara belirli özgürlüklerin verilmesi meselesidir. Kılavuzun programın her kopyasına eşlik edebilmesi için çevrimiçi ve kağıt üzerinde yeniden dağıtıma (ticari satış dahil) izin verilmelidir.

Değişiklik izni de çok önemlidir. Genel bir kural olarak, insanların her türlü makale ve kitapta değişiklik yapma iznine sahip olmasının gerekli olduğuna inanmıyorum. Örneğin, bunun gibi makalelerde değişiklik yapmak için sizin veya benim izin vermek zorunda olduğumuzu düşünmüyorum. eylemlerimizi ve görüşlerimizi açıklayan.

Ancak özgür yazılımın belgelenmesinde değişiklik yapma özgürlüğünün çok önemli olmasının özel bir nedeni vardır. İnsanlar yazılımı değiştirme ve özelliklerini ekleme veya değiştirme haklarını kullandıklarında, bilinçli davranırlarsa kılavuzu da değiştireceklerdir; böylece değiştirilen programla birlikte doğru ve kullanışlı belgeler sunabilirler. Programcıların dikkatli olmasına ve işi bitirmesine izin vermeyen özgür olmayan bir kılavuz, topluluğumuzun ihtiyaçlarını karşılamaz.

Değişikliklerin nasıl yapılacağına ilişkin bazı sınırlamalar sorun yaratmaz. Örneğin, orijinal yazarın telif hakkı bildirimini, dağıtım koşullarını veya yazar listesini korumaya yönelik gereksinimler uygundur. Değiştirilen sürümlerin, değiştirildiğine dair bildirim içermesini, hatta tüm bölümlerin değiştirilmesini gerektirmek de sorun değildir. bu bölümler teknik olmayan konularla ilgili olduğu sürece silinemez veya değiştirilemez. Bu tür kısıtlamalar sorun değildir çünkü bilinçli programcının kılavuzu değiştirilen programa uyarlamasını engellemez. Başka bir deyişle, özgür yazılım topluluğunun kılavuzu tam olarak kullanmasını engellemezler.

Ancak tüm özelliklerin değiştirilmesi mümkün olmalıdır. teknik kılavuzun içeriğinin belirlenmesi ve ardından sonucun, tüm olağan medya kanalları aracılığıyla tüm olağan medyaya dağıtılması; Aksi takdirde kısıtlamalar topluluğu engeller, kılavuz özgür değildir ve başka bir kılavuza ihtiyacımız vardır.

Özgür yazılım geliştiricileri, geniş yelpazede ücretsiz kılavuzlar üretme farkındalığına ve kararlılığına sahip olacak mı? Bir kez daha geleceğimiz felsefeye bağlı.

Özgürlük hakkında konuşmalıyız

Bugün tahminler böyle var Debian GNU/Linux ve Red Hat “Linux” gibi GNU/Linux sistemlerinin on milyon kullanıcısı. Özgür yazılım o kadar pratik avantajlar geliştirmiştir ki kullanıcılar tamamen pratik nedenlerden dolayı ona akın etmektedir.

Bunun iyi sonuçları açıktır: özgür yazılım geliştirmeye daha fazla ilgi, özgür yazılım işletmeleri için daha fazla müşteri ve şirketleri özel mülk yazılım ürünleri yerine ticari özgür yazılım geliştirmeye teşvik etme yeteneği.

Ancak yazılıma olan ilgi, dayandığı felsefenin farkındalığından daha hızlı artıyor ve bu da sorunlara yol açıyor. Yukarıda açıklanan zorluklara ve tehditlere göğüs gerebilme yeteneğimiz, özgürlük için sağlam durma iradesine bağlıdır. Topluluğumuzun bu iradeye sahip olduğundan emin olmak için topluluğa yeni katılan kullanıcılara bu fikri yaymamız gerekiyor.

Ancak bunu başaramıyoruz: Topluluğumuza yeni kullanıcılar çekme çabaları, onlara topluluğumuzun vatandaşlık bilgilerini öğretme çabalarını çok geride bırakıyor. Her ikisini de yapmamız gerekiyor ve bu iki çabayı dengede tutmamız gerekiyor.

"Açık kaynak"

1998'de toplumun bir kısmının "özgür yazılım" terimini kullanmayı bırakıp "açık kaynaklı yazılım" demeye karar vermesiyle yeni kullanıcılara özgürlüğü öğretmek daha da zorlaştı.

Bu terimi tercih edenlerden bazıları, "bedava" ile "bedava"nın karıştırılmasından kaçınmayı amaçlıyordu; bu geçerli bir hedefti. Ancak diğerleri, özgür yazılım hareketini ve GNU Projesi'ni motive eden ilke ruhunu bir kenara bırakmayı ve bunun yerine, çoğu kârı özgürlüğün, topluluğun ve toplumun üstünde tutan bir ideolojiye sahip olan yöneticilere ve iş kullanıcılarına hitap etmeyi amaçlıyordu. prensip Dolayısıyla “açık kaynak” retoriği, yüksek kaliteli, güçlü yazılım üretme potansiyeline odaklanır ancak özgürlük, topluluk ve ilke fikirlerinden uzak durur.

“Linux” dergileri bunun açık bir örneğidir; GNU/Linux ile çalışan özel mülk yazılımların reklamlarıyla doludurlar. Bir sonraki Motif veya Qt ortaya çıktığında, bu dergiler programcıları ondan uzak durmaları konusunda uyaracak mı, yoksa bunun için reklam mı yayınlayacaklar?

İşletmelerin desteği topluma birçok şekilde katkıda bulunabilir; diğer her şey eşit olduğunda faydalıdır. Ancak özgürlük ve ilkeler hakkında daha az konuşarak onların desteğini kazanmak felaketle sonuçlanabilir; sosyal yardım ve yurttaşlık eğitimi arasındaki önceki dengesizliği daha da kötüleştiriyor.

"Özgür yazılım" ve "açık kaynak" aşağı yukarı aynı yazılım kategorisini tanımlar, ancak yazılım ve değerler hakkında farklı şeyler söyler. GNU Projesi, yalnızca teknolojinin değil özgürlüğün de önemli olduğu fikrini ifade etmek için "özgür yazılım" terimini kullanmaya devam ediyor.

Denemek!

Yoda'nın aforizması (“'Denemek yoktur'”) kulağa hoş geliyor ama benim için işe yaramıyor. İşimin çoğunu, işi yapıp yapamayacağım konusunda kaygılıyken yaptım ve eğer yaparsam hedefe ulaşmak için yeterli olacağından emin değildim. Ama yine de denedim çünkü düşmanla şehrim arasında benden başka kimse yoktu. Kendimi şaşırtarak bazen başarılı oldum.

Bazen başarısız oldum; şehirlerimden bazıları düştü. Sonra tehdit altındaki başka bir şehir buldum ve başka bir savaşa hazırlandım. Zamanla tehditleri aramayı ve kendimi onlarla şehrimin arasına koymayı ve diğer bilgisayar korsanlarını gelip bana katılmaya çağırmayı öğrendim.

Bugünlerde çoğu zaman tek değilim. Bir grup hacker'ın hattı korumak için kazdığını görmek beni rahatlatıyor ve sevindiriyor ve bu şehrin şimdilik ayakta kalabileceğini fark ediyorum. Ancak tehlikeler her geçen gün daha da büyüyor. yıl ve şimdi Microsoft açıkça topluluğumuzu hedef aldı. Özgürlüğün geleceğini kesin olarak kabul edemeyiz. Bunu hafife almayın! Eğer özgürlüğünüzü korumak istiyorsanız, onu savunmaya hazır olmalısınız.

TH.arial ( yazı tipi ailesi: Arial, Serif;) P.topic ( yazı tipi ailesi: sans-serif;) A.plain ( metin dekorasyonu: yok;) A.topic01 ( color: #006890; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic02 ( renk: #099771; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic03 ( renk: #719709; yazı tipi ailesi: sans- serif; metin dekorasyonu: yok;) A.topic04 ( renk: #98650A; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic05 ( renk: #98340A; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic06 ( renk: #099607; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic07 ( renk: #9E1215; yazı tipi ailesi: sans-serif; metin- dekorasyon: yok;) A.topic08 ( renk: #970941; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic09 ( renk: #950995; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) A.topic010 ( renk: #390A98; yazı tipi ailesi: sans-serif; metin dekorasyonu: yok;) H1 ( yazı tipi ailesi: sans-serif;) H2 ( yazı tipi ailesi: sans-serif;) H3 ( yazı tipi ailesi: sans-serif;) H4 ( yazı tipi ailesi: sans-serif;) H5 ( yazı tipi ailesi: sans-serif;) H6 ( yazı tipi ailesi: sans-serif;)

Özgür yazılımın ideolojisi ve GNU projesi: mevcut durum ve acil görevler

S.D.Kuznetsov

Özgür Yazılım Vakfı (FSF), modern programlama dünyasında çok ilginç ve birçok açıdan olağanüstü bir olgudur. Birçok yerli programcı FSF programlarıyla uğraşmak zorunda kalmıştır (GCC programlama sistemi özellikle iyi bilinmektedir), ancak Rusça yayınların eksikliği FSF'nin ideolojisini ve hedeflerini anlamayı zorlaştırmakta ve aynı zamanda değerlendirmeyi imkansız hale getirmektedir. mevcut temel. Bu kısa makalenin amacı bu boşluğu en azından kısmen doldurmaktır. Makalenin tamamı FSF materyaline dayanmaktadır ve bu nedenle bu kuruluşun genel ilkelerine uygun olarak serbestçe yeniden basılabilir, kopyalanabilir veya başka şekilde dağıtılabilir (bu bildirime tabi olarak).

1. FSF ideolojisi ve GNU Projesinin genel hedefleri

FSF, Richard Stallman tarafından kurulan ve yönetilen bir yazılım kuruluşudur. En genel formülasyonunda FSF'nin amacı, bilgisayar programlarının kopyalanması, dağıtımı, incelenmesi ve değiştirilmesi üzerindeki kısıtlamaları ortadan kaldırmaktır. Bu genel hedefe ulaşmak için FSF, geniş bir uygulama sınıfını hedefleyen özgür yazılımın geliştirilmesini ve kullanılmasını teşvik eder.

R. Stallman, 1985 yılında yazdığı GNU Manifestosu'nda, yazılım sahipliğine karşıtlığını, FSF ve GNU Projesi'nin ortaya çıkmasına yol açan ana fikir olarak ortaya koyuyor. Programlama topluluğundaki ilişkilerin özellikleri, insanları sıklıkla doğal dostluk ve karşılıklı yardım duygusunu takip etme veya bunu engelleyen mülkiyet yasalarına boyun eğme seçeneğiyle karşı karşıya bırakır. Özgür yazılımla bu tür zahmetli seçimlere olan ihtiyaç ortadan kalkar.

Entegre bir özgür yazılım sistemi oluşturmak, programcıların (genellikle yalnızca yazılımın özel mülkiyeti olması nedeniyle gerekli olan) yinelenen çalışmalarını önler. Program kaynak kodlarının ücretsiz dağıtımı, bunların bakımını ve belirli bir kullanıcının ihtiyaçlarına göre uyarlanmasını kolaylaştırır (yalnızca kaynak kodu lisanslarına sahip olan şirketlerin hizmetlerine başvurmaya gerek yoktur). İyi bir yazılımı eğitim amaçlı kullanmak için ek ve çok önemli bir fırsat var.

R. Stallman'a göre, özgür yazılıma geçiş sırasında programcılar açlıktan ölmeyecekler (her ne kadar görünüşe göre biraz daha az kazanacaklarsa da). Yazılım kopyalamayı sınırlamak para kazanmanın tek yolu değildir. Stallman'ın ana fikri, satılması gerekenin yazılım değil, programcının işi olduğudur. Özellikle gelir kaynağı, yazılım sistemlerinin bakımı veya bunların yeni bilgisayarlarda ve/veya yeni koşullarda kullanılmak üzere yapılandırılması, öğretim vb. olabilir.

Stallman'ın "Manifesto"su çok duygusal ve bazı yerlerde fazlasıyla ütopik yazılmış. Bununla birlikte, özgür yazılım fikirlerinin tarihsel olarak Sovyet programcıları arasındaki geleneksel (çok yakın yıllar hariç) ilişkilere yakın olduğu görülmektedir. Belki de FSF hattı, yerel ve dünya programlama topluluklarının derin entegrasyonuna giden en doğal yoldur.

Daha spesifik olarak, FSF, GNU projesi çerçevesinde programlar geliştirir (GNU kısaltması yinelemeli olarak genişletilir - GNU Unix Değildir). GNU projesinin amacı, araçları uyumlu olan tam bir entegre yazılım sistemi oluşturmaktır. Unix işletim sistemi ortamının yetenekleri (kural olarak, GNU programlarının yetenekleri, Unix ortamının analoglarının daha geniş yetenekleridir).

FSF yazılımı iki anlamda "özgürdür". İlk olarak, herhangi bir program serbestçe kopyalanabilir ve herkese aktarılabilir. İkincisi, programların kaynak kodlarının varlığı, programları özgürce inceleme, geliştirme ve değiştirilmiş sürümleri dağıtma fırsatı sağlar.

Sıradan yazılım şirketlerinin hakları, telif hakkı simgesiyle korunduğu gibi, FSF yazılım sistemlerinin "özgürlüğü" de, telif hakkı ile tüm FSF metinlerinde bulunan "GNU Genel Kamu Lisansı" başlıklı belgenin bir birleşimi olan "copyleft" ile korunur. Bu belge, bu metnin mevcut sahibinin sahip olduğu hakları ve başka herhangi bir varlığı bu haklardan mahrum bırakmanın imkansızlığını belirtmektedir.

FSF'nin ana faaliyeti GNU Projesi kapsamında yeni özgür yazılım bileşenlerinin geliştirilmesidir. GNU Projesi çoğunlukla planlı bir şekilde gelişir (özellikle bu makalenin 3. Bölümüne bakın), ancak FSF aynı zamanda firmalar ve bireyler tarafından kendi inisiyatifleriyle geliştirilen ücretsiz dağıtım programlarını da kabul eder. Buna ek olarak, FSF, özgür yazılım kasetleri üretir ve satar, GNU yazılımının çeşitli bileşenleri için kılavuzlar hazırlar, yayınlar ve dağıtır ve GNU programlarının kullanıcılarına ücretli hizmetler sağlayan firma ve kişilerin bir listesi olan Hizmetler Dizini'nin bakımını yapar ve dağıtır. sistemler.

FSF'nin mali temeli, bant ve belgelerin satışının yanı sıra ticari firmalara ve bireylere sponsorluktur.

2. Mevcut GNU Yazılımı

Şu anda GNU Projesi yazılımının tüm bileşenleri hazır değil. Ancak FSF, bazıları doğrudan FSF programcıları tarafından yazılan ve bazıları diğer kuruluşlar ve kişiler tarafından ücretsiz dağıtım için FSF'ye sunulan birçok programın dağıtımını yapmaktadır. FSF'nin halihazırda dağıtımını yaptığı yazılım ürünlerini kısaca listeleyelim.

Emacs, farklı terminal türlerine ve kullanıcı ihtiyaçlarına göre özelleştirilebilen genişletilebilir bir düzenleyicidir. Düzenleyicinin genişletilebilirliği, düzenleyicide yerleşik olarak bulunan Lisp dil ​​yorumlayıcısının (Ortak Lisp lehçesi) kullanımına dayanmaktadır. Editörün kaynak kodunun yanı sıra, Emacs kullanımına yönelik kılavuzlar ve Emacs ortamında Lisp dilinde programlamaya yönelik bir referans kılavuzu da dağıtılmaktadır.

Bison, bazı uzantılarla birlikte standart Yacc ayrıştırıcı oluşturucunun yerine geçer. Kılavuz da dağıtılıyor.

Lisp dilinin basitleştirilmiş bir lehçesinin iki uygulaması - Şema: biri MIT'den (C ile yazılmıştır), ikincisi Yale Üniversitesi'nden (Şema ile yazılmıştır).

texi2roff yardımcı programı, TeX formatındaki metin dosyalarını Unix işletim sistemi için standart roff formatındaki metin dosyalarına dönüştürmek için tasarlanmıştır (FSF tarafından makine ortamında dağıtılan belgeler TeX formatındadır).

Metin dosyalarını paketlemek/paketten çıkarmak için yardımcı programlar.

GNU satranç programı.

GNU CC, C dili için taşınabilir bir optimizasyon derleyicisidir. ANSI C standardını tamamen destekler. Yeni bilgisayarlar için yarı otomatik kod oluşturucuların oluşturulmasına yönelik araçlar içerir. Kılavuzla birlikte dağıtılır.

Standart Unix OS birleştiricisinden neredeyse iki kat daha hızlı olan, tek geçişli, taşınabilir bir GAS birleştirici.

Nesne dosyalarıyla çalışmaya yönelik yardımcı programların ücretsiz sürümleri: ar, ld, nm, size, gprof, strip ve ranlib. Yeni bir dinamik yükleme yardımcı programı olan ddd de dağıtılıyor.

GNU make, BSD, System V ve POSIX make yardımcı programlarının hemen hemen tüm özelliklerini içerir ve ayrıca bir dizi uzantı içerir. Kılavuzla birlikte dağıtılır.

GDB hata ayıklayıcısı C, C++ ve Fortran dillerinde yazılmış programlarda hata ayıklamak için kullanılabilir. Kılavuzla birlikte dağıtılır.

BASH (Bourne Again SHell) - GNU Kabuğu, standart Unix sh komutuyla uyumludur ve diğer Kabuk türlerinden alınan bir dizi uzantıyı içerir.

GAWK, Unix işletim sistemi için standart AWK yardımcı programının GNU sürümüdür.

flex, standart sözcük analizörü oluşturucu lex'in GNU'nun yerine geçmiş halidir. flex, lex'ten daha verimli tarayıcılara sahip olmanızı sağlar.

GNU tar, standart arşiv yardımcı programı tar'ın genişletilmiş bir sürümüdür.

AT&T kaynak kodunu içermeyen ve Berkeley Üniversitesi tarafından ücretsiz dağıtıma sunulan bazı BSD 4.3-tahoe dosyaları. Bu dosyalar özellikle bazı yardımcı programların, oyunların, kütüphane rutinlerinin vb. tam kaynak metinlerini içerir.

Büyük yazılım projelerinde program versiyonları ile çalışmayı destekleyen sistemler, RCS (Revizyon Kontrol Sistemi) ve CVS (Eşzamanlı Versiyon Sistemi).

Grep ve diff yardımcı programlarının ücretsiz sürümleri standart olanlardan daha hızlıdır.

Ghostscript neredeyse tamamen Postscript uyumlu bir grafik dilidir.

Matematiksel ifadelerin ve veri gnuplotunun çizilmesine yönelik etkileşimli program.

GCC derleyicisini bir C++ dil derleyicisine dönüştürmek için gelişmiş sınıf kitaplıkları da dahil olmak üzere bir dizi araç.

Çok sayıda X11 programı, X-Windows'un MIT uygulaması (sürüm 11, sürüm 4). Makalenin kapsamı bu konu üzerinde daha detaylı durmamıza izin vermiyor.

Temel olarak, FSF tarafından dağıtılan tüm programlar Unix ortamında çalışacak şekilde tasarlanmıştır ve bu sistemin çeşitli varyantlarıyla zaten kullanılmaktadır, ancak bazı programların VMS ve hatta MS-DOS ile çalışmaya yönelik sürümleri de vardır.

3. GNU projesi için acil görevler

GNU Projesi kapsamında yapılması planlanan çalışmaların listesi oldukça kapsamlıdır. Ana yönlere yalnızca kısa bir genel bakış verelim.

3.1. Dokümantasyon

Halihazırda tamamlanmış veya tamamlanmaya yakın programlar için bir takım kılavuzların hazırlanması gerekmektedir: C dili için bir referans kılavuzu, hedef makinelerin belirlenmesi için bir kılavuzu içeren GCC'nin bir açıklaması, uygulama sistemlerini programlamak için bir kılavuz. X-Windows ortamı vb.

3.2. Ücretsiz Unix çekirdeğinin geliştirilmesiyle ilgili projeler

FSF, ücretsiz Mach mikro çekirdeğini temel alan bir Unix çekirdeği oluşturmaya çalışıyor. Acil görevler arasında TCP/IP ağ protokollerinin uygulanması ve yeni bir dosya sistemi yer almaktadır (ücretsiz olarak ilan edilmesi beklenen bazı hazır programların kullanılması umudu vardır). Uzak bir işletim sistemi çekirdeği hata ayıklayıcısının geliştirilmesi de dahil olmak üzere başka görevler de vardır.

3.3. Özgür bir Unix ortamının geliştirilmesi

Bazı yardımcı programların uygulanması gerekir (sdiff, mailx, join vb.). Çok sayıda kütüphanenin geliştirilmesi gerekmektedir. Görevler arasında kullanıcı dostu terminal arayüzü araçlarının geliştirilmesi de yer almaktadır.

3.4. Mevcut GNU yazılımına yönelik uzantılar

Temel olarak Emacs, GCC ve GDB'nin iyileştirmelere ihtiyacı var.

Emacs ile ilgili olarak iki alanda iyileştirme yapılması gerekmektedir: Emacs araçlarının bu düzenleyicinin şu şekilde kullanılmasını mümkün kılacak şekilde genişletilmesi: yayınlama sistemi ve Emacs'ın tamamen uluslararası hale getirilmesi, herhangi bir ulusal alfabenin kullanılmasına izin verilmesi.

GCC'nin, biriken yorum yığınını ele alacak ve mevcut önerileri uygulayacak şekilde güncellenmesi gerekmektedir (yorum ve önerilerin bir listesi GCC ile birlikte dağıtılmaktadır).

GDB'nin hata ayıklayıcıya bir C dili yorumlayıcısı ekleme açısından iyileştirmelere ihtiyacı var; C dışındaki dillerde yazılan programların hatalarını ayıklarken GDB'yi kullanabilmek için de bazı iyileştirmelere ihtiyaç vardır.

3.5. Yeni derleyiciler

GCC kod oluşturucuya erişimi olan bir dizi programlama dili (Algol, Algol-68, PL/1, Ada, vb.) için derleyicilerin uygulanması gerekir. (Fortran, Pascal ve Modula-2 dilleri için bu tür çalışmalar halihazırda devam etmektedir.)

3.5. Diğer birçok proje

GNU Projesi'nin güncel gelecek görevler listesinde başka birçok çeşitli çalışma bulunmaktadır. Page Maker, Ventura Pablisher, dbase2 veya dbase3 vb. sistemlerin ücretsiz analoglarına sahip olma arzusundan bahsedelim. X-Windows için bir dizi program gerektirir. Vesaire. ve benzeri.

4. Daha fazla bilgi ve/veya GNU programı nasıl edinilir

Modern ev koşullarında, FSF ile iletişim kurmak için e-postayı kullanmak en iyisidir. FSF'nin GNU Projesi'ne katılmakla ilgilenen kişiler için irtibat görevlisi Walter Poxon'dur. E-posta adresi: FSF'den yazılımlı kaset alma kuralları hakkında da kendisinden bilgi alabilirsiniz. GNU'nun sağlanması. Ne yazık ki, bu doğal yol mevcut Sovyet gerçekliğine pek uygun değil (kasetler için ödeme sembolik olmasına rağmen hala döviz cinsindendir).

Ülkemizde aslında bu kasetlerin tamamı var. FSF oyununun kurallarına uygun olarak, herhangi bir sahip, bunların daha fazla dağıtımını teşvik etmekle yükümlüdür. Ne yazık ki, bu oldukça fazla teknik çalışmadır. Sovyet UNIX İşletim Sistemi Kullanıcıları Birliği (SUUG), teknik koşullar izin verir vermez, üyeleri için ücretsiz yazılımın ücretsiz dağıtımını ve bantların herkes için ücretli kopyalanmasını üstlenmeyi planlıyor (bu, önümüzdeki birkaç ayın meselesidir). Tüm SUUG üyelerine ilgili bilgiler gönderilecektir; mevcut sertifikalar e-posta yoluyla veya normal SUUG adresinden edinilebilir: 125502, Moskova, st. Lavochkina, 19.

Edebiyat.

  1. Richard M. Stallman. GNU Manifestosu.
  2. GNU Genel Kamu Lisansı // Özgür Yazılım Vakfı, 1989.
  3. GNU Bülteni // Özgür Yazılım Vakfı, 1991.
  4. GNU Görev Listesi (periyodik olarak güncellenen dosya, e-postayla ulaşılabilir; 24 Temmuz 1991 sürümünü temel aldık)
Ücretler Gelir

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Bağışlar

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Gönüllü sayısı

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Çalışan Sayısı

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Üye sayısı

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Bağlı ortaklıklar

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Sahip olmak

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Slogan

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

İnternet sitesi

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

Tasfiye tarihi

170. satırdaki Modül:Wikidata'da Lua hatası: "wikibase" alanını (sıfır değer) indekslemeye çalışın.

GNU Projesi'nin devam eden çalışmaları arasında yazılım geliştirme, farkındalık yaratma, siyasi kampanyalar yürütme ve yeni materyaller dağıtma yer alıyor.

Projenin kökenleri

Proje ilk başladığında...

  • Bir asteroit, GNU projesinden (9965) GNU adını almıştır.

Ayrıca bakınız

"GNU Projesi" makalesi hakkında bir inceleme yazın

Notlar

Bağlantılar

  • (İngilizce) - GNU projesinin resmi web sitesi

GNU Projesini açıklayan alıntı

– Yalan, cinayet, ihanet… Böyle sözleriniz yok mu?..
– Uzun zaman önceydi... artık kimse hatırlamıyor. Benim. Ama ne olduğunu biliyoruz. Bu, asla unutmamamız için “kadim hafızamıza” yerleştirilmiştir. Kötülüğün yaşadığı yerden mi geldin?
Üzgün ​​bir şekilde başımı salladım. Doğduğum Dünya için ve üzerindeki yaşamın beni bu tür sorular sormaya zorlayacak kadar çılgınca kusurlu olması gerçeği için çok üzüldüm... Ama aynı zamanda, Kötülüğün Evimizi sonsuza dek terk etmesini gerçekten istedim çünkü bu evi tüm kalbimle sevdiğimi ve sık sık bir gün böyle harika bir günün geleceğini hayal ettiğimi:
İnsan, insanların kendisine ancak iyilik getirebileceğini bilerek sevinçle gülümser...
Yalnız bir kızın, akşamın en karanlık sokaklarında bile birinin onu kıracağından korkmadan yürümekten korkmadığı zamanlar...
En iyi arkadaşınızın size ihanet edeceğinden korkmadan kalbinizi sevinçle açabildiğinizde...
Çok pahalı bir şeyi, arkanızı dönerseniz hemen çalınacağından korkmadan sokakta bırakabildiğiniz zaman...
Ve ben içtenlikle, tüm kalbimle, bir yerlerde gerçekten harika bir dünyanın olduğuna, orada kötülüğün ve korkunun olmadığı, ama basit bir yaşam ve güzellik sevincinin var olduğuna inandım... Bu yüzden, naif hayalimin peşinden giderek, En azından bu aynı, bu kadar inatçı ve bu kadar yok edilemez dünyevi Kötülüğümüzün nasıl yok edilebileceğine dair bir şeyler öğrenmek için en ufak bir fırsatı değerlendirdim... Ve ayrıca - böylece bir yerlerde birine olduğumu söylemekten asla utanmayacağım. bir adam. ..
Elbette bunlar naif çocukluk hayalleriydi... Ama o zamanlar ben henüz bir çocuktum.
– Benim adım Atis, Man-Svetlana. Ben en başından beri burada yaşadım, Kötülük gördüm... Pek çok kötülük...
- Ondan nasıl kurtuldun bilge Atis?! Birisi sana yardım etti mi?.. – diye sordum umutla. – Bize yardım edebilir misiniz?.. En azından biraz tavsiye verir misiniz?
- Sebebini bulduk... Ve onu öldürdük. Ama senin kötülüğün bizim kontrolümüzün ötesinde. Farklı... Tıpkı başkaları ve sen gibi. Ve başkalarının iyiliği her zaman sizin için iyi olmayabilir. Kendi sebebinizi bulmalısınız. Ve onu yok et,” elini yavaşça başımın üzerine koydu ve içime muhteşem bir huzur aktı... “Elveda Man-Svetlana... Sorunuzun cevabını bulacaksınız.” Dinlenebilir misin...
Derin düşüncelere daldım ve etrafımdaki gerçekliğin uzun zaman önce değiştiğine ve tuhaf, şeffaf bir şehir yerine artık alışılmadık, düz bir yüzeyde yoğun mor "su" içinde "yüzdüğümüze" dikkat etmedim. ve kulpları, kürekleri olmayan şeffaf bir cihaz - sanki büyük, ince, hareketli şeffaf bir camın üzerinde duruyormuşuz gibi hiçbir şey yok. Ancak hiçbir hareket ya da sallanma hissedilmedi. Yüzeyde şaşırtıcı derecede yumuşak ve sakin bir şekilde kayarak hareket ettiğini unutturdu...
-Bu nedir?..Nereye gidiyoruz? - Şaşırarak sordum.
Veya sakin bir tavırla “Küçük arkadaşını almaya” diye yanıtladı.
- Ama nasıl?!. Bunu yapamaz, değil mi?
- Ulaşıma-etkileşime açık olacak. Cevap "Seninle aynı kristale sahip" oldu. "Onunla 'köprüde' buluşacağız ve daha fazla hiçbir şey açıklamadan, çok geçmeden garip 'teknemizi' durdurdu.
Şimdi zaten gece kadar siyah, etraftaki ışık ve ışıltılı her şeyden keskin bir şekilde farklı olan ve yapay olarak yaratılmış ve yabancı görünen parlak "cilalı" bir duvarın dibindeydik. Aniden duvar, sanki o yerde yoğun bir sis varmış gibi "ayrıldı" ve altın bir "koza" içinde ortaya çıktı... Stella. Taze ve sağlıklı, sanki keyifli bir yürüyüşe çıkmış gibi... Ve tabii ki olanlardan çılgınca mutlu... Beni görünce tatlı küçük yüzü mutlulukla parladı ve alışkanlıktan dolayı hemen gevezelik etmeye başladı. :
– Sen de burada mısın?!... Ah, ne güzel!!! Ve o kadar endişelendim ki!.. O kadar endişelendim ki!.. Kesinlikle sana bir şey oldu sandım. Buraya nasıl geldin?.. – küçük kız bana şaşkın şaşkın baktı.