BSD ve GNU / Linux kullanıcısı arasındaki ana farklar nelerdir?


37

Unix ve Linux'ta BSD'ler ve GNU, vb. Hakkında çok şey okudum. Ancak, sık sık bahsedilmelerine rağmen, BSD ve GNU kullanıcı alanları arasındaki gerçek, pratik farkların ne olduğunu hala anlamıyorum. Birisi ayrıntılı olabilir mi?

Cevap verirken, lütfen GNU / Linux'un ana UNIX olmadığı bir zaman deneyimleyecek kadar uzun süredir yaşamadığımı (OS X hariç) aklımda tutarak tarihsel bağlantıları tam olarak açıklayın.


2
OS X’teki GNU / Linux’tan burada komut satırı ortamında bir farklar listesi yazdım: reddit.com/r/commandline/comments/4jydnw/… .
nisetama

Yanıtlar:


27

"Kullanıcı alanı" terimi farklı bağlamlardaki birçok şeyi ifade edebilir, ancak burada "GNU kullanıcı alanı" ile "BSD kullanıcı alanı" nı varsayılan, minimum bir dağıtımla birlikte gelen programlar olarak yorumluyorum.

En büyük ana fark, iki kullanıcı alanının tamamen farklı bir kaynak koduyla başlamasıdır. GNU cat kaynak kodu NetBSD cat kaynak kodu . Sadece bu basit kavramdan, NetBSD'nin kedisinin geleneksel, tek harfli komut satırı bayraklarını kullandığını görebilirsiniz. GNU programları tek harfli bayraklara sahip olma eğilimindedir, aynı zamanda --something-longtip seçenekleri de vardır. GNU programları da POSIX uyumluluğu yönündedir.

Kaynak koddaki bu fark, bazı durumlarda iki kullanıcı alanına farklı davranışlar kazandırır.

Ayrıca NetBSD (en azından) kendi standart lib kütüphanesi olan C kütüphanesini kullanıyor gibi gözüküyor. Burada başımın üzerinden geçiyorum, ancak libc ve dinamik bağlantı garip bir şekilde inter = ilişkili. Yine, farklı kaynak kodları farklı davranışlara yol açacaktır.

Bir kabuk kullanıcısı olarak bunun psfarklı davranacağını ve bunun lsalışkın olduğunuzdan biraz farklı çıktılar vereceğini düşünüyorum. Komut satırı bayrakları --long-optiontürünü kullanırsanız, bazı programlar için eşdeğer komut satırı bayraklarını bulmanız gerekir .

Tarihsel olarak, benim anladığım kadarıyla BSD kullanıcısı, doğrudan V6 ve V7 Bell Labs Unix'ten 32V portu ile VAX donanımına iniyor. GNU kullanıcısı daha yenidir ve AT & T'nin 80'li yılların başlarında kodu yakından koruyan bir sır olarak tutmaya çalıştığı girişimlere tepki olarak en azından biraz yazılmıştır. 1983 Bell Sistemi elden çıkarma işleminden sonra, AT&T Unix’ten para kazanmaya çalıştı. Bunun bir kısmı, kaynak kodu çoğu kişinin görmesini engelleyecek şekilde lisanslamaktı. Richard Stallman ve diğerleri bununla ilgili sorunlar yaşadı. GNU projeleri, serbestçe paylaşılabilir bir Unix benzeri bir sistem oluşturmak için özel olarak vardı.

Bu arada, 1993 yılında AT&T, California Üniversitesi sistemini BSD ('B', California Üniversitesi'nin bulunduğu Berkeley'dir) sistemleri üzerinden dava etti. Berkeley’deki insanlar AT & T’nin orijinal kaynağının tamamını yeni kodla değiştirdiler ve bu yeni kod en azından NetBSD’nin kullanıcısının atası oldu. AT&T ve UCB, 1994 yılında halka açıklanmış ve 1994 yılında halka açılmıştır.

Doğal olarak, en azından fikirler çapraz tozlaşıyor, bu nedenle GNU ve BSD kullanıcısı arasında en azından kavramsal bir benzerlik var, ancak köşe vakaları kesinlikle farklı.


1
Her iki bağlantınız da bir konuma işaret ediyor.

peki bu pratik kabuk kullanımı için olma eğiliminde midir? uzun bayraklar ve köşe kılıfları?
Strugee

12
Tecrübelerime göre GNU ölçeklenebilirliği daha ciddiye alıyor. Belki de bu "köşe davaları" olarak da sayılabilir, ancak seduzun giriş hatlarında boğulurken ya da grepikili verilerde segfaults yaptığınızda gerçekten çok sinir bozucu olur .
üçlü

Önemli bir fark, GNU’nun hiçbir zaman kendi çekirdeğine sahip olmadığı, BSD’nin ise, kısmen ticari unix sistemlerinde yaygın olarak kullanılan kendi çekirdeğini oluşturmasıdır. MAC OS X, Darwin'i BSK tabanlı bir Çekirdek olarak kullanıyor.
görselleştirme

@ görselleştirme GNU HURD var, ancak bu henüz serbest bırakılmadı
Dmitry Kudriavtsev
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.