Tüm Unix komutları Linux'ta yeniden yazılmış mıydı?


Yanıtlar:


93

İşletim sisteminin iki farklı parçasını karıştırdığınız anlaşılıyor. Bu anlaşılabilir bir durumdur, çünkü bunlar genellikle birbirinin yerine geçebilir olarak adlandırılır, ancak teknik olarak yanlıştır, bu nedenle sorunuz hatalı bir öncül üzerine kuruludur. Sormak istediğiniz soruyu tam olarak araştırıp umutla cevaplayabilmek için kısa bir tarih dersine ihtiyaç vardır.

İlk önce, UNIX vardı. Temel olarak, o günlerde, UNIX ilk önce gelen AT&T UNIX Sistemini kastetti . Ancak AT&T UNIX Özgür Değil oldu, bu yüzden Richard Stallman GNU projesini Özgür olan bir Unix sistemi yazmak için başlattı . Dolayısıyla Gnu ismi Unix değil , GNU olarak kısaltıldı. GNU için planlar 1983'te kamuoyuna açıklandı ve 1984'te kalkınma başladı .

1990'ların başında, GNU, UNIX kuruluşlarının çoğunu sıfırdan yeniden uygulamıştı. Vikipedi , genel olarak yeniden yazılmayan birkaç bileşeni listeler (TeX, X Window Sistemi ve Mach mikro çekirdeği, yeniden yazılmayan bileşenlerin örnekleri olarak belirtilmiştir), ancak çoğunlukla, kullanıcı araçları, en baştan karşılamak için sıfırdan yeniden yazılmıştır. herhangi bir AT&T (veya daha doğrusu Ücretsiz olmayan) kodun tekrar kullanılmasının engellenmesinin yanı sıra, komut satırı seçenekleri ekleyerek yeteneklerini genişletme. Sonuç olarak, GNU yardımcı programları düzenli olarak özgün ilham kaynaklarını aldıkları araçlardan daha güçlüydü.

Bu noktada, GNU hala hayati bir bileşeni eksikti: başka bir işletim sistemi çalıştırmayan gerçek bir bilgisayarda her şeyin birlikte çalışmasını sağlayan bir işletim sistemi çekirdeği . 1991 yılında Linus Torvalds, sonunda Linux olarak bilinen bir oyuncak projesi üzerinde çalışmaya başladı. Temelde o zamanki yeni 32-bit Intel 80386 CPU'yu öğrenmek için bir okul projesiydi ve son derece basit bir şekilde başladı, ancak sonunda gerçekten kullanılabilir bir işletim sistemi çekirdeğine dönüşmeye başladı. Ancak herhangi bir kullanıcı yazılımı yoktu; Linux kendi başına kabuk, çekirdek başlatma dışında sistem başlatma imkanı, metin editörü, grafik arayüzü, hiçbir şey sağlamaz. Çekirdek bir araba motoru gibidir; Yararlı bir araba yapmak için gerekli, ancak kendi başına işe yaramaz (faydalı bir araç için, sürücünün oturması için bir yere, yakıt deposuna veya başka bir enerji deposuna vs.) ihtiyacınız var. Linux çekirdeği, GNU yazılımıyla aynı şekilde GNU Genel Kamu Lisansı altında dağıtıldı .

