Il termine "userland" può riferirsi a molte cose in contesti diversi, ma qui interpreto "GNU userland" vs "BSD userland" come l'insieme minimo predefinito di programmi fornito con una distribuzione.
La grande differenza principale è che le due aree utente iniziano con un codice sorgente completamente diverso. Codice sorgente gatto GNU Codice sorgente gatto NetBSD . Proprio da quel programma semplice, puoi vedere che il gatto di NetBSD usa flag tradizionali a riga di comando a una lettera. I programmi GNU tendono ad avere flag a lettera singola, ma anche le --something-long
opzioni di tipo. I programmi GNU tendono anche alla compatibilità POSIX.
Tale differenza nel codice sorgente conferirà ai due utenti diverse comportamenti in alcuni casi.
Sembra anche che NetBSD (almeno) usi la propria versione di libc, la libreria C standard. Sto entrando in testa qui, ma libc e il collegamento dinamico sono stranamente inter = correlati. Ancora una volta, un codice sorgente diverso porterà a comportamenti diversi.
Penso che come utente shell, scopriresti che ps
avrebbe funzionato diversamente e che ls
potrebbe darti un output leggermente diverso da quello a cui sei abituato. Dovresti trovare flag di riga di comando equivalenti per alcuni programmi, se usi il --long-option
tipo di flag di riga di comando.
Storicamente, la mia comprensione è che l'area utente di BSD discende più direttamente da V6 e V7 Bell Labs Unix, tramite la porta da 32 V all'hardware VAX. Le aree utente di GNU sono più recenti, scritte almeno in qualche modo in reazione ai tentativi di AT&T di mantenere il codice un segreto strettamente custodito nei primi anni '80. Dopo la cessione del Bell System del 1983, AT&T ha cercato di "monetizzare" Unix. Parte di ciò consisteva nel concedere in licenza il codice sorgente in un modo che impediva alla maggior parte delle persone di vederlo. Richard Stallman e altri hanno avuto problemi con questo. Il loro progetto GNU esisteva specificamente per creare un sistema simile a Unix liberamente condivisibile.
Nel frattempo, nel 1993, AT&T fece causa al sistema dell'Università della California per via dei sistemi BSD ("B" è Berkeley, dove si trova l'Università della California). La gente di Berkeley aveva sostituito tutta la fonte originale di AT&T con un nuovo codice, e quel nuovo codice divenne l'antenato almeno della terra degli utenti di NetBSD. AT&T e UCB hanno raggiunto un accordo nel 1994, rivelato al pubblico nel 2004.
Naturalmente, almeno le idee impollinano, quindi c'è almeno una somiglianza concettuale tra GNU e BSD userland, ma i casi angolari differiscono sicuramente.