Linux ve Unix arasındaki fark nedir?
Linux açık kaynak kodlu ve ücretsiz bir işletim sistemidir. Unix, birçok satıcıdan birçok farklı özellik ile gelen ve genellikle kendi donanımına sahip ticari bir üründür. Unix, pahalı ve kapalı kaynaklı bir işletim sistemidir. Ancak Linux ve Unix aşağı yukarı benzer olarak kabul edilebilir.
Linux ve Unix arasındaki farklar, teknik ve mimari boyutların ötesinde şeylerdir. Linux ve Unix’in oluşumuna yol açan bazı etkileri anlamak için ikisinin tarihini bilmeniz gerekir.
Unix kökleri
Daha önce de belirttiğimiz gibi, Unix 50 yıldan fazladır. Unix, Digital Equipment Corporation’da (DEC) bir DEC PDP/7 makinesinde montaj dilinde geliştirildi ve daha sonra AT&T tarafından satın alınan resmi olmayan bir Bell Labs projesi olarak geliştirildi. Sistem kısa süre sonra DEC PDP/11/20 bilgisayarına taşındı ve daha sonra sürekli olarak diğer Bell bilgisayarlarına genişletildi. 1973’te Unix’in C dili kullanılarak yeniden yazılması, bu işletim sisteminin sürüm 4’e ulaşmasını sağladı. Bu önemli bir değişiklikti çünkü C dilinin özellikleri ve derleyicisi Unix’i yeni bilgisayar mimarilerine taşımayı kolaylaştırdı.
1973’te Ken Thompson ve Dennis Ritchie, bir konferansta Unix hakkında bir bildiri sundular. Sonuç olarak, Unix’in bir kopyası talepleri Bell Labs’a döküldü. İşletim sisteminin satışı AT&T’nin izin verilen faaliyet kapsamı dışında olduğundan, Unix’i ticari bir ürün olarak sunamadılar. Bu durum Unix’in lisanslı bir kaynak kod paketi olarak dağıtılmasına neden oldu. Normal maliyetler, paketleme ve nakliye masraflarını ve biraz kârı karşılamak için yeterliydi. Unix, destek veya herhangi bir hata düzeltmesi olmadan “olduğu gibi” teslim edildi. Ancak kaynak kodun alıcıları onu manipüle etme olanağına sahipti.
Bu şekilde Unix, akademik ortamlarda geniş çapta kabul görmüştür. 1975’te Ken Thompson, Berkeley’deki California Üniversitesi’ndeki Bell Corporation’dan bir fon harcadı. Bazı yüksek lisans öğrencileriyle birlikte, yerel Unix kopyasını eklemeye ve geliştirmeye başladı. Unix‘in Berkeley sürümünün bu eklenen yönlerine halkın ilgisi arttı ve Berkeley Software Distribution (BSD) işletim sisteminin ilk sürümünün yayınlanmasına yol açtı. Bu işletim sistemi, Unix’e eklenebilecek, ancak bağımsız bir işletim sistemi olarak kabul edilmeyen bir programlar ve sistem manipülasyonları koleksiyonuydu. BSD’nin sonraki sürümleri kesinlikle Unix sistemleriydi.
Unix’in iki farklı çatalı vardı, biri AT&T, diğeri BSD idi. AIX, HP-UX ve Oracle Solaris gibi diğer tüm Unix sürümleri bu ikisinin torunlarıdır. 1984’te AT&T’nin bazı kısıtlamaları kaldırıldı ve şirket Unix’i ticari bir ürün olarak satabildi, böylece Unix’i ticarileştirdi.
Linux’un doğuşu
Unix’in ticarileştirilmesi, bilgisayar kullanıcılarının özgürlüklerini azalttı, bu nedenle Richard Stallman, kullanıcı özgürlüğüne dayalı bir işletim sistemi oluşturmaya karar verdi. Kullanıcının özgürlüğü, kaynak kodunu değiştirme, yazılımın değiştirilmiş sürümlerini dağıtma ve yazılımı uygun gördüğü şekilde kullanma özgürlüğü anlamına gelir.
Bu yeni işletim sistemi, Unix’in işlevlerini kopyalamak, ancak kaynak kodlarından hiçbirini kullanmamak için tasarlandı. Bu işletim sistemine GNU adını verdi ve işletim sistemini geliştirmek için 1983 yılında GNU Projesi’ni kurdu. 1985 yılında Stallman, GNU projesini desteklemek, finanse etmek ve desteklemek için Özgür Yazılım Vakfı’nı kurdu.
GNU işletim sisteminin tüm yönleri, çekirdek dışında oldukça gelişmişti. GNU projesinin geliştiricileri, yavaş ilerleyen GNU Hurd adlı bir mikro çekirdek üzerinde çalışıyorlardı. Aslında, proje bugün hala geliştirme aşamasında ve piyasaya sürülmeye yakın. Çekirdek olmadan, hiçbir işletim sistemi var olamaz.
1987 yılında Andrew S. Andrew S. Tanebaum, Minix adlı bir işletim sistemi yayınladı. Bu işletim sistemi, işletim sistemi üzerinde çalışan öğrencileri yetiştirmek için yardımcı bir proje amacıyla tasarlanmıştır. Minix, Unix benzeri bir işletim sistemiydi ancak özellikle dosya sistemi alanında bazı sınırlamaları vardı. Son olarak, bu sistemin kaynak kodunun üniversitede bir akademik dönem boyunca gözden geçirilebilecek kadar küçük olması gerekiyordu ve bu nedenle bazı işlevler bu küçüklüğün kurbanı oldu.
Daha sonra, Linus Torvalds adlı bir bilgisayar bilimi öğrencisi, Intel 80386 işlemcisinin iç işleyişini daha iyi anlamak için bir öğrenme alıştırması olarak basit bir görev değiştirme kodu yazdı. Son olarak, bu kod, ilk Linux çekirdeği olan bir ön çekirdek haline geldi. Tervalds, Minix’e aşinaydı. Aslında, ilk çekirdek, Richard Stallman’ın GCC derleyicisi kullanılarak bir Minix üzerinde geliştirildi.
Tervalds, Minix’te öğretim için özel olarak tasarlanmış sınırlamaların üstesinden gelmek için kendi işletim sistemini oluşturmaya karar verdi. 1991’de Tervalds, Minix Usenet grubuna ünlü duyurusunu yayınladı ve insanlardan projesi için fikirlerini ve önerilerini göndermelerini istedi.
Linux aslında bir Unix klonu değildi. bir Unix klonu olsaydı, sonunda bir Unix olurdu. Linux öyle değildi, bir gecede Linux oldu. “Klon” kelimesi, orijinal versiyonun küçük parçalarını alıp orijinal versiyona tamamen benzer bir kopya haline getirmek anlamına gelir. Linux, Unix gibi görünmek ve hissetmek ve aynı ihtiyaçları karşılamak için yeniden oluşturuldu. Aslında, Linux bir klondan çok bir yeniden yapım gibiydi.
Ancak Linux, işletim sistemi arayan bir Linux idi ve GNU, çekirdek arayan bir işletim sistemiydi. Dolayısıyla bu ikisi ile yaşananlar arasındaki bağlantı kaçınılmazdı ve dünyayı değiştirdi.
Bir tüketici kullanıcısının bakış açısından, komut satırında Unix ve Linux arasında birçok görsel farklılık vardır. POSIX standartları ve uyumluluk gereksinimleri nedeniyle, Unix üzerinde yazılan yazılımlar, sınırlı miktarda taşıma çabasıyla bir Linux işletim sistemi ile uyumlu olabilir. Örneğin, kabuk komut dosyaları, çok az veya hiç manipülasyon olmadan birçok yerde doğrudan Linux üzerinde kullanılabilir.
Bazı komut satırı araçları biraz farklı komut satırı seçeneklerine sahiptir, ancak temelde aynı araç seti her iki platformda da mevcuttur. Aslında, IBM’in AIX işletim sistemi, Linux uygulamaları için bir AIX araç kutusuna sahiptir. Bu, sistem yöneticisinin üzerine yüzlerce GNU paketi kurmasını sağlar.
Linux gibi farklı Unix sürümlerinin farklı grafik kullanıcı arayüzleri (GUI’ler) vardır. GNOME veya Mate ile aşina olan bir Linux kullanıcısı, ilk kez KDE veya Xface’de yolunu hızla bulabilir. Benzer şekilde Unix üzerinde Motif, Common Desktop Environment ve X Windows System gibi birçok grafiksel kullanıcı arayüzü bulunmaktadır. Bunlar aynı zamanda o kadar yakından ilişkilidir ki, diyaloglar, menüler ve simgeler içeren bir ortam kavramlarına aşina olan herkes diğerleriyle çalışabilir.
Elbette, farklı Unix’ler arasında, örneğin farklı başlatma mekanizmalarının yönetilme biçiminde birçok fark vardır. System V Unix ve BSD türevleri farklı başlatma sistemlerine sahiptir. Ücretsiz BSD varyantları, BSD’ye özgü başlatma şemalarına sahiptir. Varsayılan olarak, Linux dağıtımları ya Unix System V’den türetilen bir init sistemi ya da sistem kullanır.