Was haben verschiedene BSDs gemeinsam?

62

... und was sind die Unterschiede zwischen ihnen? Ich habe meine Frage so formuliert, um zu verdeutlichen, dass ich nicht an einer Flamme von Meinungen interessiert bin, sondern an einem objektiven Vergleich der verschiedenen Varianten von BSD Unix. Idealerweise könnte ich Feedback von Benutzern erhalten, die Erfahrung in allen von ihnen haben.

Hintergrund

Ich habe kürzlich entdeckt, dass Unix viel mehr bietet als nur Linux. Ich benutze Solaris bei der Arbeit, es öffnete meine Augen. Jetzt interessiere ich mich für neue Unices, ich möchte eine neue ausprobieren und bin natürlich neugierig auf BSDs.

Das Problem

Ich frage nicht nach Ratschlägen oder Meinungen, welche BSD installiert werden soll . Ich möchte die Unterschiede (und Gemeinsamkeiten) zwischen ihnen kennen, damit ich mich selbst entscheiden kann. Das Problem ist, dass es schwierig ist, richtige Vergleiche zwischen ihnen zu erhalten.

Wenn Sie Glück haben, erhalten Sie eine hastige 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 wahr sein, aber es ist nicht wirklich nützlich. Ich bin mir sicher, dass FreeBSD auch portabel und sicher ist ...)

Wenn Sie Pech haben, werden Sie in eine dieser unvermeidlichen Unix-Legenden verwickelt, in der es um Projekte geht, die sich aus intellektuellen und moralischen Gründen aufteilen, forken und umbenennen, wie Theo de Raadt ein Extremist ist und wie MacOS X und FreeBSD vor über 20 Jahren einen gemeinsamen Vorfahren hatten.

Faszinierend, aber nicht wirklich informativ, oder?

Die BSDs

Die BSDs, die mich interessieren, sind:

  • FreeBSD
  • OpenBSD
  • NetBSD

und optional

  • Libelle
  • Darwin
  • ...

Meine Fragen

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

  • Verwenden sie den gleichen Kernel?
  • Verwenden sie die gleichen Userland-Tools? (Was sind die Unterschiede, falls vorhanden?)
  • Verwenden sie dasselbe Paket- / Quellcodeverwaltungssystem?
  • Verwenden sie dieselbe Standardshell?
  • Sind Binärdateien zwischen ihnen portierbar?
  • Sind Quellen zwischen ihnen portierbar?
  • Verwenden sie unterschiedliche Verzeichnisbäume?
  • Wie groß sind ihre jeweiligen Gemeinschaften? Sind sie gleich groß?
  • Wie viel von der aktuellen Entwicklung ist gemeinsam?
  • Was sind die Hauptunverträglichkeiten zwischen ihnen?

Ich weiß nicht, wie einfach diese Fragen zu beantworten sind und wie relevant diese Frage für das StackExchange-Format ist. Ich bin einfach nie auf ein einfaches Dokument gestoßen, in dem die Unterschiede zwischen BSDs übersichtlich aufgelistet sind. Dies ist nützlich, damit erfahrene Benutzer sich die Auswahl leicht ansehen und treffen können.

rahmu
quelle
13
Dies ist eine großartige Frage, +1
Nr.
4
Ich war mir zu 100% sicher, dass der Toaster ein Witz war ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx
haha gut, es war nur eine Demo. Mir gefällt, wie der Brennwert auf dem Bildschirm über 200% zu liegen scheint.
Aki

Antworten:

50

Ich glaube nicht, dass ich Ihnen und jedem die perfekte Antwort geben werde. Wenn ich jedoch 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. Ich habe NetBSD nie benutzt, ich werde nicht viel darüber reden.

Verwenden sie den gleichen Kernel?

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

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

Sie folgen alle POSIX. Es ist zu erwarten, dass eine Reihe von Tools dieselbe Funktionalität wie * BSD aufweist. Es ist auch üblich, einige offensichtliche Unterschiede in den Prozess- / Netzwerkmanagement-Tools innerhalb der BSDs festzustellen.

Verwenden sie dasselbe Paket- / Quellcodeverwaltungssystem?

Sie bieten ein für jedes Betriebssystem unterschiedliches Verpackungssystem.

Verwenden sie dieselbe Standardshell?

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

