GNU Projesi

GNU Tasarısı, toplu işbirliğini temel alan bir özgür yazılım tasarısıdır. Richard Stallman tarafından Massachusetts Teknoloji Enstitüsü'nde 27 Eylül 1983 tarihinde kamuoyuna duyurulmuştur. Tasarının hedefi işbirliği yoluyla özgür yazılımlar geliştirip dağıtarak bilgisayar kullanıcılarının bilgisayarlarını ve benzeri araçlarını kendi istekleri doğrultusunda özgürce kullanmalarını sağlamaktır. Bu tasarının temelinde kullanıcıların yazılımı çalıştırma, paylaşma (kopyalama ve dağıtma), inceleme ve değiştirme konularında özgür olmaları yatar. GNU yazılımları bu özgürlükleri dağıtıldıkları lisans ile yasal olarak güvence altına alır, dolayısıyla GNU yazılımları özgür yazılımlardır.

Bir bilgisayarda çalışan tüm yazılımların, kullanıcılarına bu özgürlüklerin tamamını (kullan, paylaş, incele, değiştir) sağlayabilmesi için en temel ve en önemli parça olan işletim sisteminin dahi (beraberindeki bütün yardımcı yazılımlarla birlikte) sıfırdan yazılması gerekmektedir. Richard Stallman ilk duyurusunda tasarının öncelikli hedefini şöyle ifade eder: "Bilgisayarları onurlu bir biçimde kullanabilmek amacıyla, yeterli bir bütünü oluşturacak özgür yazılımları bir araya getirmeye karar verdim. Bunu özgür olmayan yazılımlar olmadan başaracaktım." Stallman bu işletim sistemine GNU (Türkçe: GNU, Unix Değildir, İngilizce: "GNU's Not Unix" ifadesinin özyinelemeli kısaltması) adını koyar. GNU, tasarımının temelini UNIX işletim sisteminden alsa da kapalı kaynak kodlu, özel mülk bir yazılım olan UNIX'in aksine kullanıcılarının özgürlüğüne saygı duyan—yani kullanıcılarının özgürce kullanabileceği, paylaşabileceği, inceleyebileceği ve değiştirebileceği—bir yazılımlar bütünü olmayı hedefler. Geliştirilmesine 1984 Ocak ayında başlanır. Tümüyle özgür yazılımlardan oluşan bir işletim sistemi hedefi ise 1992 yılında üçüncü taraf yazılımı Linux çekirdeği'nin GNU yazılım ailesiyle birlikte kullanılmak üzere özgür yazılım olarak GNU Genel Kamu Lisansı'nın (GPL, İngilizce: GNU General Public License) ikinci sürümüyle yayımlanmasıyla tamamlanır.

GNU Tasarısı ilk başladığında elde "editör komutlarını yazmak için Lisp'li bir Emacs metin düzenleyicisi, kaynak-seviyesi hata ayıklayıcısı, yacc-uyumlu derleyici üreteci, bağlayıcı ve 35 civarında özellik mevcuttu." GNU sistemi, kendine ait bir C derleyicisinden ve benzer araçlardan yoksundu, dolayısıyla bu yazılımların da geliştirilmesi gerekiyordu. 1987 Haziran ayına gelindiğinde tasarı kapsamında bir çevirici, neredeyse tamamlanmış taşınabilir, eniyileştirici bir C derleyicisi (GCC), bir metin düzenleyicisi (GNU Emacs) ve çeşitli UNIX araçları (ls, grep, awk, make, ld vb.) geliştirilmişti. İşletim sistemi için bir çekirdek yazımına başlanmıştı ancak bu çekirdek daha birçok güncellemeye gereksinim duyuyordu.