Böylece insanlar ikisini eşleştirmeye başladı. Bir Unix benzeri kullanıcı adasında, birlikte (yakın bir resemblence dahil Unix gelen fikirler etrafında dayalı bir çekirdekle olacaktı POSIX'deki kaynak kodu ile tamamlandı), sen ne kadar istediğini uzakta kesmek olabilir ve bu maliyet şey yoktu . Özellikle Linux dağıtımları yaygınlaşmadan önce , bazı şeylerin işe yaramasını sağlamak biraz zordu, ancak üzerinde biraz zaman harcamak isteyenlerin kullanabileceği kadar bitmişti.

Bu günlerde, GNU kendi çekirdeğini sağlıyor. Muhtemelen duymamışsındır, ama buna GNU Hurd denir . Ancak Hurd 1990'ların başında, Linux hobiler ve tamirciler arasında çekiş kazanmaya başladığında, bu yüzden Linux çekirdeği ve çoğunlukla geliştiriciler arasında en fazla dikkat çeken GNU kullanıcısı olan kombinasyondu.

Ayrıca, bu günlerde, birçok Unix sistemi GNU kullanıcısı ülkesinin bazı bölümlerini yöneticinin kolayca kurmasına veya yüklemesine izin veriyor. GNU bash, GNU Derleyici Koleksiyonu, GNU C kütüphanesi (vanilya ya da yamalı) vb. Gibi şeyleri, başka bir GNU dışı bir sistemde görebilirsiniz.

Sorunları daha da kötü hale getirmek için, bazı sistemler Linux çekirdeğini kullanır ancak GNU kullanıcısı değildir. Bunun yaygın olarak kullanılan bir örneği için , temelde özel bir kullanıcı alanıyla birleşmiş Linux çekirdeği olan Android işletim sistemini düşünün .

Bu önemlidir, çünkü GNU, Linux ve çeşitli Unix'ler arasındaki çizgiyi önemli ölçüde bulanıklaştırır ( sadece bir UNIX var , ancak birçok Unix ve daha fazla Unix benzeri işletim sistemi var ). Linux hakkında soru sorduğunuzda GNU / Linux sistemini gerçekten çok sık soruyorsunuz. Ancak Linux kullanmadan, FreeBSD çekirdeğinin üstünde bir GNU kullanıcısı işleten Debian GNU / kFreeBSD'yi düşünün . Veya örneğin, coreutils dahil olmak üzere çeşitli GNU paketlerini kolayca kurabileceğiniz Solaris . Sanırım Mac OS X de GNU kullanıcısı bölgeleriyle birlikte geliyor. Ya da yukarıda belirtilen Android'i düşünün.

Sonunda, kullanılabilir bir GNU sistemi GNU dışı kod çalıştırabilir ve GNU dışı bir sistem GNU kodunu çalıştırabilir, ancak GNU yardımcı programları GNU olmayan kod içermez.


1
En son FreeBSD'yi (yıllar önce) kullandığımda birçok GNU aracı kullanmıyordu, ancak kendi kümesi - örneğin GNU yapmak yerine BSD yapmak.
reinierpost

5
@reinierpost OSX çok benzer - düz kurulum şeylerin çoğunlukla BSD versiyonlarını içerir, ancak GNU coreutils ve benzerleri MacPorts ve diğerleri ile kolayca erişilebilir . XCode LLVM'yi kullanır, fakat aynı zamanda gcc'yi de kullanır. Bu karmaşık :)
MattDMo

1
@ reinierpost make yerine çok fena değil. C derleyicisi biraz daha yer olduğunu. En azından FreeBSD 8.0, varsayılan derleyici olarak GCC'yi kullanır ; özellikle sürüm 4.2.1. Yeni sürümlerin temel sisteme entegrasyonunun engellenmesine değinen "lisans sorunları" muhtemelen GPL2 + 'dan GPL3 +' ya geçişle ilgilidir, ancak emin olamadım.
Ağustos'ta CVn.

3
@ hunter2 Şu ana kadarki oy sayımlarına dayanarak, gerekli olmadığı görülüyor. ;) Ben de tam bir tarih yazmak için yola çıkmadım. Minix, Linux kendi kendini barındırmadan önce bir Linux geliştirme ve önyükleme sistemi olarak önemli bir rol üstlendi, ancak örneğin Linux, GNU ve orijinal UNIX arasındaki ilişkiyi, yani sorunun ne hakkında olduğu konusunda çok az etkisi oldu.
bir CVn'de

3
@ hunter2 Eğer o rotadan gidersek, UNIX'in de kesinlikle ilk gelmediği doğrudur. Ancak soruyu cevaplamak için bu yeterince iyi bir yaklaşım gibi görünüyordu. Tek cümle cevabı "Linux sisteminde bulacağınız TeX ve X hariç temelde her şey UNU’nun GNU’nun bir parçası olarak yeniden yazıldı" gibi bir şey olurdu, ancak ek bağlamın cevabı kesinlikle çok daha uzun sürmesine rağmen değer kattığını düşünüyorum. gerekli - ve cevap hala her ayrıntıyı kapsayan çok kısa geliyor.
Ağustos'ta
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.