Cosa hanno in comune i diversi BSD?


62

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

sfondo

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

Il problema

Non sto chiedendo consigli o opinioni su quale BSD installare ; Voglio conoscere le differenze (e i punti comuni) tra loro in modo da poter prendere una decisione. Il problema è che è difficile ottenere un confronto adeguato 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, verrai catturato in una di quelle inevitabili leggende di Unix sui progetti di divisione, biforcazione, rebranding su basi intellettuali / morali, su come Theo de Raadt sia un estremista e su come MacOS X e FreeBSD avessero un antenato comune oltre 20 anni fa.

Affascinante, ma non molto 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 qualche 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 ce ne sono?)
  • Usano lo stesso sistema di gestione di pacchetti / sorgenti?
  • Usano la stessa shell predefinita?
  • I binari sono portatili tra loro?
  • Le fonti sono portatili tra loro?
  • Usano alberi di directory diversi?
  • Quanto sono grandi le loro rispettive comunità? Sono dello stesso ordine di grandezza?
  • Quanto dello sviluppo attuale è 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 è davvero. Non mi sono mai imbattuto in un semplice documento che elenchi le differenze tra i BSD in modo chiaro, utile per gli utenti abbastanza esperti da guardare e fare una scelta facilmente.


13
Questa è un'ottima domanda, +1
n0pe

4
Ero sicuro al 100% che il tostapane fosse uno scherzo ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx

ahah beh era solo una demo. Mi piace come il burnlevel sembra essere superiore al 200% sullo schermo.
Aki l'

Risposte:


50

Non credo che fornirò a te e a tutti la risposta perfetta, tuttavia, usando un sistema BSD ogni giorno per lavoro, sono sicuro di poterti dare una visione utile nel mondo BSD. Non ho mai usato 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 ce ne sono?)

Seguono tutti POSIX. Puoi aspettarti che un set di strumenti abbia la stessa funzionalità tra * BSD. È anche comune vedere alcune ovvie differenze negli strumenti di gestione di processo / rete all'interno dei BSD.

Usano lo stesso sistema di gestione di pacchetti / sorgenti?

Forniscono un sistema di packaging, diverso per ciascun sistema operativo.

Usano la stessa shell predefinita?

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

I binari sono portatili tra loro?

No:

(XXXX@freebsd-6 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

Non supportano realmente l'emulazione binaria stabile e veloce. Non fare affidamento su di esso.

Le fonti sono portatili tra loro?

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

Usano alberi di directory diversi?

No, sono molto simili a Linux qui. Comunque FreeBSD raccomanda l'uso di / usr / local / etc per i file di configurazione del 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 puoi dire che * BSD è molto conservatore a riguardo, le cose appartengono a dove appartengono e non è qualcosa da inventare.

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

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

In realtà se pensi di aver bisogno di una buona comunità, FreeBSD è la strada da percorrere. Le community di NetBSD e OpenBSD sono incentrate sullo sviluppo, parlano di nuovi miglioramenti, ecc. Non amano fare supporto o pubblicità di base per gli utenti. Si aspettano che tutti siano utenti unix avanzati e in grado di leggere la documentazione prima di chiedere qualsiasi cosa.

Quanto dello sviluppo attuale è comune?

A causa del codice delle licenze davvero gratuito che può fluire tra i progetti, OpenBSD spesso corregge il loro codice seguendo NetBSD (poiché le loro fonti hanno molto in comune), FreeBSD prende e integra il filtro pacchetti di OpenBSD, ecc. È ovviamente più difficile quando si tratta di driver e altri cose del kernel.

Quali sono le principali incompatibilità tra di 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. Costruirà o / ed eseguirà facilmente su tutte le versioni di BSD, tranne se si sta avvicinando troppo al kernel (ifconfig, pfctl ...).

Ecco come puoi divertirti imparando dal mondo BSD:

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

Sebbene siano diversi, ognuno di essi cerca di essere un buon sistema operativo e corrisponderà agli utenti più che alle situazioni. Come esperienza di apprendimento, provali tutti (Net / Open / Free), ma in seguito potresti ritrovarti a utilizzare solo 1 per la maggior parte delle situazioni (dal momento che sei più esperto in un sistema specifico o in forma con la community).

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

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


5
Scorrendo verso il basso ero sicuro che questa fosse una risposta di Gilles. Grazie per un'ottima risposta anche se Aki!
n0pe

2
@MaxMackie - So cosa intendi, stavo pensando la stessa cosa! :-)
Chris Down

