GNU/Linux >> Linux Esercitazione >  >> Linux

Cosa hanno in comune i diversi Bsd?

… e quali sono le differenze tra loro? Ho formulato la mia domanda in questo modo per chiarire che non sono interessato a un conflitto di opinioni, piuttosto a un confronto oggettivo tra i diversi gusti di BSD Unix. Idealmente, potrei ricevere feedback da utenti che hanno esperienza in tutti loro.

Sfondo

Di recente ho scoperto che in Unix c'è molto di più del semplice Linux. Uso Solaris al lavoro, mi ha aperto gli occhi. Ora sono interessato ai nuovi unice, voglio provarne uno nuovo e sono naturalmente curioso dei BSD.

Il problema

Non sto chiedendo consigli o opinioni su quale BSD installare; Voglio conoscere le differenze (e i punti in comune) tra di loro in modo da poter prendere una decisione. Il problema è che è difficile ottenere un confronto corretto tra di loro.

Se sei fortunato, ottieni una definizione frettolosa come questa:

FreeBSD = Popular all-rounder.
NetBSD = Portable (runs on a lot of platforms, including a toaster)
OpenBSD = Security above anything else.

(Potrebbe essere vero, ma non è molto utile. Sono sicuro che anche FreeBSD è portatile e sicuro...)

Se sei sfortunato, rimani catturato in una di quelle inevitabili leggende Unix su progetti che si dividono, si biforcano, rebranding per motivi intellettuali/morali, come Theo de Raadt sia un estremista e come MacOS X e FreeBSD abbiano avuto un antenato comune oltre 20 anni fa.

Affascinante, ma non proprio informativo, vero?

I BSD

I BSD che mi interessano sono:

  • FreeBSD
  • OpenBSD
  • NetBSD

e facoltativamente

  • Libellula
  • Darwin
  • ...

Le mie domande

Per comprendere meglio le differenze, ecco un elenco di domande in qualche modo correlate sulle diverse distribuzioni (possiamo usare questo termine?). Se presenti la tua risposta sotto una forma di dati tabulari, sei il mio eroe di tutti i tempi!

  • Usano lo stesso kernel?
  • Usano gli stessi strumenti userland? (quali sono le differenze, se presenti?)
  • Usano lo stesso sistema di gestione di pacchetti/sorgenti?
  • Usano la stessa shell predefinita?
  • I file binari sono portabili tra loro?
  • Le sorgenti sono portatili tra loro?
  • Usano alberi di directory differenti?
  • Quanto sono grandi le rispettive comunità? Sono dello stesso ordine di grandezza?
  • Quanto della corrente lo sviluppo è comune?
  • Quali sono le principali incompatibilità tra di loro?

Non so quanto sia facile rispondere a queste domande e quanto sia rilevante per il formato StackExchange questa domanda. Semplicemente non mi sono mai imbattuto in un semplice documento che elencasse le differenze tra i BSD in modo chiaro, utile per gli utenti abbastanza esperti da guardare e fare una scelta facilmente.

Risposta accettata:

Non credo che fornirò a te e a tutti la risposta perfetta, tuttavia, utilizzando un sistema BSD tutti i giorni per lavoro, sono sicuro di poterti dare un'idea utile del mondo BSD.
Non l'ho mai fatto usa NetBSD, non ne parlerò molto.

Usano lo stesso kernel?

No, anche se ci sono somiglianze dovute alle forcelle storiche. Ogni progetto si è evoluto separatamente.

Usano gli stessi strumenti userland? (quali sono le differenze, se presenti?)

Tutti seguono POSIX. Puoi aspettarti che una serie di strumenti abbia le stesse funzionalità tra *BSD.
È anche comune vedere alcune ovvie differenze negli strumenti di gestione dei processi/della rete all'interno dei BSD.

Usano lo stesso sistema di gestione di pacchetti/sorgenti?

Forniscono un sistema di confezionamento, diverso per ogni sistema operativo.

Usano la stessa shell predefinita?

No, per esempio FreeBSD usa csh, OpenBSD usa ksh.

I binari sono portabili tra loro?

No:

([email protected] 101)file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.5, dynamically linked (uses shared libs), stripped

In realtà non supportano l'emulazione binaria stabile e veloce. Non fare affidamento su di esso.

Le sorgenti sono portatili tra di loro?

