GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was haben verschiedene Bsds gemeinsam?

… und was sind die Unterschiede zwischen ihnen? Ich habe meine Frage so formuliert, um klarzustellen, dass ich nicht an einem Meinungsstreit interessiert bin, sondern an einem objektiven Vergleich zwischen den verschiedenen Varianten von BSD-Unix. Idealerweise könnte ich Feedback von Benutzern erhalten, die Erfahrung mit allen haben.

Hintergrund

Ich habe kürzlich entdeckt, dass Unix viel mehr ist als nur Linux. Ich benutze Solaris bei der Arbeit, es hat mir die Augen geöffnet. Jetzt interessiere ich mich für neue Unices, ich möchte ein neues ausprobieren und ich bin natürlich neugierig auf BSDs.

Das Problem

Ich bitte nicht um Rat oder Meinung dazu, welches BSD installiert werden soll; Ich möchte die Unterschiede (und Gemeinsamkeiten) zwischen ihnen kennen, damit ich mir eine eigene Meinung bilden kann. Das Problem ist, dass es schwierig ist, richtige Vergleiche zwischen ihnen zu bekommen.

Wenn Sie Glück haben, erhalten Sie eine voreilige Definition wie diese:

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

(Es mag stimmen, aber es ist nicht wirklich nützlich. Ich bin sicher, dass FreeBSD auch portabel und sicher ist …)

Wenn Sie Pech haben, geraten Sie in eine dieser unvermeidlichen Unix-Legenden über Projekte, die sich aus intellektuellen/moralischen Gründen teilen, verzweigen, umbenennen, Theo de Raadt ist ein Extremist und MacOS X und FreeBSD hatten vor über 20 Jahren einen gemeinsamen Vorfahren.

Faszinierend, aber nicht wirklich informativ, oder?

Die BSDs

Die BSDs, an denen ich interessiert bin, sind:

  • FreeBSD
  • OpenBSD
  • NetBSD

und optional

  • Libelle
  • Darwin

Meine Fragen

Um die Unterschiede besser zu verstehen, finden Sie hier eine Liste mit verwandten Fragen zu den verschiedenen Distributionen (können wir diesen Begriff verwenden?). Wenn Sie Ihre Antwort in Form von tabellarischen Daten präsentieren, sind Sie mein Held aller Zeiten!

  • Verwenden sie denselben Kernel?
  • Verwenden sie dieselben Userland-Tools? (was sind die Unterschiede, falls vorhanden?)
  • Verwenden sie dasselbe Paket-/Quellenverwaltungssystem?
  • Verwenden sie dieselbe Standard-Shell?
  • Sind Binärdateien zwischen ihnen portierbar?
  • Sind Quellen zwischen ihnen übertragbar?
  • Verwenden sie unterschiedliche Verzeichnisbäume?
  • Wie groß sind ihre jeweiligen Communities? Sind sie in der gleichen Größenordnung?
  • Wie viel vom Strom Entwicklung ist üblich?
  • Was sind die Hauptinkompatibilitäten zwischen ihnen?

Ich weiß nicht, wie einfach diese Fragen zu beantworten sind und wie relevant diese Frage für das StackExchange-Format wirklich ist. Ich bin nur nie auf ein einfaches Dokument gestoßen, das die Unterschiede zwischen BSDs auf klare Weise auflistet und für ziemlich erfahrene Benutzer nützlich ist, um es anzusehen und leicht eine Auswahl zu treffen.

Akzeptierte Antwort:

Ich glaube nicht, dass ich Ihnen und allen die perfekte Antwort geben werde, aber wenn ich jeden Tag ein BSD-System für die Arbeit verwende, bin ich sicher, dass ich Ihnen einen nützlichen Einblick in die BSD-Welt geben kann.
Das habe ich noch nie getan NetBSD verwenden, ich werde nicht viel darüber reden.

Verwenden sie denselben Kernel?

Nein, obwohl es aufgrund der historischen Gabeln Ähnlichkeiten gibt. Jedes Projekt hat sich separat entwickelt.

Verwenden sie die gleichen Userland-Tools? (Was sind die Unterschiede, falls vorhanden?)

Sie alle folgen POSIX. Sie können davon ausgehen, dass eine Reihe von Tools die gleiche Funktionalität zwischen *BSDs haben.
Es ist auch üblich, einige offensichtliche Unterschiede in den Prozess-/Netzwerkverwaltungstools innerhalb der BSDs zu sehen.

Verwenden sie dasselbe Paket-/Quellenverwaltungssystem?

Sie bieten ein Verpackungssystem, das für jedes Betriebssystem unterschiedlich ist.

Verwenden sie dieselbe Standard-Shell?

Nein, zum Beispiel verwendet FreeBSD csh, OpenBSD verwendet ksh.

Sind Binärdateien zwischen ihnen portierbar?

Nein:

