Differenza concettuale tra Linux e kernel (gratuito) BSD


19

(Ho già notato che questa domanda è stata posta prima, ma penso che non abbia ricevuto risposta in un modo in cui mi piacerebbe capire l'argomento.)

Quali sono le differenze concettuali e strutturali tra a

  • Kernel Linux
  • Kernel BSD (diciamo FreeBSD)

Mentre alla fine della giornata sono entrambi kernel, suppongo che potrebbero esserci differenze nella struttura, nella funzionalità e nella specializzazione. In quali scenari un tipo di kernel avrebbe un vantaggio rispetto all'altro? (Server Web, Database, Informatica, ecc.)

Ci sono sforzi congiunti per concentrare le forze per un kernel comune o determinati moduli o sarebbe comunque inutile?

PS: Diversi tipi di licenza o approcci di spedizione / imballaggio / manutenzione non sono importanti in questo contesto. Sono davvero interessato a capire come si differenziano per livello strutturale, funzionale / caratteristica e specializzazione.


Ci sono sforzi congiunti per concentrare le forze per un kernel comune o determinati moduli o sarebbe comunque inutile? Il mio primo pensiero è che cosa potrebbe avere ... creare un terzo kernel "basato interamente su un mix di Linux e FreeBSD"?
Riccioli d'oro,

No, per niente, anzi il contrario: stabilire una cooperazione per parti uguali per entrambi. Penso che per alcuni piloti questo sia già il caso se non sbaglio.
binaryanomaly

1
@binaryanomaly: diverse licenze sono molto importanti per entrambe le parti. Fino a quel punto si potrebbe definire un'ideologia su entrambi i lati della navata. Ad esempio GCC era un punto dolente nei BSD e FreeBSD ora passava a Clang come predefinito per questo motivo: problemi di licenza.
0xC0000022L

1
@ 0xC0000022L: Hai certamente ragione e non volevo dire che le domande sulla licenza non sono importanti - volevo solo che non diventasse il focus principale in questa particolare discussione.
binaryanomaly

Davvero @goldilocks, non puoi vedere il beneficio di una terza cosa che non è né troppo linux, né troppo BSDish, ma giusto ?
Josh Rumbut,

Risposte:


22

1. Quali sono le differenze concettuali e strutturali tra un kernel Linux e un kernel BSD?

Per quanto riguarda l'architettura e le strutture interne, ci sono ovviamente differenze nel modo in cui le cose vengono fatte (es: lvm vs geom , funzionalità di prigione precoce e complessa per FreeBSD, ...), ma nel complesso non ci sono molte differenze tra i due:

  • Il kernel BSD * e il kernel Linux si sono entrambi evoluti da un approccio puramente monolitico a qualcosa di ibrido / modulare.

Tuttavia, ci sono differenze fondamentali nel loro approccio e nella loro storia:

  • Il kernel BSD utilizza la licenza BSD e il kernel Linux utilizza le licenze GPL .
  • Il kernel BSD non è un kernel autonomo ma è sviluppato come parte di un intero . Certo, questo è solo un punto di vista filosofico e non tecnico, ma questo dà coerenza al sistema .
  • I kernel BSD sono sviluppati con un punto di vista più conservativo e più preoccupazione per rimanere coerenti con il loro approccio che per avere funzionalità fantasiose.
  • Il kernel Linux riguarda più i driver, le funzionalità, ... (meglio è).

Come ampiamente affermato altrove :

È Intelligent Design and Order (BSD *) contro Natural Selection and Chaos (GNU / Linux).

2. In quali scenari un tipo di kernel avrebbe un vantaggio rispetto all'altro?

Riguardo alla loro struttura e al loro concetto generali, mentre confrontano un kernel Linux quasi vaniglia e un kernel FreeBSD, sono più o meno dello stesso livello di utilizzo generale , cioè senza alcuna specializzazione particolare (non in tempo reale, non altamente parallelizzato, non orientato al gioco, non incorporato, ...).

Naturalmente ci sono alcune differenze qua e là, come il supporto ZFS nativo o l'architettura geom per FreeBSD rispetto ai molti driver o vari file system per Linux. Ma nulla che alcuni software generali come server Web o database userebbero davvero per fare la differenza. I confronti in questi casi finirebbero probabilmente in una battaglia di sintonia tra i due, niente di grave.

Ma alcuni sostengono che OpenBSD abbia un approccio profondo e coerente alla sicurezza, mentre le distribuzioni Linux rafforzate sono "solo" versioni modificate del kernel Linux vanilla. Questo potrebbe essere vero per un sistema così fortemente specializzato, come Steam-OS sarebbe il numero uno per giocare.

3. Ci sono sforzi congiunti per concentrare le forze per un kernel comune o determinati moduli?

Non vi è alcuno sforzo comune per concentrare le forze per un kernel comune, in quanto vi sono importanti licenze, problemi filosofici o di approccio.

Se esistono veri e propri sforzi comuni come OpenZFS , il più delle volte si tratta più di driver e concetti presi o ispirati l'uno dall'altro.


Le generalizzazioni di Glib sui BSD sono generalmente sbagliate. Nota qui, per esempio, che DragonFly BSD esiste perché essere conservatori non è una generalizzazione che si può applicare al mondo BSD.
JdeBP,

5

Risposta parziale che affronta alcuni dei punti

Le molte opzioni sono spesso percepite come una cosa negativa quando all'esterno guardano allo sviluppo open source ma lo considerano come in natura, ci sono molte specie (spesso) di un tipo di animale, dicono i pinguini. Ce ne sono 17 . Ognuno è specializzato in una particolare serie di requisiti, quindi anche con progetti open source (in genere). La selezione naturale si occuperà di eliminare l'open source meno adatto nel tempo.

Ci sono sforzi congiunti per concentrare le forze per un kernel comune o determinati moduli o sarebbe comunque inutile?

Sarebbe un po 'inutile, a volte è una duplicazione degli sforzi, ma le persone che lavorano su questi componenti non lo fanno nemmeno nel vuoto. Si guarderanno intorno a quello che fanno gli altri e se c'è un approccio o un algoritmo, lo incorporano quando ha senso farlo.

Non posso parlare delle differenze di struttura riguardanti i tuoi altri proiettili, ma ho pensato di affrontarne almeno 2.


Hai sicuramente un punto lì con la specializzazione. D'altra parte scommetterei anche che il DNA dei pinguini è in una percentuale molto alta esattamente lo stesso (come per le scimmie e gli umani) e differisce solo in aree minuscole. La natura è abbastanza brava a evitare sforzi ridondanti, ma differenzia solo quando e dove è necessaria. Miliardi di iterazioni naturali (riproduzione) decidono quindi (selezione) quale dei modelli si adatta meglio alle condizioni ambientali date. (Sta diventando filosofico;)
binaryanomaly

@binaryanomaly - questo è il problema con le analogie Cool. Probabilmente non lo porterei a quel livello poiché la correlazione dei linguaggi di programmazione / codice è più complicata da correlare al DNA.
slm

Bella risposta e un buon confronto usando i pinguini. Spesso dimentichiamo che la duplicazione degli sforzi non è sempre negativa e che un fork di un progetto non è sempre la fine. È davvero più un processo evolutivo, che deve accadere e potrebbe creare nuove idee o fallire miseramente.
Raphael Ahrens,
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.