GNU/Linux >> Linux Esercitazione >  >> Linux

Quali sono le principali differenze tra Bsd e Gnu/linux Userland?

Ho letto molto su Unix e Linux su BSD e GNU, ecc. Ma ancora non capisco quali siano alcune differenze pratiche e effettive tra gli utenti BSD e GNU, nonostante siano spesso menzionati. Qualcuno può elaborare?

Quando rispondi, per favore spiega completamente le connessioni storiche, tenendo presente che non sono stato vivo abbastanza a lungo per aver vissuto un periodo in cui GNU/Linux non era l'UNIX mainstream (tranne OS X).

Risposta accettata:

Il termine "userland" può riferirsi a molte cose in contesti diversi, ma qui interpreto "GNU userland" rispetto a "BSD userland" come l'insieme minimo predefinito di programmi forniti con una distribuzione.

La grande differenza principale è che le due userland iniziano con un codice sorgente completamente diverso. Codice sorgente GNU cat Codice sorgente Cat NetBSD. Proprio da quel programma semplice, puoi vedere che il gatto di NetBSD utilizza i tradizionali flag della riga di comando a lettera singola. I programmi GNU tendono ad avere flag di una sola lettera, ma anche il --something-long tipo opzioni. I programmi GNU tendono anche alla compatibilità POSIX.

Questa differenza nel codice sorgente presterà alle due userland un comportamento diverso in alcuni casi.

Sembra anche che NetBSD (almeno) utilizzi la propria versione di libc, la libreria C standard. Sto entrando nella mia testa qui, ma libc e collegamento dinamico sono stranamente correlati. Anche in questo caso, codice sorgente diverso porterà a comportamenti diversi.

Penso che come utente della shell, troverai che ps agirebbe in modo diverso e ls potrebbe darti un output leggermente diverso da quello a cui sei abituato. Dovresti trovare flag da riga di comando equivalenti per alcuni programmi, se usi l'opzione --long-option tipo di flag della riga di comando.

Storicamente, la mia comprensione è che la userland di BSD discende più direttamente da V6 e V7 Bell Labs Unix, tramite la porta 32V all'hardware VAX. GNU userland è più recente, scritto almeno in qualche modo in reazione ai tentativi di AT&T di mantenere il codice un segreto gelosamente custodito nei primi anni '80. Dopo la cessione di Bell System nel 1983, AT&T ha cercato di "monetizzare" Unix. Parte di ciò consisteva nel concedere in licenza il codice sorgente in un modo che impedisse 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.

Correlati:Interruttore:interruttore di trasferimento collegato al neutro e alla terra nel pannello secondario anziché nel pannello principale?

Nel frattempo, nel 1993, AT&T ha citato in giudizio il sistema dell'Università della California per i sistemi BSD ("B" è Berkeley, dove si trova l'Università della California). Le persone a Berkeley avevano sostituito tutta la fonte originale di AT&T con un nuovo codice e quel nuovo codice è diventato l'antenato almeno della userland di NetBSD. AT&T e UCB hanno raggiunto un accordo nel 1994, rivelato al pubblico nel 2004.

Naturalmente, almeno le idee si impollinano in modo incrociato, quindi c'è almeno una somiglianza concettuale tra GNU e BSD, ma i casi d'angolo sono decisamente diversi.


Linux
  1. Qual è la differenza tra un container Linux e un'immagine?

  2. Linux:quali sono le principali differenze tra i sistemi operativi basati su Bsd e Linux?

  3. Quali sono le differenze tra il kernel fornito di Ubuntu e il kernel a monte?

  4. Qual è la differenza tra individuare e trovare il comando in Linux

  5. Qual è la differenza tra env e set (su Mac OS X o Linux)?

MySQL vs. MariaDB:quali sono le principali differenze tra loro

Qual ​​è la differenza tra i kernel macOS e Linux

Qual è la differenza tra Linux e Unix?

Quali sono le differenze tra cPanel e WHM?

Qual è la differenza tra Unix, Linux, BSD e GNU?

Quali sono le differenze funzionali tra .profile .bash_profile e .bashrc