Alcuni sì, purché non utilizzi il codice del kernel o il codice libc (che è strettamente legato al sistema operativo), ad esempio.

Usano diversi alberi di directory?

No, qui sono molto simili a Linux.
Tuttavia FreeBSD sostiene l'uso di /usr/local/etc per i file di configurazione di software di terze parti. OpenBSD mette tutto in /etc…
Mettono tutte le terze parti in /usr/local, mentre la distribuzione Linux farà come meglio crede.
In generale si può dire che *BSD è molto prudente al riguardo, le cose appartengono al loro posto e non è qualcosa da inventare.

Quanto sono grandi le rispettive comunità? Sono dello stesso ordine di grandezza?

FreeBSD è il più grande e attivo, puoi raggiungerlo attraverso molti forum, mailing list, canali IRC e simili…
OpenBSD ha una buona comunità ma per lo più visibile attraverso IRC e mailing list.

Correlati:perché il seguente comando sta uccidendo un sistema?

In realtà, se pensi di aver bisogno di una buona comunità, FreeBSD è la strada da percorrere.
Le comunità NetBSD e OpenBSD sono incentrate sullo sviluppo, parlano di nuovi miglioramenti ecc. A loro non piace molto supportare gli utenti di base o fare pubblicità . Si aspettano che tutti siano utenti Unix avanzati e in grado di leggere la documentazione prima di chiedere qualsiasi cosa.

Quanta parte dello sviluppo attuale è comune?

Dato che il codice delle licenze davvero gratuito può fluire tra i progetti, OpenBSD spesso corregge il proprio codice seguendo NetBSD (poiché i loro sorgenti hanno molto in comune), FreeBSD prende e integra il Packet Filter di OpenBSD, ecc. Ovviamente è più difficile quando si tratta di driver e altri cose del kernel.

Quali sono le principali incompatibilità tra loro?

Non sono compatibili in forma binaria, ma sono per lo più compatibili nella sintassi e nel codice. Puoi fare affidamento su questo per ottenere la portabilità nel tuo codice. Verrà compilato e/o eseguito facilmente su tutte le versioni di BSD, a meno che non ti avvicini troppo al kernel (ifconfig, pfctl...).

Ecco come puoi divertirti ad imparare dal mondo BSD:

Prova a sostituire il tuo router di casa con un box openbsd, gioca con pf e la rete. Vedrai quanto è facile fare quello che vuoi. È pulito, affidabile e sicuro.
Usa un FreeBSD come desktop, supportano molte GPU, puoi usare flash in una certa misura, c'è una certa compatibilità con i binari di Linux. Puoi tranquillamente costruire il tuo kernel personalizzato (in realtà questo è raccomandato). Nel complesso è una buona esperienza di apprendimento.
Prova NetBSD su hardware molto vecchio o persino tostapane.

Sebbene siano diversi, ognuno di essi cerca di essere un buon sistema operativo e corrisponderà agli utenti più delle situazioni. Come esperienza di apprendimento, provali tutti (Netto/Aperto/Gratuito), ma in seguito potresti ritrovarti a utilizzarne solo 1 per la maggior parte delle situazioni (dal momento che sei più esperto in un sistema specifico o ti adatti di più alla comunità).

Gli altri BSD sono ibridi o solo versioni leggermente modificate, trovo meglio stare vicino alla fonte dello sviluppo del software (usa il filtro dei pacchetti su OpenBSD, configura il tuo desktop su FreeBSD, …).

Correlati:Linux:il valore appropriato di vm.swappiness quando si utilizza zram?

Come nota personale, sono felice di vedere un appassionato come te e spero che troverai molte cose buone nel mondo BSD. BSD non significa odiare Windows o altri sistemi operativi, si tratta di apprezzare Unix.


Linux
  1. Cosa c'è di diverso tra /bin/false e /sbin/nologin come shell dell'utente nologin

  2. Quali sono i tipi di server DNS

  3. Qual è la differenza tra strtok_r e strtok_s in C?

  4. Perché abbiamo 3 tipi di selezioni X in LINUX?

  5. Qual è la differenza tra root e sudo?

Qual è la differenza tra Linux e Unix?

Che cos'è un hypervisor? Qual è la differenza tra il tipo 1 e 2?

Qual è la differenza tra curl e Wget?

Qual è la differenza tra fsck ed e2fsck?

Qual è la differenza tra ls e l?

Qual è la differenza tra unlink e rm?