Quale scegliere: comandi BSD o Unix ove disponibili?


14

I comandi come psvengono con molti parametri, soprattutto perché offrono all'utente la possibilità di scegliere tra flag di stile Unix e BSD. Spero che tu ottenga il mio punto qui.

Quindi, quando è disponibile una tale opzione, quale dovrei scegliere per la massima compatibilità su tutti i sistemi Linux? (la massima compatibilità è una delle priorità per esempio)

So che lo stile Unix è abbastanza ovvio, ma i comandi BSD per qualche motivo includono informazioni più leggibili (titoli di colonna, ad esempio colonna della CPU, ecc.). Certo, per favore correggimi se sbaglio, ma è quello che ho sentito.

Risposte:


17

Praticamente tutti i Linux usano versioni GNU dei comandi Unix core originali come ps, che, come hai notato, supporta entrambe le opzioni di stile BSD e AT&T.

Poiché il tuo obiettivo dichiarato è solo la compatibilità tra Linux, ciò significa che la risposta è "Non importa".

Le varianti embedded e altre piccolissime di Linux usano in genere BusyBox invece degli strumenti GNU, ma nel caso in pscui ciò non influenzi davvero la risposta, poiché la versione di BusyBox è così ridotta che non può essere chiamata né AT & Tish BSDish.

Nel tempo, altri sistemi Unixy hanno ridotto le psdifferenze di compatibilità. Mac OS X - che deriva indirettamente da BSD Unix e in generale si comporta in modo molto simile a BSD Unix - accetta sia i psflag AT & Tish che BSDish .

Anche Solaris / OpenIndiana si comporta in questo modo, anche se questo è meno sorprendente perché ha una storia mista di BSD e AT&T.

FreeBSD, OpenBSD e NetBSD seguono ancora esclusivamente lo stile BSD.

Più vecchia è una scatola Unix, più è probabile che accetti solo uno stile di bandiere. Puoi documentare le differenze su una simile scatola nello stesso modo in cui facciamo ora: installa gli strumenti GNU, se non sono già stati installati.

Detto questo, ci sono ancora trappole. psl'output generalmente non dovrebbe essere analizzato negli script che devono essere portatili, ad esempio, poiché i sistemi Unixy variano in base alle colonne disponibili, alla quantità di dati che il sistema operativo è disposto a rendere visibile agli utenti non root, ecc.

(A proposito, nota che è "BSD vs. AT&T", non "BSD vs. Unix". BSD Unix è ancora UNIX®. BSD Unix condivide una storia di sviluppo diretta con il ramo AT&T originale. Anche questa condivisione va in entrambe le direzioni : AT&T e i suoi successori hanno portato a casa le innovazioni di BSD in diversi punti della sua storia. Questa unificazione nel tempo è in parte dovuta agli sforzi di The Open Group e dei suoi predecessori.)


Anche se questa è una grande spiegazione (e una risposta) non aiuta nella domanda: quale stile dovrei scegliere di imparare?
Jarl,

@Jarl: impara prima POSIX. È disponibile ovunque. Quindi scopri quali strane varianti sono in uso sui sistemi che usi di più. Ignora il resto.
Warren Young,

Nel caso degli psstili di argomento, quale (BSD o Unix) è POSIX, allora?
Jarl,

@Jarl: vedi le specifiche . In generale, POSIX appoggia più SysVish di BSD, poiché POSIX era guidato economicamente e tutti i principali Unix commerciali dell'epoca erano derivati ​​System V.
Warren Young,

0

In caso di dubbio, utilizzare la sintassi SysV. Questo è stato concordato da molte persone ed è di fatto lo standard. La roba di BSD o risale alla preistoria o fa parte di qualche ramo divergente (SysV è stato uno sforzo per porre fine alle guerre Unix portando tutte le linee disparate sotto lo stesso tetto).


Standard di fatto per Linux, non Solaris, * BSD, OSX, ecc.
Chiggsy,

Certo, è lo standard per Solaris (è stato il primo SysV ad essere uscito, ricordate). Almeno è stato rispettato da IBM AIX e HP-UX. I BSD sono un aggancio di un'era passata.
vonbrand,

1
Hai ragione sul fatto che Solaris sia SysV, errore mio.
Chiggsy,

3
È stato valutato, anche se metto in dubbio i riferimenti denigratori a BSD. Non è una brutta cosa continuare a fare le cose nel modo giusto.
Chiggsy,

2
-1: In primo luogo, penso che intendi de jure standard. Per considerare le opzioni di stile SysV lo standard di fatto , dovresti ignorare diversi fatti dell'esistenza: FreeBSD, OpenBSD e NetBSD. Non puoi allontanarli dall'esistenza con quell'argomento "preistoria". In secondo luogo, Solaris non è stato il primo sistema V. Potrebbe essere stata la prima spedizione commerciale di SVR4 , ma SVR1 è stato sviluppato per Vaxen e PDP-11 .
Warren Young,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.