FreeBSD ist ein Unix-ähnliches Betriebssystem und eine Iteration der älteren Unix-Distributionen, besser bekannt als das Research Unix. Es ist quelloffen und öffentlich frei verfügbar und eigentlich nur eine der vielen Berkeley Software Distributionen (abgekürzt BSD, daher heißt das Betriebssystem FreeBSD), die anderen bemerkenswerten Iterationen sind OpenBSD, NetBSD und DragonFly BSD.
Linux, als eine Ableitung von Unix, hat natürlich viel mit den BSDs gemeinsam. Wie BSD sind auch die Linux-Distributionen frei und quelloffen. Trotz der grundlegenden Gemeinsamkeiten hat Linux die BSDs in ihrer Popularität weitgehend in den Schatten gestellt, denn über 74 % der modernen Smartphones basieren auf Linux.
Das wirft die Frage auf: Wenn BSD und Linux nur Iterationen von Forschungs-Unix sind, was genau unterscheidet sie dann?
Nun, die Unterschiede zwischen den beiden liegen in den Grundlagen, und die Unterschiede sind sehr zahlreich. Aber sie alle in einem einzigen Beitrag zu lesen, wäre für die Leser ziemlich mühsam. Daher wird sich dieser Beitrag nur auf die Grundlagen konzentrieren und die komplizierten Details weglassen, um die Kürze zu wahren und die neuen Leser nicht einzuschüchtern.
Aber was ist Linux wirklich?
Das erste, was viele Leute falsch verstehen, ist, dass Linux ein Kernel ist, kein Betriebssystem. Das macht es also nur zu einem Teil des Betriebssystems, nicht zum Betriebssystem selbst.
Lassen Sie uns kurz über Kernels sprechen. Der Kernel ist der Dreh- und Angelpunkt eines jeden Betriebssystems, da er den gesamten zugrunde liegenden Code enthält, auf dem das Betriebssystem aufbaut. Er ermöglicht und beschleunigt die Interaktion zwischen den Hardware- und Softwarekomponenten eines Systems, verwaltet die Ein- und Ausgabeanforderungen an und von den Softwareanwendungen und ist auch für die Handhabung der Hardwaregeräte verantwortlich.
Kurz gesagt, ist ein Kernel das wichtigste Merkmal eines jeden Betriebssystems, auf dem es basiert, und ist daher in einen sehr schützenden Teil des Systemspeichers zurückgezogen, in dem alle Zugriffsanfragen von Anwendungen abgelehnt werden, mit Ausnahme einiger weniger, die für den Betrieb des Systems wichtig sind.
Nachdem wir nun wissen, was ein Kernel ist, können wir uns ansehen, was Linux als Kernel im Betriebssystem tut.
Linux-Kernel innerhalb eines Betriebssystems
Zu den beliebtesten Linux-basierten Betriebssystemen gehören Debian, Ubuntu, Fedora und Deepin. Wenn Sie also jemanden sagen hören, dass er Linux benutzt, sollten Sie wissen, dass es sich dabei um eine dieser Distributionen handelt. Diese Distributionen sind „Linux-basiert“, weil sie auf dem Linux-Kernel aufgebaut sind. Die Anpassungen am Kernel und die neuen Anwendungen, die in den Kernel geladen werden, unterscheiden jede Distribution von der anderen.
Was ist BSD, und wie unterscheidet es sich von Linux?
Wie bereits erwähnt, sind die verschiedenen BSD-Distributionen alle Betriebssysteme. Und das macht BSD, wie Linux, zu einem Kernel.
Aber um die Sache kompliziert zu machen, ist BSD auch ein eigenständiges Betriebssystem, was Linux nicht ist. Lassen Sie uns erklären, wie genau.
Für BSD-Distributionen werden dem BSD-Kernel mehrere Programme hinzugefügt. Diese Kombination wird dann als eigenständiges, komplettes Paket veröffentlicht, das installiert werden muss, und schon ist das Ding einsatzbereit. Der Hauptunterschied zwischen BSD-Distributionen wie FreeBSD, OpenBSD usw. liegt also in den Programmen, die dem Kernel des Betriebssystems hinzugefügt werden. Um zusätzliche Softwarepakete herunterzuladen, verwenden BSD-Benutzer das Ports-System, das diese Pakete in Quellform bereithält. Der Quellcode wird jedes Mal, wenn die Software gestartet wird, vom System kompiliert. Während sich dies als mühsam erweisen kann, insbesondere wenn längere, kompliziertere Codes ausgeführt werden, können BSD-Systeme den Kompilierungsschritt bei jedem Start vollständig überspringen, wenn das Programm in einem binären Zustand installiert ist, wodurch der Prozess in hohem Maße erleichtert wird.
Linux unterscheidet sich von BSD in der Hinsicht, dass jede seiner Distributionen völlig unterschiedliche Programme verwendet und die Distributionen kein zentrales Repository für Softwarepakete haben, da jede Distribution ihr eigenes Repository hat.
Unterschiede in der Lizenzierung
Einer der grundlegenden Unterschiede zwischen BSD und Linux ist das Lizenzsystem, unter dem ihre Distributionen veröffentlicht werden.
Wenn Sie Software aus dem Ports-Repository von BSD herunterladen oder eine Distribution als Ganzes installieren, wird Ihnen die Software oder die Distribution unter der BSD-Lizenz zur Verfügung gestellt, die ein von den BSD-Entwicklern verwendetes Lizenzsystem ist. Obwohl BSD derzeit vollständig quelloffen und frei ist, erlaubt das BSD-Lizenzsystem den Entwicklern, BSD jederzeit als Closed-Source zu deklarieren. Als FreeBSD-Benutzer haben Sie keinen rechtlichen Anspruch auf weitere Veröffentlichungen der BSD-Entwickler. Die BSD-Entwickler haben jedoch öffentlich bekannt gegeben, dass sie die Absicht haben, BSD auch in Zukunft als Open-Source-Version anzubieten.
Linux-Distributionen werden unter der GNU General Public License (GPL) veröffentlicht. Unter diesem Lizenzsystem sind die Linux-Entwickler rechtlich gezwungen, jede einzelne Änderung am Linux-Kernel zu veröffentlichen. Das Lizenzsystem stellt im Wesentlichen sicher, dass Linux Open-Source bleibt, unabhängig davon, welche Änderungen am Kernel selbst vorgenommen werden.
Warum ist Linux beliebter? (Spoiler: Software-Verfügbarkeit)
Wenn Sie sich die ganze Zeit gefragt haben, warum Sie von BSDs nicht so viel gehört haben wie von Linux-Distributionen, hier ist der Grund: Wenn es um Software-Kompatibilität geht, ist Linux einfach unschlagbar. Für jede Software, die es gibt, gibt es eine Linux-kompatible Version. Dies ist bei FreeBSD nicht der Fall, das aus diesem Grund weitgehend vernachlässigt wird.
Der Linux-Kernel macht das Schreiben und Verteilen von Softwareprogrammen im Vergleich zu anderen Kerneln einfacher, so dass Entwickler natürlich geneigt sind, auf Linux-Versionen hinzuarbeiten. Vor allem die Verteilung wird durch das vorinstallierte Binärpaketsystem, das es ermöglicht, noch einfacher. Unter Linux können Softwarepakete über Paketmanager wie apt, yum, Pacman usw. heruntergeladen und installiert werden.
Im Vergleich zur Softwareverteilung unter Linux haben es BSD-Benutzer viel schwerer. Die Softwarepakete werden in BSD zunächst als Quellcode über das Ports-System heruntergeladen. Diese Quellcodes werden dann bei jedem Start kompiliert, ein Prozess, der im modernen Zeitalter, in dem Software auf Knopfdruck installiert wird, sowohl zeitaufwändig als auch frustrierend ist. Für die Entwickler ist dies ebenso frustrierend, da sie sich sehr anstrengen müssen, um die Kompilierung so schnell wie möglich durchzuführen.
Obwohl die Einführung von vorkompilierten Binärpaketen den Prozess der Softwarebeschaffung in FreeBSD weitgehend entschärft hat, bleibt die Softwareverfügbarkeit immer noch ein enormes Problem für BSD.
Wahl zwischen Linux und BSD
Abgesehen von den Mainstream-Betriebssystemen Windows und IOS sind die Linux-Distributionen allen anderen Betriebssystemen da draußen weit voraus. Es ist kostenlos, quelloffen und hat alles zu bieten, was FreeBSD auch hat, nur ohne die Einschränkungen.
BSD und Linux haben viel mehr Gemeinsamkeiten als Unterschiede, wobei die Lizenzierung und die Softwareverteilung die einzigen Kernunterschiede sind. Doch trotz der Ähnlichkeiten ist die Verwendung des einen ein Kompromiss des anderen.
Einerseits unterhält FreeBSD eine Bibliothek von Werkzeugen und Abhängigkeiten über alle Distributionen hinweg, was es den Entwicklern erleichtert, den Inhalt zu wiederholen und eigene Anwendungen zu entwickeln. Hier hat FreeBSD einen erheblichen Vorteil gegenüber Linux, da die in Linux enthaltene GNU-Suite dies nicht zulässt.
Auf der anderen Seite schränkt die mangelnde Softwarekompatibilität und -verfügbarkeit die Erfahrung mit FreeBSD stark ein. Dieses Problem kann durch die Verwendung des Linux-Kompatibilitätspakets gelöst werden, das es ermöglicht, Linux-Software auf BSD-Distributionen laufen zu lassen, aber dies ist ein zusätzlicher Schritt, der die Erfahrung trotzdem behindert.
Was die Lizenzierung angeht, so ist die Linux-GPL-Lizenz viel restriktiver als die BSD-Lizenzierung. Entwickler oder Benutzer können keine Änderungen am Linux-Kernel oder Quellcode vornehmen, ohne diese zu veröffentlichen. BSD-Benutzer haben keine solchen Verpflichtungen; daher sollten Entwickler BSD zumindest ausprobieren. Die Möglichkeit, den Quellcode privat zu halten, ist ein erheblicher Vorteil, den Linux nicht bietet.
Die Lizenzierung für Linux-Distributionen ist einseitig zugunsten der Benutzer, da sie bestätigt, dass jede Entwicklung, die zur Verbesserung von Anwendungen für das System vorgenommen wird, den Benutzern zur Verfügung gestellt wird. Die BSD-Lizenzierung hingegen ähnelt eher der Standardlizenzierung, die es den Benutzern erlaubt, BSDs kostenlos zu installieren, aber die Entwickler nicht dazu verpflichtet, ihre Inhalte zu veröffentlichen.
Unsere Empfehlung
Wir würden eine Linux-Distribution empfehlen, wenn Sie sie für allgemeine Zwecke verwenden wollen. Ihre Softwarekompatibilität ist für uns Grund genug, sie zu empfehlen. Wenn Sie jedoch ein Hersteller sind, ist BSD die richtige Wahl für Sie. Es verfügt über ein zentrales Repository für Software und ist für seine Zuverlässigkeit bekannt. Und was die BSD-Lizenzierung angeht, müssen Sie sich keine Gedanken darüber machen, ob Sie Ihre Arbeit als Open-Source-Software anbieten wollen.
Wenn Sie sich für einen Linux-Kernel entschieden haben, empfehlen wir Ihnen Ubuntu. Er wird regelmäßig alle sechs Monate aktualisiert, eine Konsistenz, die meiner Meinung nach ein gutes Gleichgewicht zwischen der Behebung von Sicherheitsproblemen und der Vermeidung von Frustration bei den Benutzern darstellt.
Und wenn Sie sich für den BSD-Kernel entscheiden, empfehlen wir FreeBSD, das im Großen und Ganzen die am weitesten verbreitete BSD-Distribution auf dem Markt ist.