Sind Binärdateien zwischen ihnen portierbar?

Nein:

(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

Sie unterstützen keine stabile und schnelle binäre Emulation. Verlasse dich nicht darauf.

Sind Quellen zwischen ihnen portierbar?

Einige ja, solange Sie nicht 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. FreeBSD befürwortet jedoch die Verwendung von / usr / local / etc für Konfigurationsdateien von Drittanbietern. OpenBSD legt all in / etc ... ab. Sie legen alle Drittanbieter in / usr / local ab, wohingegen die Linux-Distribution das tut, was sie für richtig halten. Im Allgemeinen kann man sagen, dass * BSD diesbezüglich sehr konservativ ist, Dinge dahin gehören, wo sie hingehören, und dass man sich das nicht ausdenken kann.

Wie groß sind ihre jeweiligen Gemeinschaften? Sind sie gleich groß?

FreeBSDs ist das größte und aktivste. Sie können es über eine Vielzahl von Foren, Mailinglisten, IRC-Kanälen und dergleichen erreichen. OpenBSD hat eine gute Community, ist aber meistens über IRC- und Mailinglisten sichtbar.

Wenn Sie denken, Sie brauchen eine gute Community, ist FreeBSD der richtige Weg. 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 jeder fortgeschrittene Unix-Benutzer ist und die Dokumentation lesen kann, bevor er etwas fragt.

Wie viel von der aktuellen Entwicklung ist gemeinsam?

Aufgrund der Tatsache, dass wirklich freie Lizenzen Code zwischen den Projekten fließen können, bessert OpenBSD häufig seinen Code nach NetBSD aus (da ihre Quellen eine Menge gemeinsam haben), FreeBSD übernimmt und integriert OpenBSDs Paketfilter usw. Es ist offensichtlich schwieriger, wenn es um Treiber und andere geht Kernel Dinge.

Was sind die Hauptunverträglichkeiten zwischen ihnen?

Sie sind in binärer Form nicht kompatibel, aber sie sind meistens in Syntax und Code kompatibel. Darauf können Sie sich verlassen, um Portabilität in Ihrem Code zu erreichen. Es kann problemlos auf allen BSD-Versionen erstellt oder / und ausgeführt werden, es sei denn, Sie befinden sich zu nahe am Kernel (ifconfig, pfctl ...).

So können Sie Spaß daran haben, aus der BSD-Welt zu lernen:

Versuchen Sie, Ihren Heimrouter durch eine OpenBSD-Box zu ersetzen, und 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 ein FreeBSD als Desktop, sie unterstützen viele GPUs, Sie können Flash in gewissem Umfang verwenden, es gibt eine gewisse Kompatibilität mit Linux-Binärdateien. Sie können Ihren benutzerdefinierten Kernel sicher erstellen (dies wird empfohlen). Es ist insgesamt eine gute Lernerfahrung. Probieren Sie NetBSD auf sehr alter Hardware oder sogar auf Toastern aus .

Obwohl sie unterschiedlich sind, versucht jedes von ihnen, ein gutes Betriebssystem zu sein, und es wird den Benutzern mehr als nur Situationen entsprechen. Als Lernerfahrung sollten Sie alle ausprobieren (Net / Open / Free), aber später werden Sie möglicherweise in den meisten Situationen nur 1 verwenden (da Sie sich in einem bestimmten System besser auskennen oder sich besser in die Community einfügen).

Die anderen BSDs sind Hybride oder nur leicht modifizierte Versionen. Ich finde es besser, in der Nähe der Quelle der Softwareentwicklung zu bleiben (Paketfilter unter OpenBSD verwenden, Desktop auf FreeBSD konfigurieren, ...).

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

Aki
quelle
5
Nach unten scrollen Ich war mir sicher, dass dies eine Antwort von Gilles war. Vielen Dank für eine tolle Antwort, obwohl Aki!
Nr.
2
@MaxMackie - Ich weiß, was du meinst, ich dachte das gleiche! :-)
Chris Down
2
Haha, ich bin hier nicht wirklich aktiv, also weiß ich nicht, wer Gilles ist, aber ich freue mich darauf, seine Antwort zu lesen!
Aki
1
Ein großes Dankeschön für eine tolle Antwort! Der letzte Teil hat mir besonders gut gefallen. Ich habe gerade FreeBSD auf einer virtuellen Maschine installiert. Mal sehen, wie es geht ...
rahmu
6
+1 für den letzten Satz. Aber ich wünschte ich könnte +2 für das ganze
Shiplu Mokaddim 16.12.12
16

