Cosa c'è di buono nei BSD?


35

Ho usato Ubuntu acceso e spento da Warty Warthog. Stavo pensando di installare Jaunty presto; ma ho notato che durante il fine settimana NetBSD 5.0 , Dragonfly BSD 2.2.1 , OpenBSD 4.5 e FreeBSD 7.2 sono stati tutti rilasciati, quindi mi sono incuriosito:

Cosa c'è di buono nei BSD? Perché dovrei o non dovrei installarne uno invece di Ubuntu? Quali sono i loro principali punti di vendita? Prestazione? Stabilità? Compatibilità hardware? Facilità d'uso? Sicurezza? Funzionano bene su hardware più vecchio? Che cos'è?

Modifica: questo è dal punto di vista di uno sviluppatore desktop (principalmente Java), ma sarei interessato a sapere quali sono i pro e i contro anche per gli altri. Sono più mirati per i server? Per gli utenti aziendali? O cosa?


1
I punti positivi dei BSD sono soggettivi? In tal caso, ciò spiega perché non conosco personalmente nessuno che ne abbia provato uno. : D
mmyers

17
Cosa c'è di buono nei BSD? Per schiacciare i tuoi nemici, guardali guidati davanti a te e ascolta il lamento delle loro donne.
caos,

1
@mmyers - qualcuno dei tuoi amici ha mai usato Hotmail o Yahoo?
ConcernedOfTunbridgeWells,

Ehm, alcuni. Perché?
mmyers

1
@mmeyers - perché sia ​​Hotmail che Yahoo usano FreeBSD come O / S del loro server principale per le loro app web. (O almeno Hotmail lo usava e non potevano spostarlo da FreeBSD a Windows per anni - non sono sicuro che lo facciano ancora).
Preoccupato di

Risposte:


65

Vantaggi dei BSD

La famiglia di sistemi * BSD presenta (IMHO) alcuni vantaggi chiave rispetto a Linux, in particolare per un server O / S.

  • Semplicità e controllo: nessuna delle distribuzioni * BSD ha l'imperativo di aggiungere funzionalità mostrate dai distributori Linux. Pertanto, l'installazione predefinita della maggior parte dei sistemi derivati ​​da BSD è relativamente semplice.

  • Stabilità: parzialmente guidati dalla semplicità, i BSD tendono ad essere tra le piattaforme O / S più stabili in circolazione. FreeBSD (che è uno dei più vecchi dei "moderni" BSD) alimenta molti noti .com come Yahoo e (a un certo punto) hotmail. In effetti, a un certo punto Microsoft ha sofferto un sacco di imbarazzo per la sua incapacità di migrare Hotmail da FreeBSD a Windows.

  • Sicurezza: OpenBSD , in particolare, ha una molto forte track record di sicurezza e di gran parte del loro lavoro strofina fuori sulla comunità * BSD in generale.

  • Portabilità: NetBSD in particolare ha porte su dozzine di piattaforme ed è noto per essere molto facile da portare.

Alcune debolezze

  • Meno supporto per configurazioni SMP di grandi dimensioni rispetto a Linux. Questo diventerà più un problema poiché le scatole con un gran numero di nuclei diventeranno diffuse. Tuttavia, la maggior parte delle applicazioni dei servizi di rete che sono in realtà l'erba domestica di BSD non ha molta fame di CPU (1).

    Le prestazioni SMP sui kernel BSD sono notevolmente migliorate nell'ultimo decennio. Il miglioramento delle prestazioni SMP era uno degli obiettivi principali di Dragonfly BSD e il progetto SMPNg di FreeBSD ha sostanzialmente migliorato le prestazioni SMP su quella piattaforma, superando Linux su piattaforme a 8 core. Ciò significa che ci si può aspettare di ottenere buone prestazioni sui server socket 2 e 4 tradizionali.

    Qualche dibattitoe il lavoro iniziale sulla fornitura del supporto NUMA su FreeBSD esiste poiché il sistema attualmente non supporta le API per l'allocazione della memoria, la gestione dell'affinità o altre strutture per il supporto NUMA esplicito. Un buon primer sul supporto NUMA può essere trovato qui .

  • Gamma più piccola di supporto hardware rispetto a Linux: in pratica, ciò significa solo che è necessario controllare i componenti in un elenco di compatibilità hardware. Per un server questo non è un problema nella maggior parte dei casi, ma l'installazione su un PC desktop casuale è un po 'più spinoso. Devi ancora fare un controllo componente per componente se vuoi che una macchina installi BSD, il che è meno probabile che sia il caso di Linux.

  • Minore enfasi sul desktop: le distribuzioni desktop di Linux (come Ubuntu) tendono ad avere un supporto desktop più ricco per applicazioni multimediali, di emulazione e in bundle. Mentre molte di queste applicazioni hanno porte su varie piattaforme BSD, il supporto immediato di una distribuzione Linux desktop sarà in genere piuttosto migliore.

  • Alcune lacune nel software: molti software commerciali Linux non hanno una porta BSD. Ad esempio, nessuno dei principali fornitori di JVM mantiene una porta nativa del proprio runtime java per nessuna delle piattaforme BSD. In alcuni casi, terze parti mantengono le porte ma non esiste alcun supporto ufficiale (ad esempio) per Oracle su nessuno dei BSD. Questo tipo di gap appare in alcuni punti su BSD; BSD potrebbe non essere la piattaforma adatta a te se lavori in uno spazio in cui esiste questo tipo di gap.

