GNU nedir?Linux ile GNU arasındaki ilişki

GNU nedir? Linux ile GNU arasındaki ilişki  -  GNU yazı dizisi I

GNU yazı dizimizin ilk konusuna "GNU nedir? ve Linux ile GNU arasındaki ilişki"den bahsedecez.Bu yazıdaki amaç GNU hakkında genel bir tanım ve kanı vermektir.İlk olarak GNU nedir sorusunun cevabı ile başlayalım:

"GNU not Unix (GNU Unix değildir) " GNU Projesi 1984 yılında tam anlamıyla UNIX benzeri özgür bir işletim sistemini, GNU sistemini, geliştirmek için başlatıldı.Yani Unix benzeri bir işletim sistemi çekirdeği oluştururken tamamen özgür bir işletim sistemi olmasını,içindeki sistem araçları, açıcıları, kütüphaneleri ve son kullanıcı programları dahil herşeyi ile özgür yazılımdan oluşmasını amaçlayan bir işletim sistemi projesidir.

GNU işletim sistemi planı 1983 yılında Richard Stallman tarafından oluşturulup duyurulmuş,1984 yılında işleyişe geçmesine rağmen halen çalışmalara devam edilmektedir.GNU projesinin başlamasından o kadar yıl geçmesine rağmen halen kararlı bir çekirdek sunulmamış,ve projenin resmi çekirdeğinin adı "GNU/HURD"dür."HURD"ün gecikmesindeki en büyük sebeb ise Linux çekirdeğinin giderek popülerleşmesi ,gelişen "GNU/HURD"ün yavaşlaşmasına sebeb olmuştur.

GNU hakkında daha fazla bilgi için buradan (Türkçe)

GNU/HURD hakkında daha fazla bilgi için buradan (İngilizce)

Debian GNU/HURD sayfası içinde buradan (İngilizce)

Linux ile GNU arasındaki ilişki

Linux ile GNU arasındaki ilişkiyi anlamak ve tanımlamak için size Richard Stallman ile başbaşa bırakıyorum.