([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

Sie unterstützen keine stabile und schnelle binäre Emulation. Verlassen Sie sich nicht darauf.

Sind Quellen zwischen ihnen übertragbar?

Einige ja, solange Sie zum Beispiel keinen Kernel-Code oder libc-Code (der eng mit dem Betriebssystem verbunden ist) verwenden.

Verwenden sie unterschiedliche Verzeichnisbäume?

Nein, sie sind Linux hier sehr ähnlich.
Allerdings befürwortet FreeBSD die Verwendung von /usr/local/etc für die Konfigurationsdateien von Software von Drittanbietern. OpenBSD legt alles in /etc…
Sie legen alle Drittanbieter in /usr/local, während die Linux-Distribution tut, was sie für richtig halten.
Im Allgemeinen kann man sagen, dass *BSD diesbezüglich sehr konservativ ist, Dinge gehören, wo sie hingehören, und das ist nichts, was man gutmachen kann.

Wie groß sind die jeweiligen Communities? Sind sie in der gleichen Größenordnung?

FreeBSD ist das größte und aktivste, Sie können es über viele verschiedene Foren, Mailinglisten, IRC-Kanäle und dergleichen erreichen…
OpenBSD hat eine gute Community, die aber hauptsächlich über IRC und Mailinglisten sichtbar ist.

Verwandte:Warum tötet der folgende Befehl ein System?

Wenn Sie glauben, dass Sie eine gute Community brauchen, ist FreeBSD genau das Richtige für Sie.
NetBSD- und OpenBSD-Communities konzentrieren sich auf die Entwicklung, sprechen über neue Verbesserungen usw. Sie machen nicht wirklich gerne einfache Benutzerunterstützung oder Werbung . Sie erwarten, dass alle fortgeschrittene Unix-Benutzer sind und in der Lage sind, die Dokumentation zu lesen, bevor sie irgendetwas fragen.

Wie viel von der aktuellen Entwicklung ist üblich?

Aufgrund wirklich freier Lizenzen kann Code zwischen den Projekten fließen, OpenBSD patcht oft seinen Code nach NetBSD (da ihre Quellen viel gemeinsam haben), FreeBSD nimmt und integriert OpenBSDs Packet Filter usw. Es ist offensichtlich schwieriger, wenn es um Treiber und andere geht Kernel-Dinge.

Was sind die Hauptinkompatibilitäten zwischen ihnen?

Sie sind in binärer Form nicht kompatibel, aber sie sind größtenteils kompatibel in Syntax und Code. Sie können sich darauf verlassen, um Portabilität in Ihrem Code zu erreichen. Es lässt sich auf allen BSD-Varianten leicht erstellen und/oder ausführen, außer wenn Sie zu nahe an den Kernel herangehen (ifconfig, pfctl …).

So können Sie gerne von der BSD-Welt lernen:

Versuchen Sie, Ihren Heimrouter durch eine OpenBSD-Box zu ersetzen, spielen Sie mit pf und dem Netzwerk. Sie werden sehen, wie einfach es ist, das zu machen, was Sie wollen. Es ist sauber, zuverlässig und sicher.
Verwenden Sie FreeBSD als Desktop, sie unterstützen viele GPUs, Sie können bis zu einem gewissen Grad Flash verwenden, es gibt eine gewisse Kompatibilität mit Linux-Binärdateien. Sie können Ihren benutzerdefinierten Kernel sicher erstellen (eigentlich wird dies empfohlen). Es ist insgesamt eine gute Lernerfahrung.
Probieren Sie NetBSD auf sehr alter Hardware oder sogar auf Toastern aus.

Obwohl sie unterschiedlich sind, versucht jeder von ihnen, ein gutes Betriebssystem zu sein, und es passt mehr zu Benutzern als zu Situationen. Probieren Sie sie als Lernerfahrung alle aus (Net/Open/Free), aber später werden Sie vielleicht feststellen, dass Sie für die meisten Situationen nur 1 verwenden (da Sie sich in einem bestimmten System besser auskennen oder besser in die Community passen). P>

Die anderen BSDs sind Hybride oder nur leicht modifizierte Versionen, ich finde es besser, nahe an der Quelle der Softwareentwicklung zu bleiben (benutze Paketfilter auf OpenBSD, konfiguriere deinen Desktop auf FreeBSD, …).

Verwandte:Linux – der geeignete Wert von vm.swappiness bei Verwendung von zram?

Als persönliche Anmerkung freue ich mich, einen Enthusiasten wie Sie zu sehen, und ich hoffe, Sie werden viele gute Dinge in der BSD-Welt finden. Bei BSD geht es nicht darum, Windows oder andere Betriebssysteme zu hassen, es geht darum, Unix zu mögen.


Linux
  1. Was ist der Unterschied zwischen InnoDB und MyISAM?

  2. Gemeinsame Linien zwischen zwei Dateien?

  3. Was ist der Unterschied zwischen /bin/false und /sbin/nologin als Shell des nologin-Benutzers?

  4. Welche Arten von DNS-Servern gibt es?

  5. Was ist der Unterschied zwischen arm64 und armhf?

Was ist der Unterschied zwischen Linux und Unix?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?

Kann ein Prozess einen Besitzer haben? Was bedeutet das?

Was ist der Unterschied zwischen remount zu umount/mount?

Was ist der Unterschied zwischen unlink und rm?