Eine vergleichende Einführung in FreeBSD für Linux-Benutzer

Einführung

FreeBSD ist ein freies und Open-Source-Unix-ähnliches Betriebssystem und eine beliebte Serverplattform. Während FreeBSD und andere BSD-basierte Systeme viel mit Systemen wie Linux gemeinsam haben, gibt es Punkte, in denen sich diese beiden Familien in wichtigen Punkten unterscheiden.

In diesem Handbuch werden einige Gemeinsamkeiten zwischen FreeBSD und Linux kurz besprochen, bevor auf die wichtigen Unterschiede eingegangen wird. Viele der folgenden Punkte können genau auf die größere Familie von BSD-abgeleiteten Systemen angewendet werden, aber als Konsequenz unseres Fokus werden wir uns hauptsächlich auf FreeBSD als Vertreter der Familie beziehen.

Eigenschaften, die FreeBSD und Linux gemeinsam nutzen

Bevor wir Bereiche untersuchen, in denen sich FreeBSD und Linux unterscheiden, wollen wir die Gemeinsamkeiten dieser Systeme in groben Zügen erläutern.

Während die spezifischen Lizenzen, die jede Familie verwendet, unterschiedlich sind (wir werden dies später diskutieren), sind beide Systemfamilien kostenlos und Open Source. Benutzer können die Quelle nach Belieben anzeigen und ändern, und die Entwicklung wird offen durchgeführt.

Sowohl FreeBSD- als auch Linux-basierte Distributionen sind Unix-artig. FreeBSD ist eng mit Unix-Systemen der Vergangenheit verwurzelt, während Linux als offene, Unix-ähnliche Alternative von Grund auf neu entwickelt wurde. Dieser Verband informiert über Entscheidungen zum Design der Systeme, zum Zusammenspiel der Komponenten und über die allgemeinen Erwartungen an das Aussehen und die Leistung des Systems.

Das übliche Unix-ähnliche Verhalten ist hauptsächlich darauf zurückzuführen, dass beide Familien zum größten Teil POSIX-compliant sind. Das Gesamtgefühl und das Design der Systeme sind eher standardisiert und verwenden ähnliche Muster. Die Dateisystemhierarchie ist ähnlich unterteilt, Shell-Umgebungen sind die primäre Interaktionsmethode für beide Systeme, und die Programmierschnittstellen haben ähnliche Funktionen.

Aufgrund dieser Überlegungen können FreeBSD- und Linux-Distributionen viele der gleichen Tools und Anwendungen gemeinsam nutzen. In einigen Fällen unterscheiden sich die Versionen oder Varianten dieser Programme zwischen den Systemen, aber Anwendungen können einfacher portiert werden als auf nicht-Unix-ähnlichen Systemen.

In Anbetracht dieser Punkte werden wir nun die Bereiche erörtern, in denen sich diese beiden Betriebssystemfamilien unterscheiden. Hoffentlich helfen Ihnen diese Gemeinsamkeiten dabei, die Informationen bezüglich ihrer Unterschiede genauer zu verdauen.

Lizenzierungsunterschiede

Einer der grundlegendsten Unterschiede zwischen FreeBSD- und Linux-Systemen ist die Lizenzierung.

Der Linux-Kernel, GNU-basierte Anwendungen und viele Software-Teile, die aus der Linux-Welt stammen, werden unter einer Form der GPL oder GNU General Public License lizenziert. Diese Lizenz wird häufig als "Copyleft" -Lizenz bezeichnet. Hierbei handelt es sich um eine Form der Lizenzierung, mit der der Quellcode frei angezeigt, verbreitet und geändert werden kann, wobei jedoch die Einhaltung dieser Lizenzbestimmungen für abgeleitete Werke gefordert wird.

Auf der anderen Seite lizenziert FreeBSD, einschließlich des Kernels und aller von FreeBSD-Mitarbeitern erstellten Tools, seine Software unter einer BSD-Lizenz. Dieser Lizenztyp ist freizügiger als die GPL, da zur Einhaltung der Lizenzbedingungen keine Ableitungen erforderlich sind. Dies bedeutet, dass jede Person oder Organisation das Programm verwenden, verbreiten oder modifizieren kann, ohne dass Änderungen vorgenommen oder die Quelle der von ihnen erstellten Arbeit freigegeben werden müssen. Einzige Voraussetzung ist, dass das Original-Copyright und eine Kopie der BSD-Lizenz im Quellcode oder in der Dokumentation (abhängig von der Veröffentlichungsmethode) des abgeleiteten Werks enthalten sind und dass ein zur Verfügung gestellter Haftungsausschluss enthalten ist, der die Haftung einschränkt. Die Hauptlizenz ist sehr kurz und kann unter here abgerufen werden.