Neden sistemi Linux olarak değil de GNU/Linux olarak adlandırıyorsunuz?
Çekirdek olarak Linux'u esas alan bir çok işletim sistemi dağıtımı, temel olarak GNU işletim sisteminin değiştirilmiş sürümleridir. Biz GNU'yu geliştirmeye, Linus Torvalds'ın çekirdeği yazmaya başlamasından yıllar önce, 1984 yılında başladık. Hedefimiz bütünüyle özgür bir işletim sistemi geliştirmekti. Tabii ki, bütün parçaları kendimiz geliştirmedik, ama geliştirilmesine öncülük ettik. Ana bileşenlerin çoğunu geliştirmek suretiyle, bütün sisteme tek taraflı en büyük katkıyı biz sağladık. Ayrıca temel bakış açısı da bize aitti.Adil olmak açısından, en azından bizden de eşit derecede bahsedilmeli.
Peki ad neden önemli?
Linux'un (yani çekirdeğin) geliştiricileri, özgür yazılım topluluğuna katkıda bulunsa da, çoğu özgürlüğü umursamıyor bile. Bütün sistemin Linux olduğunu düşünen insanlar yanılgıya düşüp bu geliştiricilere gerçekte topluluğumuzun tarihinde oynamadıkları bir rol atfetmeye meylediyorlar. Sonuçta da bu geliştiricilerin görüşlerine haddinden fazla itibar ediyorlar.Sistemi GNU/Linux olarak adlandırmak, topluluğumuzu inşa etmede, sahip olduğumuz idealizmin oynadığı rolün hakkını verir ve bu ideallerin pratik öneminin insanlar tarafından kavranmasına yardımcı olur.
Nasıl oldu da çoğu kimse sistemi “Linux” olarak adlandırmayı yeğledi?
Sistemin “Linux” olarak adlandırılması, kargaşanın düzeltici bilgiye kıyasla daha hızlı yayılmasına bir örnektir.Linux sözünü GNU sistemini de içerecek şekilde kullanan insanlar yaptıklarının neye malolduğunun farkında değillerdi. Dikkatlerini, sistemin Linux tarafına yoğunlaştırdılar ve bu bileşimin büyük kısmının aslında GNU olduğunu farketmediler. Verdikleri isim ellerindeki sistemi tarif etmeye uygun olmadığı halde, sistemi “Linux” olarak adlandırmaya başladılar. Sorunun mahiyetini kavramamız ve insanlardan bu alışkanlıklarını değiştirmelerini istemeye başlamamız birkaç yılımızı aldı. O zamana kadar da bu kargaşa iyiden iyiye yayılmıştı. Sistemi “Linux” olarak adlandıran çoğu kimse, bunun neden doğru birşey olmadığını hiç duymamıştır. Onlar başkalarının bu ismi kullandığını görmüşler, bunun da doğru olduğunu varsaymışlar. “Linux” adı, aynı zamanda sistemin kökenine ilişkin de yanlış bir intiba yayıyor, çünkü insanlar sistemin geçmişinin bu ada uygun olduğunu zannediyor. Örneğin, bu insanlar sistemin gelişiminin 1991'de Linus Torvalds tarafından başlatıldığına inanıyorlar. Bu yanlış intiba, sistemin “Linux” olarak adlandırılması gerektiği düşüncesini de pekiştiriyor. Bu dosyadaki soruların çoğu, insanların alışkın oldukları adı kullanmalarını haklı çıkarma girişimlerine işaret eder.
“Linux” yerine her zaman “GNU/Linux”u mu kullanmalıyız?
Her zaman değil, yalnızca bütün sistemden söz ederken. Eğer özellikle çekirdekten söz ediyorsanız, geliştiricisinin seçtiği “Linux” adını kullanabilirsiniz.İnsanlar bütün sistemi “Linux” olarak adlandırdığında, sonuç olarak bütün bir sisteme çekirdek ile aynı adı vermiş oluyorlar. Bu, birçok karmaşıklığa neden olmaktadır, çünkü böylesi bir kullanımda, biri bir şey söylediğinde, çekirdekten mi yoksa tüm sistemden mi bahsedildiğini yalnızca uzmanlar anlayabilir. Tüm sistemi “GNU/Linux”, çekirdeği de “Linux” olarak adlandırarak, anlam karmaşasını önlemiş olursunuz.
Eğer GNU diye bir şey olmasaydı Linux gene aynı başarıyı yakalayabilir miydi?
Bahsettiğiniz alternatif dünyada, GNU/Linux tarzı bir şey var olmayacağı gibi, herhalde özgür bir işletim sistemi de olmazdı. 1980'lerde GNU Projesi ve (sonrasında) Berkeley CSRG haricinde hiç kimse özgür bir işletim sistemi geliştirmeye kalkışmadı. (ki Berkeley CSRG'yi kodlarını özgürleştirmeye davet eden de özel olarak GNU Projesi olmuştur).Linus Torvalds, 1990 yılında Finlandiya'da GNU hakkındaki bir konuşmadan kısmen etkilenmişti. Linus Torvalds bu etki olmadan da belki Unix benzeri bir çekirdek yazabilirdi, ama muhtemelen bu özgür bir yazılım olmazdı. Linux, 1992 yılında Linus onu GNU GPL altında yeniden yayımlayınca özgür hale geldi. (0.12 versiyonunun sürüm notlarına bakınız.) Torvalds, Linux'u başka bir özgür yazılım lisansı altında yayımlamış olsaydı bile, yalnız başına özgür bir çekirdek, dünya için çok da fazla bir anlam ifade etmeyecekti. Linux'un anlamlılığı, tamamen özgür bir işletim sistemi olan GNU/Linux gibi daha geniş bir çatıyla bütünleşmesinden ileri gelmektedir.
Topluluğu böyle bir istekle bölmeseniz topluluk için daha iyi olmaz mıydı?
İnsanlardan “GNU/Linux” demelerini istemekle onları bölmüş olmuyoruz. Biz insanlardan, GNU projesinin, GNU işletim sistemindeki emeğini takdir etmesini istiyoruz. Bu herhangi bir kimseyi eleştirmek veya dışlamak demek değildir.Fakat, bizim böyle dememizden hoşlanmayan insanlar var. Böyle dediğimizde bazen bu insanlardan aldığımız karşılık itilip kakılmak oluyor. Bazı hallerde o kadar kabalaşıyorlar ki, acaba bizi kasten sindirip susturmaya mı çalışıyorlar diye merak ediyor insan. Bu tavır bizi susturamaz, ama topluluğu bölebilir. Dolayısıyla umarız onları tavırlarından vazgeçmeye ikna edebilirsiniz. Fakat bu, topluluğumuzdaki bölünme açısından ikincil bir nedendir. Topluluktaki en büyük bölünme; özgür yazılımı, toplumsal ve etik bir konu olarak değerlendirip sahipli yazılımları toplumsal bir sorun olarak görenler ile (özgür yazılım hareketinin destekçileri), yalnızca pratik yararlardan söz edip özgür yazılımı yalnızca verimli bir geliştirme modeli olarak sunanlar (açık kaynak hareketi) arasındadır. Bu düşünce ayrılığı sırf bir ad sorunu değil, temel değerlerin birbirinden farklı olması sorunudur. Bu düşünce ayrılığını görüp, bunun hakkında kafa yormak topluluk için önemlidir. “Özgür yazılım” ve “açık kaynak” bu iki bakış açısının pankartıdır. Bkz. Açık Kaynak, Özgür Yazılım Ruhunu Neden Iskalıyor?. GNU Projesi'nin topluluğumuz içindeki rolüne insanlarca gösterilen ilgi düzeyi ile değerler üzerindeki bu düşünce ayrılığı arasında kısmi bir paralellik vardır. Özgürlüğe değer veren insanlar, sistemi daha çok “GNU/Linux” olarak adlandırıyorlar ve sistemi “GNU/Linux” olarak öğrenmiş insanlar, özgürlük ve topluluk hakkındaki felsefi savlarımıza daha çok ilgi gösteriyorlar (Sistem için seçilen adın toplum açısından gerçekten de bir farklılık göstergesi olmasının nedeni de budur). Fakat, herkes sistemin gerçek kökenini ve doğru ismini bilse bile bu fikir ayrılığı var olacaktır, çünkü sorun gerçekten büyük. Bu fikir ayrılığı ancak ve ancak özgürlüğe değer veren bizler herkesi ikna edebilirsek (ki pek kolay olmayacaktır) ya da tamamen bozguna uğrarsak (böyle olmamasını ümit edelim) ortadan kalkacaktır.
GNU projesi; bir bireyin sistemlere kendi seçeceği herhangi bir ismi verebilme konusunda ifade özgürlüğünü desteklemiyor mu?
Elbette, işletim sistemini dilediğiniz şekilde adlandırmak konusunda ifade özgürlüğünüzün olduğuna inanıyoruz. Biz, insanlardan sistemi GNU/Linux olarak adlandırmalarını; GNU Projesi'ne adil davranılmasını sağlamak, GNU’nun dayandığı özgürlük değerlerini yaymak ve sistemi var edenin o özgürlük değerleri olduğundan başkalarını haberdar etmek için istiyoruz.
Herkes GNU'nun sistem gelişimindeki rolünü bildiğine göre, isimdeki “GNU/” kısmı atlansa olmaz mı?
Deneyimlerimize göre, sistemin kullanıcıları ve genel olarak bilgisayar kullanan insanlar, GNU sistemi hakkında çoğunlukla hiçbir şey bilmiyor. Sistem hakkındaki birçok makale de “GNU” adından ya da GNU'nun dayandığı ideallerden söz etmiyor. GNU'yu Hiç Duymamış GNU Kullanıcıları makalesinde bu durum ayrıntılı olarak açıklanmaktadır.Bunu söyleyen insanlar muhtemelen, bütün bilgisayar kurtlarını (geek) kendisi gibi zanneden bilgisayar kurtlarıdır. Genellikle bilgisayar kurtları GNU hakkında bir şeyler bilir, ama bunların çoğu GNU'nun ne olduğu hakkında tamamen yanlış fikirlere sahiptir. Örneğin çoğu, GNU'yu bir “araçlar” bütünü veya araç geliştirmeye yarayan bir proje zanneder. Bu soruda kullanılan ifadeler, bilindik şekilde, yaygın bir yanlış anlamaya işaret etmektedir. Bir şeyi geliştirmede “GNU'nun rolü”'nden söz ettiğinizde GNU'nun bir grup insan olduğunu varsayıyorsunuz. Ama GNU bir işletim sistemidir. Bu veya başka bir faaliyette GNU'nun değil, ama GNU Projesi'nin rolünden söz etmek mantıklı olabilir.
GNU'nun bu sistemdeki rolünü bildiğime göre, hangi ismi kullandığımın ne önemi var?
Eğer kullandığınız kelimeler bilginizi yansıtmıyorsa, başkalarına da öğretemezsiniz. GNU/Linux sistemini duymuş olan çoğu kimse, sistemin “Linux” olduğunu, bunun Linus Torvalds tarafından ortaya çıkarıldığını ve bu sistemin “açık kaynaklı” olarak tasarlandığını zannediyorlar. Eğer doğrusunu onlara siz söylemezseniz kim söyleyecek?
“GNU/Linux”u “Linux” olarak kısaltmak, “Microsoft Windows”u “Windows” olarak kısaltmak gibi değil midir?
Sık kullanılan bir adı kısaltmak, eğer kısaltma yanıltıcı değilse, kullanışlıdır.Gelişmiş ülkelerde, insanların çoğu “Windows”un Microsoft tarafından yapılmış bir sistem olduğunu biliyor, bu yüzden “Microsoft Windows”u “Windows” olarak kısaltmak, kimseyi sistemin yapısı ve kökeni hakkında yanılgıya düşürmez. “GNU/Linux”u “Linux” olarak kısaltmak ise, sistemin nereden geldiği konusunda yanlış bir fikir verir. Esasında sorunun kendisi de yanıltıcı, çünkü GNU ve Microsoft aynı şeyler değildir. Microsoft bir şirket, GNU ise bir işletim sistemidir.
GNU, Linux içinde yer alan bir dizi programlama aracı değil midir?
Linux'un başlıbaşına bir işletim sistemi olduğunu düşünen insanlar, GNU hakkında bir şeyler duyduklarında, genellikle GNU'nun ne olduğu ile ilgili yanlış fikirlere kapılıyorlar. Bazı programlama araçlarımız tek başlarına popüler olduklarından, insanlar GNU'nun bir programlar bütünü olduğunu (ki buna çoğunlukla “programlama araçları” diyorlar) zannedebiliyor. “GNU”nun bir işletim sistemi adı olduğu düşüncesini, “Linux” olarak etiketlendirilmiş bir işletim sistemi içinde kavramsal bir yapıya oturtmak zordur.GNU Projesi, ismini GNU işletim sisteminden almıştır. Yani GNU Projesi, GNU sistemini geliştirmek için kullanılan projedir. (Bakınız 1983 tarihli ilk duyuru.) GCC, GNU Emacs, GAS, GLIBC, BASH, vs. programları geliştirdik, çünkü GNU işletim sistemi için bunlara gereksinimimiz vardı. GNU Derleyici Seti GCC; GNU işletim sistemi için yazdığımız bir derleyicidir. Bizler, yani GNU Projesi'nde çalışan pek çok insan, GNU sistemi için Ghostscript, GNUCash, GNU Chess ve GNOME'yi de geliştirdik.
Bir işletim sistemi ile bir çekirdek arasındaki fark nedir?
Bizim kavramı kullanış şeklimize göre bir işletim sistemi, geniş çaplı pek çok işin yapılabilmesi amacıyla bilgisayarı kullanabilmeyi sağlayan programlar bütünüdür. Genel amaçlı bir işletim sisteminin eksiksiz olabilmesi için, bu sistemin birçok kullanıcının yapmayı isteyebileceği bütün işleri kotarabilmesi gerekir.Çekirdek, işletim sistemi içerisindeki programlardan biridir (makinenin kaynaklarını, çalışan diğer programlara tahsis eden bir program). Çekirdek, aynı zamanda öteki programları başlatma ve durdurma işini de yürütür. İşleri daha da karıştıracak şekilde, bazı insanlar, “çekirdeği” kast ederek “işletim sistemi” terimini kullanırlar. Terimin bu iki anlamda kullanımının geçmişi çok eskiye gider. “İşletim sistemi”nin “çekirdeği” kast edecek şekilde kullanıldığını ta 80'lerde yayımlanmış, sistem tasarımına ilişkin bazı kitaplarda görüyoruz. Aynı zamanda (80'lerde) “Unix işletim sistemi” bütün sistem programlarını kapsayacak şekilde kullanılıyordu. Berkeley'in Unix sürümü ise oyunları bile içeriyordu. GNU'nun, Unix benzeri bir işletim sistemi olmasını tasarladığımız için, “işletim sistemi” terimini biz de aynı şekilde kullanıyoruz. Çoğu zaman insanlar, “Linux işletim sistemi”nden söz ettiklerinde “işletim sistemi” terimini bizim kullandığımız anlamıyla, eksiksiz bir programlar bütününü kastedecek şekilde kullanıyorlar. Eğer kastettiğiniz şey buysa, lütfen buna “GNU/Linux” deyin. Eğer yalnızca çekirdeği kastediyorsanız, o halde doğru ad “Linux”tur. Ayrıca yazılımın hangi kısmından söz ettiğinize ilişkin anlam karmaşasını gidermek için de lütfen “çekirdek” kelimesini kullanınız. Eğer eksiksiz programlar bütünü için “işletim sistemi” yerine “sistem dağıtımı” gibi başka terimler kullanmayı tercih ediyorsanız, sakıncası yok. Sonrasında ise, GNU/Linux sistem dağıtımlarından söz etmek gerekiyor.

Richard Stallman ile daha fazla sohbet ve daha çok soru ve cevap için buradan devam edin.

Comments