Yang mana yang harus dipilih - perintah BSD atau Unix-style jika tersedia?

14

Perintah seperti psdatang dengan banyak parameter, terutama karena mereka memberikan penggunaan opsi untuk memilih antara bendera gaya Unix dan BSD. Saya harap Anda mengerti maksud saya di sini.

Jadi, ketika ada opsi yang tersedia, mana yang harus saya pilih untuk kompatibilitas maksimum di semua sistem linux? (kompatibilitas maks. adalah salah satu prioritas misalnya)

Saya tahu bahwa gaya Unix cukup jelas, tetapi perintah BSD untuk beberapa alasan termasuk informasi yang lebih mudah dibaca (judul kolom misalnya, kolom CPU dll). Tentu saja, tolong perbaiki saya jika saya salah, tapi itulah yang saya rasakan.

ini aku
sumber

Jawaban:

17

Hampir semua Linux menggunakan versi GNU dari perintah inti Unix asli seperti ps, yang, seperti yang telah Anda catat, mendukung opsi gaya BSD dan AT&T.

Karena tujuan yang Anda nyatakan hanyalah kompatibilitas di antara Linux, itu artinya jawabannya adalah, "Tidak masalah."

Varian tertanam dan kecil lainnya dari Linux biasanya menggunakan BusyBox daripada alat GNU, tetapi dalam kasus ps, itu benar-benar tidak mempengaruhi jawabannya, karena versi BusyBox begitu dipreteli sehingga dapat disebut AT & Tish atau BSDish.

Seiring waktu, sistem Unixy lainnya telah mengurangi psperbedaan kompatibilitas. Mac OS X - yang berasal secara tidak langsung dari BSD Unix dan secara umum berperilaku paling mirip dengan BSD Unix - menerima psbendera AT & Tish dan BSDish .

Solaris / OpenIndiana berperilaku seperti ini juga, meskipun ini kurang mengejutkan karena memiliki campuran BSD dan AT&T.

FreeBSD, OpenBSD, dan NetBSD masih menggunakan gaya BSD secara eksklusif.

Semakin tua kotak Unix, semakin besar kemungkinan ia hanya menerima satu gaya bendera. Anda dapat mengatasi perbedaan pada kotak seperti itu dengan cara yang sama seperti yang kita lakukan sekarang: instal alat GNU, jika belum diinstal.

Konon, masih ada jebakan. psoutput umumnya tidak boleh diuraikan dalam skrip yang perlu portabel, misalnya, karena sistem Unixy bervariasi dalam kolom apa yang tersedia, jumlah data yang OS ingin buat terlihat oleh pengguna non-root, dll.

(Omong-omong, perhatikan bahwa itu "BSD vs. AT&T", bukan "BSD vs Unix". BSD Unix masih UNIX®. BSD Unix berbagi sejarah pengembangan langsung dengan cabang AT&T asli. Berbagi itu juga berlaku dua arah. : AT&T dan penggantinya membawa inovasi BSD kembali ke rumah di beberapa titik dalam sejarahnya. Penyatuan ini dari waktu ke waktu sebagian karena upaya Grup Terbuka dan pendahulunya.)

Warren Young
sumber
Meskipun ini adalah penjelasan (dan jawaban) yang bagus, itu tidak membantu dalam pertanyaan: Gaya mana yang harus saya pilih untuk dipelajari?
Jarl
@Jarl: Pelajari POSIX dulu. Itu tersedia di mana-mana. Kemudian pelajari varian aneh apa pun yang digunakan pada sistem yang paling sering Anda gunakan. Abaikan sisanya.
Warren Young
Dalam hal psgaya argumen, yang mana (BSD atau Unix) yang POSIX, lalu?
Jarl
@ James: Lihat specnya . Secara umum, POSIX lebih condong pada SysVish daripada BSD, karena POSIX digerakkan oleh ekonomi, dan semua Unix komersial utama saat itu adalah turunan Sistem V.
Warren Young
0

Jika ragu, gunakan sintaks SysV. Ini telah disetujui oleh banyak orang, dan merupakan standar de-facto. Barang-barang BSD berasal dari zaman prasejarah atau merupakan bagian dari cabang yang berbeda (SysV adalah upaya untuk mengakhiri perang Unix dengan membawa semua garis yang berbeda di bawah satu atap).

vonbrand
sumber
Standar de facto untuk Linux, bukan Solaris, * BSD, OSX, dll.
chiggsy
Yakin itu adalah standar untuk Solaris (yang yang SysV pertama untuk keluar, ingat). Itu telah ditaati oleh IBM AIX dan HP-UX, setidaknya. BSD adalah ketidaksepakatan dari zaman dulu.
vonbrand
Anda benar tentang Solaris menjadi SysV, kesalahan saya.
chiggsy
3
Terpilih, meskipun saya mempertanyakan referensi yang meremehkan untuk BSD. Bukan hal yang buruk untuk terus melakukan hal-hal dengan cara yang benar.
chiggsy
1
-1: Pertama, saya pikir maksud Anda standar de jure . Untuk mempertimbangkan opsi gaya SysV sebagai standar de facto , Anda harus mengabaikan beberapa fakta keberadaan: FreeBSD, OpenBSD, dan NetBSD. Anda tidak bisa melambaikan tangan mereka dengan argumen "prasejarah" itu. Kedua, Solaris bukan Sistem V. pertama. Mungkin itu adalah pengiriman komersial pertama SVR4 , tetapi SVR1 dikembangkan untuk Vaxen dan PDP-11 .
Warren Young