Die Attraktivität jeder dieser Lizenzarten hängt fast ausschließlich von der Philosophie und den Bedürfnissen des Benutzers ab. Die GPL-Lizenzen fördern das Teilen und ein offenes Ökosystem vor allen anderen Überlegungen. Proprietäre Software muss sehr vorsichtig sein, um nicht auf GPL-basierte Software angewiesen zu sein. Andererseits kann BSD-lizenzierte Software frei in proprietäre Closed-Source-Anwendungen integriert werden. Dies macht es für viele Unternehmen und Einzelpersonen attraktiver, die darauf hoffen, ihre Software zu monetarisieren, da es möglich ist, die Software direkt zu verkaufen und die Quelle beizubehalten.

Entwickler bevorzugen in der Regel eine Lizenzierungsphilosophie gegenüber der anderen, aber jede hat ihre Vorteile. Das Verständnis der Lizenzierung dieser Systeme kann uns dabei helfen, einige der Entscheidungen und Philosophien zu verstehen, die in ihre Entwicklung einfließen.

Die FreeBSD-Linie und ihre Auswirkungen

Ein weiterer wichtiger Unterschied zwischen FreeBSD- und Linux-Systemen ist die Herkunft und Geschichte jedes Systems. Zusammen mit den oben diskutierten Lizenzunterschieden ist dies möglicherweise der größte Einflussfaktor für die Philosophie, an der jedes Camp festhält.

Linux ist ein Kernel, der von Linus Torvalds entwickelt wurde, um das von ihm an der Universität Helsinki verwendete bildungsorientierte, aber restriktive MINIX-System zu ersetzen. In Kombination mit anderen Komponenten, von denen viele aus der GNU-Suite stammen, weist ein auf dem Linux-Kernel basierendes Betriebssystem viele Unix-ähnliche Eigenschaften auf, obwohl es nicht direkt von einem früheren Unix-Betriebssystem abgeleitet ist. Da Linux von Grund auf neu gestartet wurde, ohne dass einige der überlieferten Entwurfsoptionen und Legacy-Überlegungen berücksichtigt wurden, kann es sich erheblich von Systemen mit engerer Bindung an Unix unterscheiden.

FreeBSD hat viele direkte Verbindungen zu seinem Unix-Erbe. BSD, oder Berkeley Software Distribution, war eine Distribution von Unix, die an der University of California in Berkeley entwickelt wurde und die den Funktionsumfang des AT & T-Betriebssystems Unix erweiterte und akzeptable Lizenzbedingungen hatte. Später wurde die Entscheidung getroffen, so viel wie möglich des ursprünglichen AT & T-Betriebssystems durch Open-Source-Alternativen zu ersetzen, damit Benutzer keine AT & T-Lizenz für die Nutzung von BSD benötigen. Schließlich wurden alle Komponenten des ursprünglichen AT & T Unix unter der BSD-Lizenz neu geschrieben und auf die i386-Architektur als 386BSD portiert. FreeBSD wurde von dieser Basis aus entwickelt, um die bereits vorhandene Arbeit zu pflegen, zu verbessern und zu modernisieren, und wurde schließlich wegen Lizenzproblemen auf eine unvollständige Version namens BSD-Lite umgestützt.

Durch den langwierigen und mehrstufigen Prozess der Ableitung wurde FreeBSD hinsichtlich der Lizenzierung unbelastet, blieb jedoch eng mit seiner Vergangenheit verbunden. Die Entwickler, die an der Erstellung des Systems arbeiteten, haben weiterhin in die Arbeitsweise von Unix investiert, wahrscheinlich, weil FreeBSD immer als offen lizenzierter Klon von Unix betrieben werden sollte. Diese Wurzeln haben die Richtung jeder weiteren Entwicklung beeinflusst und sind der Grund für einige der Entscheidungen, die wir diskutieren werden.

Eine Trennung des Kernbetriebssystems von zusätzlicher Software

Ein wesentlicher Unterschied in Bezug auf Entwicklungsaufwand und Systemdesign zwischen FreeBSD- und Linux-Distributionen ist der Umfang des Systems. Das FreeBSD-Team entwickelt den Kernel und das Basisbetriebssystem als zusammenhängende Einheit, während Linux technisch nur auf den Kernel Bezug nimmt und die anderen Komponenten aus einer Vielzahl von Quellen stammen.