Çekirdek ve derleyicinin geliştirilmesi tamamlandığında GNU sistemi artık yazılım geliştirme için kullanılabilecekti. Ana hedef UNIX sistemindekine benzer çeşitli birçok uygulama geliştirmekti. GNU, UNIX yazılımlarını çalıştırabiliyordu ancak UNIX ile birebir aynı değildi: daha uzun dosya isimleri, dosya sürüm numaraları ve çökmeye karşı dayanıklı dosya sistemi gibi yeni özellikleri vardı. Tasarıya desteği ve katılımı arttırmak için GNU Bildirgesi yazılmıştı. Yazılımcılar, tasarının ilgilerini çeken yönlerine katkı sağlamaları için yüreklendiriliyordu. Tasarı, bağış olarak yalnızca para ve bilgisayar parçaları değil insanların boş zamanlarını ayırarak geliştirdikleri yazılımları da kabul ediyor ve bu bağışları teşvik ediyordu.

GNU Tasarısı'nın ve özgür yazılımın tarihi ve geliştirilmesi hakkında detaylı bilgi GNU Emacs metin düzenleyicisinin yardım sistemi içinde verilmiştir. (C-h g kısayolu describe-gnu-project, Türkçe: GNU Tasarısı'nı anlat komutunu çalıştırır.) Bu tarihçe tasarının sanalyöresinde de bulunmaktadır.

GNU Bildirgesi, Richard Stallman tarafından GNU Tasarısı'nın başlangıcında destek ve katılım sağlamak amacıyla yazılmıştır. GNU Bildirgesi'nde Stallman, yazılım geliştirme için elzem olan dört özgürlüğü listeler: yazılımı herhangi bir amaç için çalıştırma özgürlüğü, yazılımın işleyişini inceleme ve değiştirme özgürlüğü, yazılımın kopyalarını dağıtma özgürlüğü ve kamu kullanımı için yazılımların değiştirilerek geliştirilmiş sürümlerini dağıtma özgürlüğü.. Bu özgürlüklerin sağlanması ancak kullanıcıların yazılımın kaynak koduna tam erişim sağlamasıyla mümkündür. Kaynak kodunun kamu kullanımına açık ve özgür kalabilmesi için Stallman GNU Genel Kamu Lisansı'nı yayımlamıştır. GNU Genel Kamu Lisansı, yazılımın kendisinin ve gelecekte bu yazılımın kaynak kodundan türetilecek yeni yazılımların kamu kullanımı için özgür kalmalarını yasal olarak güvence altına alır.

GNU Tasarısı'nın ürünlerinin çoğu doğası gereği teknik yapıda olsa da tasarı toplumsal, aktöresel ve yönetkisel bir girişim olarak başlamıştır. Yazılım ve lisansların yanı sıra GNU Tasarısı, çoğu Richard Stallman tarafından kaleme alınan makaleler de yayımlamıştır.

Yazılımcı bir arkadaşından yazılımın bir kopyasını alabilir, yazılım İnternet üzerinden yazılımın sanalyöresinden veya başka bir sanalyöreden indirebilir, yazılımcının çalıştığı şirket bu yazılımı onun için satın alabilir...

Telif feragatı (İng. copyleft) "bir yazılımın özgür yazılım haline getirilmesi, yazılımın tüm değiştirilmiş ve genişletilmiş sürümlerinin de özgür yazılım haline getirilmesi için genel bir yöntemdir". Telif feragatı, her kullanıcıya telif güvenceli bir lisansla (örn. GPL ile) dağıtılan yazılımları ve bu yazılımların kaynak kodlarını güvenceyi sağlayan dağıtım terimlerini değiştirmemesi koşuluyla kullanma, düzenlenme ve yeniden dağıtma için gereken yasal hakları tanır. Böylelikle yazılımı yasal olarak elde eden her kullanıcı, diğer bütün kullanıcılarla aynı hak ve özgürlüklere sahip olur.

GNU Tasarısı'nın ve Özgür Yazılım Vakfı'nın telif feragatı kavramını güçlü ve zayıf olmak üzere ikiye ayırdığı durumlar vardır. Zayıf telif feragatı, tipik olarak yazılımın dağıtıcılar tarafından "özgür olmayan yazılımlara" bağlanmasına izin verirken güçlü telif fragatı bu uygulamayı kesinlikle yasaklar. GNU Tasarısı'nin ürünlerinin çoğu güçlü bir telif feragatıyla yayımlanmıştır ancak hoşgörülü özgür yazılım lisanslarıyla, zayıf bir telif feragatıyla yayımlanan özgür yazılımlar da vardır.

