GNU vs. Linux

Bugün kullanımda olan Ubuntu, Pardus, Fedora gibi işletim sistemleri hep Linux olarak bilinir. Aslında gerçek biraz daha farklı. Linux, özünde bir işletim sistemi değil, işletim sistemi çekirdeğidir. İşletim sistemi çekirdeği ise bilgisayar kaynaklarının yönetimini yapan ve uygulama programlarının ihtiyaçlarını donanım kısmında sağlayan bir işletim sistemi bileşenidir. Başka bir deyişle bizim bilgisayar üzerinde çalıştırdığımız programlar ile bilgisayarın donanımı arasında bir köprü kurarak iletişimi sağlayan, işletim sisteminin en önemli parçasıdır.

Peki, madem öyle GNU nedir? GNU, 1984 yılında Richard Stallman tarafından başlatılmış bir işletim sistemi projesidir. Açılımı “GNU’s Not Unix” yani “GNU Unix Değildir” dir. Bu adın seçilmesindeki sebep GNU’nun Unix’e benzemesine rağmen hiç UNIX kodu içermemesidir.

GNU komple bir işletim sistemi olarak tasarlandığına göre, bu işletim sisteminin çekirdeğinin de GNU projesi kapsamında yazılması gerekiyordu. Çekirdeğin yanında GNU projesi içinde uygulama yazılımları, programlama araçları, derleyiciler, metin editörleri ve hatta oyunlar bile yazılacaktı. Ancak zaman içerisinde Hurd adı verilen işletim sistemi çekirdeğinin geliştirilmesinde sorunlar ortaya çıktı ve Hurd hiçbir zaman son kullanıcıların kullanabileceği bir aşamaya gelemedi.

GNU ekibi Hurd ile uğraşırken Linus Torvalds Linux çekirdeğini yazıp bitirmişti. Linux sonuçta bir çekirdek olduğu için tek başına bir anlam ifade etmiyordu. GNU projesinin de bir işletim sistemi çekirdeğine ihtiyacı vardı. Bu sebeple GNU projesinde işletim sistemi çekirdeğinin oluşturduğu büyük boşluğun Linux çekirdeği ile doldurulması için çalışmalara başlandı. GNU bileşenlerini Linux çekirdeğinde çalıştırabilmek için yoğun çabalar harcandı ve GNU paketleri Linux çekirdeğinde çalışabilecek hale getirildi.

Sonuçta bugün kullandığımız Linux dağıtımları aslında Linux çekirdeğinin üzerine GNU paketlerinin ve Linux için yazılmış diğer birtakım uygulamaların kurulmasıyla ortaya çıkmıştır. Bugün Linux dağıtımları üzerinde kullandığımız GCC (GNU C Compiler), GDB (GNU Debugger), GNU C Library, BASH kabuğu gibi bileşenler GNU projesi kapsamında üretilmiştir. Bu sebeple bazı kişiler bu işletim sistemlerine Linux denmesinin GNU projesine haksızlık olduğunu, bu sistemlerin GNU/Linux olarak anılması gerektiğini savunmaktadırlar. Buna gerekçe olarak bir Linux dağıtımının toplam kaynak kodunun %15’inin GNU paketlerinden oluştuğunu, buna karşın sadece %1,5’inin Linux çekirdeği olduğunu göstermektedirler.

Diğer taraftan bazı kişiler de, GNU paketlerinin bu işletim sistemlerinin işlevsellik olarak küçük bir parçasını oluşturduğunu, çekirdeğin boyutu küçük olsa da işletim sisteminin kalbi olduğunu, bu sistemlere sadece GNU’nun değil binlerce başka kişinin de katkıda bulunduğunu öne sürerek bu işletim sistemlerinin adının sadece Linux olarak kalması gerektiğini savunmaktadırlar.

Her iki tarafın da kendine göre haklı oldukları yerler olabilir. Bir işletim sistemini birlikte çalışan parçalardan oluşan bir bütün olarak düşünürsek hangi parçalar ne kadar önemlidir, işletim sistemine bu parçalardan birinin ismi verilecekse hangisi verilmelidir yoksa isimler GNU/Linux gibi birleştirilip mi verilmelidir bütün bunlar göreceli şeyler. Yazıda ben de GNU/Linux’u hem yazması hem de telaffuzu zor olduğu basit olarak Linux kullanmayı tercih ettim. İsteyen istediği ismi kullanmakta tabii ki özgür ama GNU projesinin Linux’a büyük katkıları olduğu ve en azından bilinmeyi hakettiği bir gerçek.

Share

Bir Cevap Yazın