Dies scheint ein kleiner Unterschied zu sein, wirkt sich jedoch darauf aus, wie Sie mit den einzelnen Systemen interagieren und diese verwalten. Unter Linux kann eine Distribution eine ausgewählte Gruppe von Paketen bündeln, um sicherzustellen, dass sie gut zusammenarbeiten. Die meisten Komponenten werden jedoch aus einer Vielzahl von Quellen stammen, und die Entwickler und Betreuer der Distribution haben die Aufgabe, sie zu einem System zusammenzufassen, das ordnungsgemäß funktioniert.

In diesem Sinne unterscheiden sich wesentliche Komponenten nicht wesentlich von den optionalen Paketen, die in den Repositorys der Distribution verfügbar sind. Die Paketverwaltungstools der Distribution werden verwendet, um diese Komponenten auf dieselbe Weise zu verfolgen und zu verwalten. Eine Distribution verwaltet möglicherweise unterschiedliche Repositorys, basierend darauf, welche Teams für bestimmte Pakete verantwortlich sind, sodass sich das Kernentwicklungsteam nur um eine Teilmenge der verfügbaren Software kümmern muss. Dies ist jedoch ein organisatorischer und fokussierter Unterschied und führt im Allgemeinen nicht zu Unterschieden in der Software Management aus Sicht eines Benutzers.

Im Gegensatz dazu unterhält FreeBSD ein gesamtes Kernbetriebssystem. Der Kernel und eine Sammlung von Software, von denen viele von den FreeBSD-Entwicklern selbst erstellt wurden, werden als Einheit verwaltet. Das Austauschen von Komponenten, die Teil dieser Kernsammlung sind, ist nicht so einfach, da es sich gewissermaßen um eine monolithische Software handelt. Auf diese Weise kann das FreeBSD-Team das Hauptbetriebssystem sehr genau verwalten und so eine enge Integration und mehr Vorhersagbarkeit gewährleisten.

Die im Kernbetriebssystem enthaltene Software wird als vollständig unabhängig von den als optionale Ergänzung angebotenen Komponenten betrachtet. FreeBSD bietet ebenso wie Linux-Distributionen eine große Auswahl an optionaler Software, die jedoch separat verwaltet wird. Das Kernsystem wird als einzelne Einheit unabhängig aktualisiert, und die optionale Software kann einzeln aktualisiert werden.

Wie Releases entstehen

Die meisten Linux-Versionen sind das Ergebnis der Sammlung von Software aus verschiedenen Quellen und der erforderlichen Änderung. Die Distributionsverwalter entscheiden, welche Komponenten in die Installationsmedien, welche Komponenten in die von der Distribution verwalteten Repositorys usw. aufgenommen werden sollen. Nach dem gemeinsamen Testen der Komponenten wird ein Release mit der getesteten Software erstellt.

Im letzten Abschnitt haben wir gelernt, dass:

  • Ein großer Teil des FreeBSD-Betriebssystems wird vom FreeBSD-Team entwickelt.

  • Das Basisbetriebssystem ist die Hauptausgabe, die erzeugt wird.

  • Die Basissoftware wird als zusammenhängendes Ganzes betrachtet.

Diese Eigenschaften führen zu einem anderen Ansatz für die Freigabe von Software als die meisten Linux-Distributionen. Da FreeBSD die Dinge auf Betriebssystemebene organisiert, werden alle Basiskomponenten in einem einzigen Quellcode-Repository verwaltet. Dies hat einige wichtige Auswirkungen.

Da diese Tools alle gemeinsam in einem einzigen Repository entwickelt werden, wird ein Release erstellt, indem einfach eine Revision eines der Zweige des Repositorys ausgewählt wird. Dies ähnelt der Art und Weise, in der die meisten Softwareprodukte veröffentlicht werden, indem ein stabiler Punkt aus einer organisierten Codebasis ausgewählt wird.

Da sich das Basisbetriebssystem ausschließlich unter aktiver Versionskontrolle befindet, können Benutzer auch unterschiedliche Zweige oder Stabilitätsstufen verfolgen, je nachdem, wie gut ihre Systemkomponenten getestet werden sollen. Benutzer müssen nicht darauf warten, dass Entwickler Änderungen genehmigen, um sie auf ihr System zu übertragen.

Dies ähnelt in gewisser Weise den Benutzern, die verschiedene Repositorys verfolgen, die in bestimmten Linux-Distributionen nach Stabilität organisiert sind. Unter Linux verfolgen Sie ein Paket-Repository, während Sie in FreeBSD einen Zweig eines zentralen Quell-Repository verfolgen können.

Software-Unterschiede und Systemdesign

Die verbleibenden Unterschiede, die wir diskutieren werden, hängen mit der Software selbst und den allgemeinen Eigenschaften des Systems zusammen.