GNU Tasarısı'nin ilk amacı bütünüyle özgür yazılım olan bir işletim sistemi geliştirmekti. 1992 yılına gelindiğinde GNU Tasarısı, GNU Hurd adını verdiği çekirdek dışındaki bütün temel işletim sistemi parçalarının geliştirmesini tamamlamıştı. Bu tasarıdan bağımsız olarak 1991 yılında Linus Torvalds tarafından geliştirilmeye başlanan Linux çekirdeği yazılımının 0.12 sürümünün 1992 yılında GPL lisansıyla yayımlanmasıyla birlikte ilk defa bütünüyle özgür yazılımlardan oluşan bir işletim sistemini kullanmak mümkün oldu. Linux çekirdeği, GNU Tasarısı'nın bir parçası olmasa da GCC ve diğer GNU yazılım geliştirme araçlarıyla geliştirilmişti ve GNU Genel Kamu Lisansı'yla bir özgür yazılım olarak yayımlanmıştı.

GNU yazılım paketleri (GNU Hurd hariç) Çok sayıda işletim sistemi araç ve gereci (kabuk, temel araçlar, derleyiciler, kütüphaneler vb.) için GNU paketleri vardır. Bu paketler arasında içinde POSIX.1 Taşınabilir İşletim Sistemi Arabirimi'nde tanımlanan tüm işlevleri barındıran bir kütüphane gerçekleştirimi de vardır. GCC derleyicisi geniş çeşitlilikteki bilgisayar mimarileri için makine kodu üretebilir.

Linux çekirdeği Çekirdek, görev zamanlaması, çokgörevlilik, aygıt sürücüleri, bellek yönetimi vb. hizmetleri ve sistemin geniş çeşitlilikteki bilgisayar mimarilerinde çalışmasını sağlar. Linus Torvalds, Linux çekirdeğini 1992 yılında GNU Genel Kamu Lisansı ile yayımlamıştır ancak bu yazılım GNU Tasarısı'nın bir parçası değildir.

GNU Tasarısı'nın parçası olmayan diğer yazılımlar GNU Tasarısı'nın bir parçası olmayan fakat GNU Genel Kamu Lisansı ile veya Özgür Yazılım Vakfı tarafından onanmış bir Özgür Yazılım Lisansı ile yayımlanan yazılımlardır.

GNU sanalyöresinde yazılımların bir listesi oluşturulmuş ve her bir yazılım için hangi tür yazılım geliştiricilerinin ihtiyaç duyulan görevleri yapabileceği detaylandırılmıştır. Her yazılım için öngörülen beceri düzeyi farklı olsa da programlama konusunda artalan bilgisine sahip olan herkes yazılım tasarılarını desteklemesi yönünde teşvik edilmektedir.

GNU araçlarının Linux çekirdeği ve diğer programlarla birlikte paketlenmesine genellikle Linux dağıtımı adı verilir. GNU Tasarısı, GNU ve Linux çekirdeği'nin birleştirilmesini GNU/Linux olarak adlandırmakta ve herkesi bu ismi kullanmaya davet etmektedir. Bu durumun sonucunda GNU/Linux adlandırma tartışması ortaya çıkmıştır.

Günümüzde birçok dağıtım GNU paketleri, özgür olmayan kod parçaları ve özel mülk yerleşik yazılımlar (İngilizce: binary blobs) içeren bir Linux çekirdeği ve bir takım özel mülk yazılımlar (örn. ücretsiz olan ancak kaynak kodu erişilebilir olmayan ve dolayısıyla özgür yazılım olmayan yazılımlar) birleştirilerek yayımlanmaktadır. Bu durum lisanslarla tanımlanan şartlara uygun olsa da GNU Tasarısı'nın öncül amacı olan özgürlük hedefiyle uyum göstermemektedir.