Alcuni punti salienti

  • Una delle grandi guerre di religione degli anni '90 fu GPL contro BSD. I BSD sono concessi in licenza con la licenza BSD, che viene fornita con una serie diversa di diritti rispetto alla GPL. In sostanza, la licenza BSD non richiede la ridistribuzione del codice sorgente delle versioni modificate del software con licenza BSD.

  • I fornitori commerciali come Oracle non supportano BSD in modo simile a quanto supportano Linux. Pertanto, se vuoi lavorare con un prodotto del genere, probabilmente stai meglio con Linux. Tuttavia, la maggior parte offre compatibilità binaria su Linux, System V, Solaris ecc., Quindi è spesso possibile eseguire binari per un altro O / S.

  • Le comunità BSD tendono ad essere eseguite diversamente da Linux e sono spesso più piccole (anche se in molti casi non sono più gentili - Theo De Raadt ha una reputazione come un vasino ).

  • Alcune delle varianti di BSD sono articoli di nicchia di mercato, ottimizzati per obiettivi specifici. Ad esempio, OpenBSD è specificamente ottimizzato per fornire un'infrastruttura di rete sicura su computer con connessione a Internet, con una grande mole di sforzi per ispezionare falle di sicurezza come le vulnerabilità di sovraccarico del buffer. Molte organizzazioni attente alla sicurezza lo usano proprio per questo motivo. NetBSD è progettato per la portabilità con porte su dozzine di piattaforme ed è abbastanza diffuso nei sistemi embedded. Per applicazioni nel punto debole di uno di questi sistemi, potrebbe essere la scelta migliore per la piattaforma.

Il territorio di * BSD è nei servizi di rete: e-mail e web server, infrastrutture e simili. Puoi impostare un desktop geek perfettamente funzionante con uno qualsiasi dei BSD e in teoria potresti produrre qualcosa di caldo e soffice come Ubuntu. Tuttavia, questo non è l'obiettivo principale della maggior parte dei prodotti BSD, sebbene alcuni come PC-BSD mirino a fornire sistemi desktop.

Se vuoi fare un trad unix geek desktop, BSD lo farà esattamente come qualsiasi altro sistema unix-oid.

  1. Ad esempio, nell'era VAX / 4.2BSD degli anni '80 una macchina come un VAX-11/750 poteva fornire servizi di posta elettronica a un intero dipartimento o campus universitario e probabilmente avrebbe svolto anche altri lavori (anche se si dovrebbe notare che la maggior parte delle e-mail erano solo di testo e gli allegati non erano così diffusi come oggi: le unità disco utilizzate su questa macchina in genere variavano da 120 a 450 MB di capacità). Un server moderno ha 3-4 ordini di grandezza in più di potenza e memoria della CPU e un sottosistema di dischi con forse 2 ordini di grandezza in più di throughput e 3-4 ordini di grandezza in più di spazio.

9
Abbinamento particolarmente buono: OpenBSD e BIND. Se avessi in esecuzione un server DNS pubblico sarebbe BIND su OpenBSD. I server DNS vengono attaccati molto e OpenBSD è probabilmente l'unix per scopi generali più sicuro.
Richard Gadsden,

2
Risposta fantastica. Due aspetti aggiungerei: BSD è più piccolo di Linux (quindi può essere eseguito in ambienti più piccoli), ed è meglio documentato (ogni comando in FreeBSD ha una pagina man - tutti !)
Mei,

3
Ho sentito dire che BSD sarebbe quello che otterrai se tu chiedessi a un programmatore Unix di scrivere un sistema operativo per PC, mentre Linux è ciò che otterrai se tu chiedessi a un programmatore di Windows di scrivere un sistema operativo Unix.
gbjbaanb,

1
Bella risposta! Quando ho provato vari sistemi operativi, era Linux come mangrova marsh (documentazione incompleta obsoleta, molte varie filosofie incoerenti) e quando ho provato FreeBSD, è stato come entrare in una libreria - ordinata, filosofo unico coerente, tutto documentato ( aggiornato!). Forse meno eccitante, ma sicuramente facile da approfondire.
slovacco,