Unterstützte Paket- und Quellinstallationen

Einer der Hauptunterschiede zwischen FreeBSD und den meisten Linux-Distributionen aus Anwendersicht ist die Verfügbarkeit und Unterstützung sowohl von Softwarepaketen als auch von Quell-Software.

Während die meisten Linux-Distributionen nur vorkompilierte Binärpakete der von der Distribution unterstützten Software bereitstellen, enthält FreeBSD sowohl vorkompilierte Pakete als auch ein Build-System zum Kompilieren und Installieren aus dem Quellcode. Bei den meisten Programmen können Sie zwischen vorkompilierten Paketen wählen, die mit angemessenen Standardeinstellungen erstellt wurden, und Sie können Ihre Software während des Kompilierungsprozesses anpassen, indem Sie sie selbst erstellen. FreeBSD tut dies über ein System, das es "Ports" nennt.

Das FreeBSD-Portsystem ist eine Sammlung von Software, die FreeBSD zu erstellen weiß. Eine organisierte Hierarchie, die diese Software darstellt, ist im Verzeichnis "+ / usr / ports +" verfügbar, in dem Benutzer die Verzeichnisse für jede Anwendung anzeigen können. Diese Verzeichnisse enthalten einige Dateien, die den Speicherort angeben, an dem die Quelldateien abgerufen werden können, sowie Anweisungen für den Compiler, wie die Quelle ordnungsgemäß gepatcht werden kann, damit sie ordnungsgemäß mit FreeBSD zusammenarbeitet.

Die gepackten Softwareversionen werden tatsächlich vom Ports-System erstellt, was FreeBSD zu einer Source-First-Distribution mit Paketen macht, die der Einfachheit halber zur Verfügung stehen. Ihr System kann sowohl aus Source-Software als auch aus vorgefertigter Software bestehen, und das Software-Management-System kann eine Kombination dieser beiden Installationsmethoden angemessen handhaben.

Vanille vs kundenspezifische Software

Eine Entscheidung, die Benutzern, die mit einigen der populäreren Linux-Distributionen vertraut sind, etwas seltsam erscheinen mag, ist, dass FreeBSD sich normalerweise dafür entscheidet, Upstream-Software, wo immer möglich, unverändert bereitzustellen.

Viele Linux-Distributionen nehmen Änderungen an der Software vor, um die Verbindung mit anderen Komponenten zu vereinfachen und die Verwaltung zu vereinfachen. Gute Beispiele für diese Tendenz sind die Umstrukturierung gängiger Webserverkonfigurationshierarchien, um die Serverkonfiguration modularer zu gestalten.

Obwohl diese Änderungen für viele Benutzer hilfreich sind, weist dieser Ansatz auch Nachteile auf. Ein Problem beim Vornehmen von Änderungen besteht darin, dass vorausgesetzt wird, dass Sie wissen, welcher Ansatz für Benutzer am besten geeignet ist. Es macht Software auch für Benutzer, die von anderen Plattformen kommen, unvorhersehbarer, da es von vorgelagerten Konventionen abweicht.

FreeBSD-Betreuer ändern häufig Software mit Patches, aber dies sind im Allgemeinen konservativere Änderungen als die Paketauswahl einiger Linux-Distributionen. Im Allgemeinen sind die Änderungen an der Software im FreeBSD-Ökosystem erforderlich, damit die Software in einer FreeBSD-Umgebung ordnungsgemäß erstellt und ausgeführt werden kann, sowie die Änderungen, die erforderlich sind, um einige sinnvolle Standardeinstellungen zu definieren. Die Konfigurationsdateien, die im Dateisystem abgelegt werden, werden im Allgemeinen nicht stark geändert, sodass möglicherweise zusätzliche Arbeit erforderlich ist, damit die Komponenten miteinander kommunizieren können.

FreeBSD-Versionen gängiger Tools

Ein weiterer Aspekt von FreeBSD-Systemen, der für Linux-Benutzer zu Verwirrung führen kann, ist die Verfügbarkeit vertrauter Tools, die geringfügig anders funktionieren als auf Linux-Systemen.

Das FreeBSD-Team unterhält eine eigene Version einer Vielzahl gängiger Tools. Während viele der Tools, die auf Linux-Systemen zu finden sind, aus der GNU-Suite stammen, erstellt FreeBSD häufig eigene Varianten für sein Betriebssystem.