(Ich kann keine vollständige Antwort geben, aber ich kann mich auch nicht von dieser Frage abwenden, also werde ich nur einige Punkte ansprechen ... FreeBSD war das am häufigsten verwendete BSD (im Jahr 2005) , also versuche ich es Hinweise zu "den anderen" geben.)

  • Zunächst einmal haben Sie Recht , die einzeiligen Erklärungen zu verwerfen. OpenBSD steht unter dem Motto "Kostenlos, funktional und sicher" und die NetBSD-Entwickler bemühen sich auch, ein funktionales System zu erstellen.
  • Binärkompatibilität : Sie können anscheinend FreeBSD-Binärdateien unter NetBSD ausführen (was ich noch nie versucht habe). Dies ist die einzige Form der Binärkompatibilität zwischen den mir bekannten BSDs (abgesehen von NetBSDs und FreeBSDs (eingeschränkter) Linux-Binärkompatibilität).
  • ports : NetBSD- und DragonFlyBSD-Ports verwenden pkgsrc, OpenBSDs sind hier , FreeBSDs hier . Sie können sich darauf beziehen, um verfügbare Pakete zu vergleichen. Die jeweiligen Ökosysteme sind ähnlich, aber nicht identisch.
    • pkgsrczeichnet sich dadurch aus, dass es portabel ist, dh Sie können es auch mit Minix 3 oder Linux verwenden. Daher besteht kein BSD-Interesse daran und (möglicherweise in der Folge) gibt es mehr Ports. pkgsrc-wipmacht es einfach beizutragen.
  • NetBSD hat kürzlich ein gründliches Automatic Testing Framework eingeführt (siehe auch kyua), das es ihnen ermöglicht, automatisierte Tests durchzuführen (und rumpes ermöglicht, Kernel-Code im Userspace testen zu lassen). Es hat auch die gründlichste XEN-Unterstützung, denke ich. Ausgehend von der Suche nach "Portabilität" führten sie drei Ebenen ein: "Focus", "Organic" und "Life Support" . Sie führten Lua auch in das Basissystem ein.
  • Um die Drift von fangen OpenBSD , diese „Papiere“ (meist schön Dias) sind eine wertvolle Ressource und geben Ihnen einen Einblick über die jüngsten Entwicklungen in OpenBSD.
  • DragonFlyBSD hat seinen eigenen ZFS-Anwärter HAMMER entwickelt , der anscheinend viel weniger speicherhungrig ist (wahrscheinlich nicht so vollständig, wie ich nicht sagen kann).
  • Ich bin nicht mit @Aki auf dem zustimmen Mangel an Unterstützung mit OpenBSD oder NetBSD, mit Blick auf der Mailinglist, bieten beide hilfreich Gemeinden - haben einen Blick selbst - auf eine manpage bezeichnet wird , ist kein Vergehen.

Endeffekt? Schauen Sie sich um und probieren Sie es aus. Die Verwendung von Binärpaketen (normalerweise mit einer Binärversion angeboten, dh nicht für Snapshots von -current) ist nicht sehr aufwändig, um ein verwendbares BSD-System zu erhalten.

Bearbeiten Sie könnten in ihren Planeten interessieren: undeadly.orgfür OpenBSD, blogs.FreeBSDish.org für FreeBSD und planet.netbsd.sefür alle von ihnen ( nach unten ? Im Moment ())

sr_
quelle
5
Gute Antwort. Ich denke, es gibt so viel zu erzählen, dass es sich lohnen würde, ein Blatt Papier zu schreiben. Ich wollte nicht sagen, dass OpenBSD-Community nicht hilfreich ist. Ich habe etwas über die Binärkompatibilität recherchiert, es gibt noch mehr: netbsd.org/docs/compat.html und compat_linux unter OpenBSD. Offenbar war Open früher mit Freebsd-Binärkompatibel: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Wie Sie sagten, ist es begrenzt und ich würde mich nicht darauf verlassen.
Aki