3
Non credo sia giusto riferirsi a Theo come a un vasino. Ha opinioni forti e non è diplomatico su di loro, ma non lo giura. La cosa più fastidiosa di Theo De Raadt è che o ha un buon punto o ha ragione :-P
Zio olandese

15

Non considero BSD maturo quanto Linux sul desktop, ma per i server è solido come una roccia.

Se si desidera installare BSD o meno dipende interamente da ciò per cui si utilizza la macchina. Mentre molte cose sono simili a Linux, molte cose sono diverse.

Tuttavia, ecco un riassunto dei diversi BSD

  • OpenBSD: Uno se i suoi obiettivi di posta è quello di essere il sistema operativo più sicuro (e probabilmente lo è)

  • NetBSD: Il suo motto è "Ovviamente eseguirà NetBSD". Questo deve essere uno dei sistemi operativi più portatili in circolazione. Molte persone lo eseguono anche su desktop.

  • FreeBSD: Molto popolare per i server, anche se molte persone lo eseguono anche sul desktop. Probabilmente il più popolare di tutti i BSD

  • DragonFly BSD: un nuovo arrivato relativamente (2003), era un fork di FreeBSD 4.8. Non l'ho usato da solo, ma a quanto pare è stabile.


5
I BSD sono tra le architetture più mature là fuori - parti della base di codice 4.xBSD sono più vecchie di molti poster Serverfault. Puoi facilmente creare un desktop geek unix tradizionale basato su un BSD. Tuttavia, la maggior parte non tenta di produrre un desktop consumer o aziendale come Canonical ha con Ubuntu. Blah blah young whippersnappers ...; -}
ConcernedOfTunbridgeWells

11

Nel mondo Linux, le distribuzioni tendono a mancare in quel ... sentimento coeso. Sono spesso costruiti in modo decentralizzato, il che tende a portare a questo.

I BSD sono generalmente gestiti da una persona, quindi hai la sensazione che ogni variante sia un prodotto reale che ha avuto molta pianificazione dietro di esso. Le cose funzionano molto bene insieme e tutti i componenti sono ben documentati. Raramente trovi kludges.

Ciò pone una base molto solida, rendendo i BSD una piattaforma di facile manutenzione, avendo quindi il potenziale per condurre a un ambiente più sicuro e gestibile.

Sono un utente Linux da 13 anni e, sebbene lo consideri ancora una piattaforma praticabile, ho spostato tutta la mia produzione e i miei server personali nei BSD per i motivi sopra menzionati.

Tuttavia, Linux potrebbe ancora essere la scelta migliore per il desktop a causa del supporto del driver all'avanguardia.


1
In realtà, se si desidera il supporto desktop all'avanguardia, l'opzione migliore è eseguire BSD o Linux in VirtualBox su Windows ;-)
vartec,

@OP, questa è la ragione più convincente per passare da [linux distro] a * bsd
theman_on_osx,

1
O vai a una distro one-man-on-the-top come Slackware;)
voyager

9

BSD è generalmente considerato sicuro per impostazione predefinita, disabilitando tutti i servizi tranne quelli principali. È anche molto stabile, puoi dirlo guardando uno dei tanti servizi di monitoraggio dei tempi di attività.

Attenzione però che Linux non è lo stesso di BSD ... c'è una curva di apprendimento, quindi non aspettarti di saltarci dentro. Ad esempio, troverai tutti i comandi principali, come ad esempio lsavere flag diversi che all'inizio possono essere fonte di confusione e che possono richiedere del tempo per rompere una vecchia abitudine di usare flag Linux.


8

* BSD è un sistema operativo completo , il che significa che il kernel e l'area utente sono sviluppati dallo stesso albero dei sorgenti, mentre le distribuzioni Linux sono macellate insieme da varie fonti. Ecco perché i sistemi BSD sembrano molto più coerenti e solidi. Anche meglio documentato.


8

Solo alcuni problemi:

Pro (gratuito) BSD:

  • File system ZFS / gestione del volume
  • Dtrace per traccia / analisi
  • Documentazione eccellente e facile da trovare (Manuale di FreeBSD, FAQ di OpenBSD, Le pagine del manuale sono davvero buone e in realtà hanno esempi utili)
  • Processo di aggiornamento della versione del sistema operativo pulito e solido
  • Separazione del sistema operativo principale da altri software ("Raccolta porte")
  • Licenza BSD (qui non ci sono crociati di licenza)
  • Ottimo filtro firewall / pacchetti: PF (iptables Linux mi fa esplodere la testa)

Contro BSD:

  • Prodotti di virtualizzazione (host di macchine virtuali) non supportati (VMware, KVM, Xen, VirtualBox)

