Bu, orijinali İngilizce olan bir sayfanın çevirisidir.

Linux ve GNU Sistemi

Birçok bilgisayar kullanıcısı, fark etmeden her gün GNU sisteminin değiştirilmiş bir sürümünü çalıştırır. Tuhaf bir olayla bugün yaygın olarak kullanılan GNU sürümüne genellikle “Linux” denir ve kullanıcılarının çoğu temelde GNU Projesi tarafından geliştirilen bir GNU sistemi olduğunun farkında değildir.

Gerçekten bir Linux var ve bu insanlar onu kullanıyorlar ancak bu kullandıkları sistemin sadece bir parçası. Linux çekirdektir: sistemdeki, makinenin kaynaklarını çalıştırılan diğer programlara tahsis eden program. Çekirdek bir işletim sisteminin önemli bir parçasıdır ancak tek başına işe yaramaz; yalnızca tam bir işletim sistemi bağlamında çalışabilir. Linux normalde GNU işletim sistemiyle birlikte kullanılır: Tüm sistem temelde Linux eklenmiş GNU veya GNU/Linux'tur. Tüm sözümona “Linux” dağıtımları gerçekte GNU/Linux dağıtımlarıdır.

Birçok kullanıcı Linux olan çekirdek ile “Linux” olarak adlandırdıkları tüm sistem arasındaki farkı anlamıyor. İsmin belirsiz kullanımı insanların anlamasına yardımcı olmuyor. Bu kullanıcılar genellikle Linus Torvalds'ın tüm işletim sistemini 1991 yılında biraz yardımla geliştirdiğini düşünüyor.

Programcılar genellikle Linux'un bir çekirdek olduğunu bilirler. Ancak genel olarak Linux olarak adlandırılan tüm sistemi duydukları için genellikle çekirdekten sonra tüm sistemi adlandırmayı haklı kılacak bir tarih öngörmektedirler. Örneğin; birçoğu Linus Torvalds Linux'u, çekirdeği, yazmayı bitirdiğinde kullanıcılarının onunla birlikte gitmek için diğer özgür yazılımları aradıklarına ve Unix benzeri bir sistem yapmak için gereken her şeyin zaten mevcut olduğunu (ortada neden yokken) keşfetti.

Buldukları şey tesadüf değildi— tamamlanmamış bir GNU sistemiydi. Mevcut özgür yazılım bütün bir sisteme eklendi çünkü GNU Projesi 1984 yılından bu yana bir sistem oluşturmak için çalışıyordu. GNU Bildirisi'nde GNU adı verilen özgür bir Unix benzeri sistem geliştirme hedefini ortaya koymuştuk. GNU Projesi'nin İlk Duyurusu ayrıca GNU sistemi için bazı orijinal planların ana hatlarını çiziyor. Linux başlatıldığında GNU neredeyse bitmişti.

Çoğu özgür yazılım projesi, belirli bir iş için belirli bir program geliştirme amacına sahiptir. Mesela Linus Torvalds Unix benzeri bir çekirdek (Linux) yazmaya başladı; Donald Knuth bir metin biçimlendiricisi (TeX) yazmaya başladı; Bob Scheifler bir pencere sistemi (X Pencere Sistemi) geliştirmek için yola çıktı. Bu tür bir projenin katkısını projeden gelen belirli programlarla ölçmek doğaldır.