Für diese Entscheidung gibt es einige Gründe. Da FreeBSD für die Entwicklung und Wartung des Kernbetriebssystems verantwortlich ist, ist es entweder wichtig oder nützlich, die Entwicklung dieser Anwendungen zu kontrollieren und sie unter eine BSD-Lizenz zu stellen. Einige dieser Tools haben auch enge funktionale Verbindungen zu den BSD- und Unix-Tools, von denen sie abgeleitet wurden, im Gegensatz zur GNU-Suite, die im Allgemeinen weniger abwärtskompatibel ist.

Diese Unterschiede manifestieren sich häufig in den Optionen und der Syntax von Befehlen. Sie sind möglicherweise daran gewöhnt, einen Befehl auf Ihren Linux-Rechnern auf eine bestimmte Weise auszuführen, aber diese funktionieren auf einem FreeBSD-Server möglicherweise nicht auf die gleiche Weise. Es ist wichtig, immer die + man + Seiten der Befehle zu überprüfen, um sich mit den Optionen für FreeBSD-Varianten vertraut zu machen.

Die Standard Shell

Ein verwandter Punkt, der einige Verwirrung stiften könnte, ist, dass die Standard-Shell in FreeBSD nicht "+ bash " ist. Stattdessen verwendet FreeBSD das ` tcsh +` als Standardshell.

Diese Shell ist eine verbesserte Version von "+ csh ", der für BSD entwickelten C-Shell. Die ` bash ` - Shell ist eine GNU-Komponente und daher eine schlechte Wahl für FreeBSD. Während beide Shells in der Befehlszeile im Allgemeinen auf ähnliche Weise funktionieren, sollte die Skripterstellung nicht in ` tcsh ` erfolgen. Die Verwendung der einfachen Bourne-Shell " sh " ist zuverlässiger und vermeidet einige der gut dokumentierten Fallstricke, die mit " tcsh " und " csh +" verbunden sind.

Es ist auch erwähnenswert, dass es sehr einfach ist, die Shell in "+ bash +" zu ändern, wenn Sie sich in dieser Umgebung wohler fühlen.

Ein stärker geschichtetes Dateisystem

Wir haben oben mehrfach erwähnt, dass FreeBSD zwischen dem Basisbetriebssystem und den optionalen Komponenten oder Ports unterscheidet, die auf dieser Ebene installiert werden können.

Dies hat Auswirkungen darauf, wie FreeBSD Komponenten in der Dateistruktur organisiert. Unter Linux befinden sich ausführbare Dateien normalerweise in den Verzeichnissen "+ / bin", "+ / sbin", "+ / usr / sbin" oder "+ / usr / bin", je nachdem, für welchen Zweck und wie wichtig sie für die Kernfunktionalität sind . FreeBSD erkennt diese Unterschiede, sieht jedoch auch eine andere Trennung zwischen Komponenten vor, die als Teil des Basissystems installiert sind, und solchen, die als Ports installiert sind. Die Basissystemsoftware befindet sich in einem der oben genannten Verzeichnisse. Alle Programme, die als Port oder Paket installiert sind, werden in + / usr / local / bin + oder + / usr / local / sbin + abgelegt.

Das Verzeichnis "+ / usr / local " enthält eine Verzeichnisstruktur, die größtenteils die Struktur des Verzeichnisses " / " oder " / usr " widerspiegelt. Dies ist das Hauptstammverzeichnis für Software, die über das Ports-System installiert wird. Fast die gesamte Konfiguration für Ports erfolgt über Dateien in " / usr / local / etc ", während die Basissystemkonfiguration wie gewohnt in " / etc +" gespeichert wird. Auf diese Weise können Sie leicht erkennen, ob eine Anwendung Teil des Basissystemports ist, und das Dateisystem sauber halten.

Abschließende Gedanken

FreeBSD und Linux haben viele Gemeinsamkeiten. Wenn Sie jedoch einen Linux-Hintergrund haben, ist es wichtig, die Unterschiede zu erkennen und zu verstehen. Wo sich ihre Wege unterscheiden, haben beide Systeme ihre Vorteile, und Befürworter beider Lager können Gründe für die getroffenen Entscheidungen angeben.

Wenn Sie FreeBSD als eigenes Betriebssystem betrachten, anstatt darauf zu bestehen, es mit einem Linux-Objektiv zu betrachten, vermeiden Sie Konflikte mit dem Betriebssystem und erzielen in der Regel eine bessere Erfahrung. Bis jetzt hoffen wir, dass Sie ein ziemlich gutes Verständnis für die Unterschiede haben, auf die Sie achten müssen, wenn Sie vorwärts gehen.

Wenn Sie neu in der Ausführung von FreeBSD-Servern sind, finden Sie einen guten nächsten Schritt in unserem Leitfaden unter getting started mit FreeBSD.