3
Un aggiornamento sulla virtualizzazione. Sembra che FreeBSD abbia deciso di optare per VirtualBox. Ora è nella struttura dei porti. Maggiori informazioni qui: miwi.bsdcrew.de/2009/06/virtualbox-is-now-available-in-ports wiki.freebsd.org/VirtualBox virtualbox.de/wiki/FreeBSD%20build%20instructions
Paidhi

8

Mi piace molto /usr/ports. Questo non vuol dire che non mi piaccia molto apt-get, ma è una piacevole sensazione sapere che le tue installazioni sono state costruite e per la tua macchina in particolare, con tutte le ottimizzazioni che hai avuto voglia di gettare nelle impostazioni predefinite del makefile.

Quanto del beneficio percepito di ciò è la superstizione, non ho fatto la ricerca per scoprirlo, ma mi piace. :)


1
Quindi è un po 'come Gentoo? Sembra che potrebbe diventare noioso dopo un po '(che è una delle ragioni per cui non ho mai provato Gentoo).
mmyers

6
Il "portage" di Gentoo proviene da BSD, così come altre cose. Tuttavia, molti BSD hanno anche pacchetti binari disponibili in aggiunta. OpenBSD, ad esempio, ha sia porte che pacchetti. In realtà, sono in realtà la stessa cosa.
dwc,

7

Come sviluppatore Java, il grande gotcha è che non esiste una JVM tradizionale per * BSD. Prima che tutti mi infiammino dall'esistenza, ciò che intendo è che non esiste un JDK di spedizione corrente da Sun o da nessuno degli altri principali fornitori (IBM, BEA / Oracle), quindi giocherai sempre secondo violino agli utenti Linux e Windows.


È utile saperlo. Qualcuno sta eseguendo il porting di OpenJDK o qualcosa del genere?
mmyers

Sì, controlla openjdk.java.net/projects/bsd-port . Tuttavia, questa porta non viene eseguita ed è improbabile che sia supportata commercialmente. Lavorando per una società di software basata su Java, supportiamo Sun JVM e Bea e JRocket a malincuore. Non è possibile estendere le risorse di supporto per aiutare qualcuno che volesse eseguire il nostro software su IceTea, Blackdown o GCJ, ecc.
Dave Cheney,

Sì, capisco cosa intendi. (A proposito, hai lasciato fuori il "no" nella tua prima frase. :)
mmyers

Ho appena visto questo post " Avanzamento della porta BSD OpenJDK": robilad.livejournal.com/49303.html .
mmyer

5

Licensing

La principale differenza tra BSD e Linux è la licenza.

Puoi prendere una base di codice BSD, apportare qualsiasi modifica desideri e distribuire il file binario risultante, venderlo, ecc., Senza aprire le modifiche al codice sorgente che hai apportato.

Ciò è molto interessante per le aziende, come Apple, in cui gli obblighi legali nei confronti dei propri azionisti possono richiedere loro di mantenere la proprietà intellettuale "sicura". Apple ha basato alcuni dei suoi kernel su FreeBSD, per esempio.

Tivo non avrebbe avuto i (minori) problemi di licenza che ha sofferto anni fa se si basassero su BSD piuttosto che su Linux.

Alcune differenze pratiche

  • I BSD non sono così popolari come Linux, quindi non dispongono di driver per hardware all'avanguardia.
  • Ci sono meno BSD rispetto alle distribuzioni Linux e sono molto ben definite, quindi sai, in generale, quando dovresti usarne uno sopra l'altro.
  • Si concentrano tutti più sulla stabilità rispetto a molti altri fattori e quindi vengono spesso utilizzati in situazioni di elevata affidabilità.

-Adamo


1
+1. La verità del benchmarking è che i bsds non sono altrettanto buoni e mancano ancora di molte funzionalità del kernel che Linux e Solaris hanno già. La licenza bsd è la parte migliore (o peggiore) di bsd.
Tim Matthews,

La cosa bella dei benchmark è che ci sono così tanti tra cui scegliere. Per le attività di rete / filtro, ho usato BSD con risultati migliori rispetto a Linux --- per la modellazione numerica, ho usato Linux o Solaris con la suite di compilatori Sun Studio .... è tutta una questione di capire qual è il migliore strumento per il lavoro.
Bill B,

4
Sarebbe bello vedere alcune prove di questa affermazione: "La verità del benchmarking è che i bsds non sono altrettanto bravi ..."
Josh Brower,


1

Oltre a tutto ciò che ho già menzionato, vorrei aggiungere che la documentazione è molto buona. Le pagine man (1) sono eccellenti!


0

BSD (Berkeley Software Distribution) noto per la sua stabilità: FreeBSD,
sicurezza: OpenBSD
e supporto di una moltitudine di piattaforme: NetBSD

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.