GNU Projesi'nin katkısını bu şekilde ölçmeye çalışsaydık neyin sonucuna varırdık? Bir CD-ROM sağlayıcı, kendi “Linux dağıtımı”nda GNU yazılımının, toplam kaynak kodunun yaklaşık %28 civarına denk oranıyla en büyük tekil grup olduğunu ve eksiklikleri durumunda hiçbir sistemin olamayacağı temel başlıca bileşenlerden bazılarını içerdiğini buldu. Linux'un kendisi yaklaşık %3 idi. (2008'deki oranlar benzer: gNewSense'nin “main” deposunda Linux %1,5 ve GNU paketleri %15'tir.) Dolayısıyla sistemde programları kimin yazdığına bağlı olarak sistem için bir isim seçecekseniz eğer en uygun yegane seçenek “GNU” olurdu.

Ancak bu, soruyu düşünmenin en derin yolu değildir. GNU Projesi; belirli yazılım paketleri geliştirme projesi değildi, değil. Her ne kadar bunu yapmamıza rağmen C derleyicisi geliştirmek için bir proje değildi. Bir metin düzenleyicisi geliştirmek bir proje değildi ama yine de bir tane geliştirdik. GNU Projesi, tamamen özgür bir Unix benzeri sistem geliştirmeyi amaçlıyordu: GNU'yu.

Birçok kişi sistemdeki özgür yazılıma büyük katkılarda bulundu ve hepsi kendi yazılımları için övgüyü hak ediyor. Ancak bunun sadece yararlı programlardan oluşan bir koleksiyon değil, bütünleşik bir sistem olmasının nedeni; GNU Projesi'nin bu amaca sahip olmasıydı. Tam bir özgür sistem oluşturmak için gereken programların bir listesini yaptık ve sistematik olarak listedeki şeyleri yazdık, bulduk veya yazacak kişileri bulduk. Onlar olmadan bir sisteme sahip olamayacağınız için temel ancak can sıkıcı [1] bileşenleri yazdık. Sistem bileşenlerimizden bazıları, programlama araçları, programcılar arasında kendi başlarına popüler hâle geldi ancak araç olmayan birçok bileşen de yazdık [2]. Hatta bir satranç oyunu geliştirdik, GNU Chess, çünkü bütün bir sistem de oyunlara ihtiyaç duyar.

90'lı yılların başlarında, çekirdek dışında tüm sistemi bir araya getirmiştik. Mach'ın üzerinde çalışan bir GNU Hurd çekirdeği geliştirmeye de başlamıştık. Bu çekirdeği geliştirmek beklediğimizden çok daha zor oldu; GNU Hurd 2001 yılında güvenilir bir şekilde çalışmaya başladı ancak insanların genel kullanımına hazır olmaktan çok uzaktı.

Neyse ki Linux sayesinde Hurd'u beklemek zorunda değildik. Torvalds 1992'de Linux'u yayımladıktan sonra GNU sistemindeki son büyük boşluğu kapatmış oldu. İnsanlar daha sonra Linux'u GNU sistemi ile birleştirerek tam bir özgür sistem yapabildiler: Linux'u de içeren bir GNU sistemi sürümü. Başka bir deyişle GNU/Linux sistemi.

Birlikte iyi çalışmalarını sağlamak önemsiz bir iş değildi. Bazı GNU bileşenleri [3] Linux ile çalışmak için önemli değişikliklere ihtiyaç duydu. Tam bir sistemi “hemen kullanılabilir” bir dağıtım olarak bütünleştirmek de büyük bir işti. Sistemin nasıl kurulacağı ve önyükleneceği sorununu ele almayı gerektiriyordu; bu, ele almadığımız bir sorun çünkü henüz o noktaya gelmemiştik. Bu nedenle çeşitli sistem dağıtımlarını geliştiren insanlar çok önemli çalışmalar yaptılar. Ancak, doğal olarak, kesinlikle birileri tarafından yapılacak bir işti.

GNU Projesi, GNU sisteminin yanı sıra GNU/Linux sistemlerini de destekliyor. FSF; Linux ile ilgili eklentilerin GNU C kütüphanesine yeniden yazılmasını finanse etti, böylece şimdi iyi bütünleştiler ve en yeni GNU/Linux sistemleri mevcut kütüphane sürümünü hiçbir değişiklik olmadan kullanıyor. FSF ayrıca Debian GNU/Linux'un gelişiminin erken bir aşamasını da finanse etti.

Bugün GNU/Linux sisteminin birçok farklı türü var (genellikle “dağıtımlar” olarak adlandırılır). Birçoğu özgür olmayan programları da içeriyor (geliştiricileri GNU'nun “özgür yazılım” felsefesi yerine Linux ile ilişkili “açık kaynak” felsefesini izliyor). Ancak tamamen özgür GNU/Linux dağıtımları da var. FSF, bunlardan birkaçı için bilgisayar olanaklarını desteklemektedir.

Özgür bir GNU/Linux dağıtımı yapmak sadece çeşitli özgür olmayan programları ortadan kaldırmakla ilgili değildir. Günümüzde Linux'un normal sürümünde özgür olmayan programlar da bulunmaktadır. Bu programların sistem başladığında G/Ç aygıtlarına yüklenmesi amaçlanmıştır ve uzun sayı serileri olarak Linux'un “kaynak kodu”na dâhil edilmiştir. Bu nedenle özgür GNU/Linux dağıtımlarının sürdürülmesi artık Linux'un özgür bir sürümünün de sürdürülmesini gerektirir.

GNU/Linux kullansanız da kullanmasanız da lütfen “Linux” adını muğlak bir şekilde kullanarak halkın kafasını karıştırmayın. Linux, sistemin önemli başlıca bileşenlerinden biri olan çekirdektir. Bir bütün olarak sistem temelde Linux ile birlikte GNU sistemidir. Bu bileşenden söz ederken lütfen “GNU/Linux” olarak adlandırın.

Daha fazla referans için “GNU/Linux” hakkında bir bağlantı vermek istiyorsanız bu sayfa ve http://www.gnu.org/gnu/the-gnu-project.html iyi seçimlerdir. Eğer Linux'tan, çekirdekten, söz ediyorsanız ve daha fazla referans için bir bağlantı paylaşmak istiyorsanız https://foldoc.org/linux kullanışlı bir URL'dir.

Dipnotlar

GNU dışında başka bir proje de bağımsız olarak özgür bir Unix benzeri işletim sistemi üretti. Bu sistem BSD olarak bilinir ve UC Berkeley'de geliştirilmiştir. 80'lerde özgür değildi ancak 90'ların başında özgür oldu. Bugün mevcut özgür bir işletim sistemi [4] neredeyse kesinlikle ya GNU sisteminin bir türü ya da bir çeşit BSD sistemidir.

İnsanlar bazen BSD'nin de GNU/Linux gibi bir GNU sürümü olup olmadığını soruyorlar. BSD geliştiricileri; GNU Projesi örneğinden, kodlarını özgür bir yazılım haline getirmek için ilham aldılar ve GNU aktivistlerinden gelen belirgin itirazlar onları ikna etmeye yardımcı oldu ancak kodun GNU ile çok az örtüşmesi vardı. BSD sistemleri günümüzde GNU sistemi ve çeşitlerinin bazı BSD programları kullandığı gibi bazı GNU programları da kullanmaktadır; ancak, bütün olarak ele alındığında, ayrı ayrı gelişen iki farklı sistemdir. BSD geliştiricileri bir çekirdek yazmadı ve GNU sistemine eklemedi ve GNU/BSD gibi bir isim duruma uymayacaktı [5].

Dipnotlar

  1. Bu heyecansız ancak gerekli bileşenler GNU assembler (GAS) ve bağlayıcıyı (GLD), her ikisi de artık GNU Binutils paketinin bir parçası, GNU tar ve daha pek çok şeyi içerir.
  2. Örneğin Bourne Again SHell (BASH), PostScript yorumlayıcısı Ghostscript ve GNU C kütüphanesi programlama aracı değildir. GNUCash, GNOME ve GNU Chess de değildir.
  3. Örneğin GNU C kütüphanesi.
  4. Bu yazı yazıldığından beri neredeyse tamamen özgür bir Windows benzeri sistem geliştirildi ancak teknik olarak hiç GNU veya Unix gibi değil, bu yüzden bu hususu gerçekten etkilemiyor. Solaris çekirdeğinin çoğu özgürleştirildi ancak bunun dışında bir sistem yapmak isterseniz, çekirdeğin eksik kısımlarını değiştirmenin yanı sıra, GNU veya BSD'ye de koymanız gerekir.
  5. Öte yandan bu yazının yazılmasından sonraki yıllarda GNU C Kütüphanesi, GNU sistemini bu çekirdekle birleştirmeyi kolaylaştıran BSD çekirdeğinin çeşitli sürümlerine taşınmıştır. Tıpkı GNU/Linux'ta olduğu gibi bunlar aslında GNU'nun çeşitleridir ve bu nedenle mesela sistemin çekirdeğine bağlı olarak GNU/kFreeBSD ve GNU/kNetBSD olarak adlandırılır. Tipik masa üstlerindeki sıradan kullanıcılar GNU/Linux ve GNU/*BSD arasında farkı güçlükle görebilir.