GNU Özgür Sistem Dağıtımı İlkeleri (GNU FSDG, İngilizce: GNU Free Software Distribution Guidelines) kurulabilir bir sistem dağıtımının (örn. bir GNU/Linux dağıtımının) özgür olabilmesi için neler gerektiğini detaylandıran bir sistem dağıtım uygunluk yönergesidir. Bu uygunluğu sağlayan dağıtımlardan çoğu GNU paketleriyle bir Linux-libre çekirdeğini, yani özel mülk yazılımlardan arındırılmış bir Linux çekirdeğini, birleştiren ve bunlar dışında yalnızca özgür yazılım kullanan, böylelikle kaynak kodu kapalı, özel mülk yazılımları kullanmaktan kaçınan, dağıtımlardır. GNU Özgür Sistem Dağıtımı İlkeleri'ne uygunluk sağlayan bazı dağıtımlar gNewSense, Parabola GNU/Linux-libre, Trisquel GNU/Linux ve Utoto'dur.

1990'lı yılların ortalarında, birçok şirketin özgür yazılım geliştirmeye yatırım yapmasıyla birlikte, Özgür Yazılım Vakfı anaparasını özgür yazılım gelişiminin yasal ve yönetkisel desteğine yönlendirmeye başlamıştır. Bu noktadan sonra yazılım geliştiriminde mevcut yazılımların bakımına odaklanılmıştır. Yeni yazılım tasarılarına yalnızca özgür yazılım topluluğuna yönelen şiddetli bir tehdit olduğu zamanlarda başlanmıştır. GNU Tasarısı'nın önde gelen yazılımlarından biri olan GNU Derleyici Koleksiyonu birçok UNIX benzeri sistemde öntanımlı derleyici sistemi olarak kullanılmaktadır.

GNOME masaüstü ortamı, GNU Tasarısı tarafından kullanımı günden güne artan bir masaüstü ortamı olan KDE tasarısına bir tepki olarak başlatılmıştır. Sebebi KDE'nin o dönem özel mülk bir yazılım olan Qt uygulama çatısının kurulumunu gerektirmesidir. İnsanların KDE tasarısı tarafından yayımlanan yazılımları kullanmak zorunda kalmamaları için GNU Tasarısı iki yazılım tasarısı başlatmıştır. Bunlardan biri Harmony Toolkit adlı Qt yazılımının yerini alma amacını taşıyan ve özgür yazılım olan bir araç takımıdır. İkinci yazılım tasarısı olan GNOME da herhangi bir özel mülk yazılıma bağımlı olmadan KDE masaüstü ortamının yerini almayı amaçlamaktadır. Harmony Toolkit yazılımı pek bir gelişme gösteremese de GNOME masaüstü ortamının gelişimi ivmelenerek devam etmiştir. Bu tepkinin sonucunda KDE'nin bağımlı olduğu Qt özel mülk yazılımı, özgür yazılım olarak yayımlanmıştır.

GNUe (İngilizce: GNU Enterprise, Türkçe: Kurumsal GNU) 1996 yılında başlatılan kapsamlı bir yazılım tasarısıdır ve GNU Tasarısı'nın bir alt tasarısı olarak nitelendirilebilir. GNUe'nin hedefi özgür "kurumsal düzeyde veri bilinçli uygulamalar" (kurumsal kaynak planlama vb.) geliştirmektir. GNUe, GNOME'un masaüstü uygulamalarını bir noktada toplayışına benzer şekilde GNU sisteminin kurumsal uygulamalarını bir noktada toplamak için tasarlanmıştır.

GNU Tasarısı, 2001 yılında "özgürce elde edilebilen, yeniden dağıtılabilen ve değiştirilebilen yazılımlarının çeşitliliği, kapsamlılığı ve niteliğinin araştırmalara ve tecimsel gelişime yaptığı katkılarından" ötürü USENIX Yaşam Boyu Başarı Ödülü'ne layık görülmüştür.