2
Haha, non sono molto attivo qui, quindi non so chi sia Gilles, ma non vedo l'ora di leggere la sua risposta!
Aki,

1
Un grande grazie per un'ottima risposta! Mi è piaciuta particolarmente l'ultima parte. Ho appena installato FreeBSD su una macchina virtuale. Vediamo come va ...
Rahmu,

6
+1 per l'ultima frase. Ma vorrei poter fare +2 per l'intero
Shiplu Mokaddim il

16

(Non posso dare una risposta completa, ma non riesco nemmeno ad abbandonare questa domanda, quindi ... Affronterò solo alcuni punti ... FreeBSD è stato il BSD più usato (nel 2005) , quindi provo offrire alcuni indizi riguardanti "gli altri").

  • Prima di tutto, hai ragione a respingere le spiegazioni di una riga , il motto di OpenBSD è "gratuito, funzionale e sicuro" e gli sviluppatori di NetBSD si sforzano anche di creare un sistema funzionale.
  • compatibilità binaria : apparentemente puoi eseguire i binari di FreeBSD su NetBSD (cosa che non ho mai provato). Questa è l'unica forma di compatibilità binaria tra i BSD che conosco (a parte la compatibilità binaria Linux (limitata) di NetBSD e FreeBSD).
  • porte : le porte di NetBSD e DragonFlyBSD usano pkgsrc, le porte di OpenBSD sono qui , FreeBSD è qui . Puoi fare riferimento a quello per confrontare i pacchetti disponibili. I rispettivi ecosistemi sono simili ma non identici.
    • pkgsrcsi distingue per essere portatile, ovvero puoi usarlo anche con Minix 3 o Linux. Pertanto, vi è un interesse non BSD in esso e (forse di conseguenza) ci sono più porte. pkgsrc-wiprende facile contribuire.
  • NetBSD ha recentemente introdotto un accurato Framework di test automatici (vedi anche kyua) che consente loro di eseguire test automatici (e c'è rump, rendendo possibile testare il codice del kernel nello spazio utenti). Ha anche il supporto XEN più completo, credo. Partendo un po 'dalla ricerca "portabilità", hanno introdotto tre livelli: "Focus", "Organico" e "Supporto vitale" . Hanno anche introdotto Lua nel sistema di base.
  • Per catturare la deriva di OpenBSD , questi "documenti" (per lo più belle diapositive) sono una risorsa preziosa e ti danno un'idea dei recenti sviluppi in OpenBSD.
  • DragonFlyBSD ha sviluppato il proprio contendente ZFS, HAMMER , che a quanto pare ha molta meno fame di memoria (probabilmente non come funzionalità completa, non posso dirlo).
  • Non sono d'accordo con @Aki sulla mancanza di supporto con OpenBSD o NetBSD, guardando le mailing list, entrambi offrono comunità utili - dai un'occhiata a te stesso - fare riferimento a una manpage non è offensivo.

Linea di fondo? Dai un'occhiata in giro e provali. Usando i pacchetti binari (di solito offerti con una versione binaria, cioè non per le istantanee da -current), non è molto lavoro per ottenere un sistema BSD utilizzabile.

Modifica Potreste essere interessati a loro pianeti: undeadly.orgper OpenBSD, blogs.FreeBSDish.org per FreeBSD e planet.netbsd.seper tutti loro ( verso il basso ? Al momento ())


5
Bella risposta. Penso che ci sia così tanto da dire, che meriterebbe di scrivere un documento. Non intendevo dire che la comunità OpenBSD non sia utile. Ho fatto qualche ricerca sulla compatibilità binaria, c'è di più: netbsd.org/docs/compat.html e compat_linux su OpenBSD. Apparentemente Open aveva una compatibilità binaria con freebsd: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Come hai affermato, è limitato e non mi baserei su di esso.
Aki,
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.