Hangisini seçmelisiniz - varsa BSD veya Unix tarzı komutlar?


14

Komutlar ps, özellikle Unix ve BSD stil bayrakları arasında seçim yapma seçeneği verdikleri için birçok parametreye sahiptir. Umarım bu konuya değinirsin.

Peki, böyle bir seçenek olduğunda, tüm linux sistemlerinde maksimum uyumluluk için hangisini seçmeliyim? (örneğin maksimum uyumluluk önceliklerden biridir)

Unix stilinin oldukça açık olduğunu biliyorum, ancak bazı nedenlerden dolayı BSD komutları daha okunabilir bilgiler içeriyor (örneğin sütun başlıkları, CPU sütunu vb.). Tabii ki, eğer yanılıyorsam beni düzeltin, ama bunu hissettim.

Yanıtlar:


17

Hemen hemen tüm Linux'lar ps, belirttiğiniz gibi BSD ve AT&T stil seçeneklerini destekleyen orijinal çekirdek Unix komutlarının GNU sürümlerini kullanır .

Belirttiğiniz hedef yalnızca Linux'lar arasında uyumluluk olduğundan, yanıt "Önemli değil" anlamına gelir.

Gömülü ve diğer çok küçük Linux varyantları genellikle GNU araçları yerine BusyBox kullanır, ancak bu durumda pscevabı gerçekten etkilemez, çünkü BusyBox sürümü çok soyulmuş olduğundan ne AT & Tish ne de BSDish olarak adlandırılamaz .

Zamanla, diğer Unixy sistemleri psuyumluluk farklılıklarını azalttı . Dolaylı olarak BSD Unix'ten türeyen ve genel olarak BSD Unix'e en çok benzer şekilde davranan Mac OS X , hem AT & Tish hem de BSDish psbayraklarını kabul eder .

Solaris / OpenIndiana da bu şekilde davranıyor, ancak bu daha az şaşırtıcı çünkü karışık bir BSD ve AT&T geçmişine sahip.

FreeBSD, OpenBSD ve NetBSD hala BSD stilini seçiyor.

Unix kutusu büyüdükçe, yalnızca bir stil stilini kabul etme olasılığı artar. Böyle bir kutudaki farklılıkları şimdi yaptığımız gibi kağıda dökebilirsiniz: henüz kurulmamışlarsa GNU araçlarını yükleyin.

Bununla birlikte, hala tuzaklar var. psçıktı genellikle taşınabilir olması gereken komut dosyalarında ayrıştırılmamalıdır; örneğin, Unixy sistemleri hangi sütunların kullanılabilir olduğuna göre değişir, işletim sisteminin kök olmayan kullanıcılara görünür kılmak istediği veri miktarı vb.

(Bu arada, "BSD vs. Unix" değil "BSD vs. AT&T" olduğunu unutmayın. BSD Unix hala UNIX®'dir. BSD Unix , orijinal AT&T şubesiyle doğrudan bir geliştirme geçmişi paylaşır . : AT&T ve halefleri BSD yeniliklerini tarihinin çeşitli noktalarına geri getirdiler.Bu zaman içindeki bu birleşim kısmen Açık Grup ve öncüllerinin çabalarından kaynaklanıyor .)


Bu harika bir açıklama (ve cevap) olmasına rağmen şu soruya yardımcı olmaz: Hangi stili öğrenmeyi seçmeliyim?
Jarl

@Jarl: Önce POSIX'i öğrenin. Bu her yerde mevcut. Ardından, en çok kullandığınız sistemlerde hangi garip değişkenlerin kullanıldığını öğrenin. Gerisini görmezden gelin.
Warren Young

Bağımsız psdeğişken stilleri durumunda , hangisi (BSD veya Unix) POSIX olur?
Jarl

@Jarl: Spesifikasyona bakın . Genel olarak konuşursak, POSIX ekonomik güdümlü olduğu ve zamanın tüm büyük ticari Unix'leri Sistem V türevleri olduğu için POSIX, BSD'den daha fazla SysVish'e eğilir.
Warren Young

0

Şüphe durumunda, SysV sözdizimini kullanın. Bu birçok insan tarafından kabul edilmiştir ve fiili standarttır. BSD şeyleri tarih öncesi ya da bazı ıraksak dalların bir parçasıdır (SysV, tüm farklı hatları tek bir çatı altına getirerek Unix savaşlarını sona erdirme çabasıydı).


Linux için fiili standart, Solaris için değil, * BSD, OSX, vb.
chiggsy

Tabii (oldu Solaris için standart ilk SysV, hatırlamak çıkıp). En azından IBM'in AIX ve HP-UX'ına bağlı kalmıştır. BSD'ler eski bir çağdan kalma bir kısıtlamadır.
vonbrand

1
Solaris'in SysV olması konusunda haklısın, hatam.
chiggsy

3
Ben BSD için aşağılayıcı referansları sorgulamak rağmen, upvoted. İşleri doğru şekilde yapmaya devam etmek kötü bir şey değil.
chiggsy

2
-1: Birincisi, demek istediniz hukuki standardını. SysV stil seçeneklerini fiili standart olarak değerlendirmek için, birkaç varoluş gerçeğini göz ardı etmeniz gerekir: FreeBSD, OpenBSD ve NetBSD. Bu "tarih öncesi" argümanıyla onları varoluştan çıkaramazsınız. İkincisi, Solaris oldu değil İlk Sistemi V. olabilir ilk ticari sevkiyat olmuştur SVR4 ama SVR1 Vaxen ve PDP-11 için geliştirilmiştir .
Warren Young
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.