FreeBSD - FreeBSD

FreeBSD
Freebsd logo.svg
VirtualBox FreeBSD 12.1 07 05 2020 11 59 43.png
FreeBSD 12.1 Bootloader mit ASCII Art Logo
Entwickler Das FreeBSD-Projekt
Betriebssystemfamilie Unix-ähnlich
Arbeitszustand Strom
Quellmodell Open Source
Erstveröffentlichung 1. November 1993 ; Vor 27 Jahren ( 1993-11-01 )
Neueste Erscheinung 13,0 (13. April 2021 ; vor 6 Monaten ) [±] 12,2 (27. Oktober 2020 ; vor 11 Monaten ) [±] ( 2021-04-13 )
 ( 2020-10-27 )
Letzte Vorschau 13.0-RC4 (29. März 2021 ; vor 6 Monaten ) [±] ( 2021-03-29 )
Repository
Marketingziel Server , Workstations , eingebettete Systeme , Netzwerk-Firewalls
Paket-Manager pkg
Plattformen x86-64 , ARM64 , ARM32 , IA-32 , MIPS , PowerPC , RISC-V , 64-Bit- SPARC
Kernel- Typ Monolithischer Kernel
Userland BSD
Standard -
Benutzeroberfläche
Unix-Shell
Lizenz FreeBSD-Lizenz , FreeBSD-Dokumentationslizenz
Offizielle Website www .freebsd .org

FreeBSD ist ein freies und Open-Source- Unix-ähnliches Betriebssystem, das von der Berkeley Software Distribution (BSD) abstammt , die auf Research Unix basiert . Die erste Version von FreeBSD wurde 1993 veröffentlicht. 2005 war FreeBSD das beliebteste Open-Source- BSD-Betriebssystem und machte mehr als drei Viertel aller installierten einfachen, frei lizensierten BSD-Systeme aus.

FreeBSD hat Ähnlichkeiten mit Linux , mit zwei wesentlichen Unterschieden in Umfang und Lizenzierung: FreeBSD unterhält ein komplettes System, dh das Projekt liefert einen Kernel , Gerätetreiber , Userland- Dienstprogramme und Dokumentation , im Gegensatz zu Linux, das nur einen Kernel und Treiber liefert und sich darauf verlässt bei Dritten für Systemsoftware; und FreeBSD- Quellcode wird im Allgemeinen unter einer freizügigen BSD-Lizenz veröffentlicht , im Gegensatz zu der von Linux verwendeten Copyleft- GPL .

Das FreeBSD-Projekt umfasst ein Sicherheitsteam , das die gesamte Software überwacht, die in der Basisdistribution ausgeliefert wird. Eine breite Palette zusätzlicher Anwendungen von Drittanbietern kann aus Binärpaketen mit dem Paketverwaltungssystem pkg oder aus dem Quellcode über FreeBSD Ports oder durch manuelles Kompilieren des Quellcodes installiert werden.

Ein Großteil der Codebasis von FreeBSD ist zu einem integralen Bestandteil anderer Betriebssysteme wie Darwin (die Basis für macOS , iOS , iPadOS , watchOS und tvOS ), TrueNAS (ein Open-Source- NAS / SAN- Betriebssystem) und die Systemsoftware für die Spielekonsolen PlayStation 3 und PlayStation 4 .

Geschichte

Hintergrund

1974 erwarb Professor Bob Fabry von der University of California, Berkeley , eine Unix-Quelllizenz von AT&T . Mit Unterstützung der DARPA begann die Computer Systems Research Group , AT&T Research Unix zu modifizieren und zu verbessern. Sie nannten diese modifizierte Version "Berkeley Unix" oder " Berkeley Software Distribution " (BSD) und implementierten Funktionen wie TCP/IP , virtuellen Speicher und das Berkeley Fast File System . Das BSD-Projekt wurde 1976 von Bill Joy gegründet . Da BSD jedoch Code von AT&T Unix enthielt, mussten alle Empfänger zuerst eine Lizenz von AT&T erwerben, um BSD verwenden zu können.

Im Juni 1989 wurde "Networking Release 1" oder einfach Net-1 – die erste öffentliche Version von BSD – veröffentlicht. Nach der Veröffentlichung von Net-1 schlug Keith Bostic , ein Entwickler von BSD, vor, den gesamten AT&T-Code durch frei verteilbaren Code unter der ursprünglichen BSD-Lizenz zu ersetzen . Die Arbeiten zum Ersetzen des AT&T-Codes begannen und nach 18 Monaten wurde ein Großteil des AT&T-Codes ersetzt. Im Kernel verblieben jedoch sechs Dateien mit AT&T-Code. Die BSD-Entwickler haben beschlossen, das "Networking Release 2" (Net-2) ohne diese sechs Dateien zu veröffentlichen. Net-2 wurde 1991 veröffentlicht.

Geburt von FreeBSD

1992, mehrere Monate nach der Veröffentlichung von Net-2, schrieben William und Lynne Jolitz Ersatz für die sechs AT&T-Dateien, portierten BSD auf Intel 80386- basierte Mikroprozessoren und nannten ihr neues Betriebssystem 386BSD . Sie veröffentlichten 386BSD über einen anonymen FTP-Server. Der Entwicklungsfluss von 386BSD war langsam, und nach einer Zeit der Vernachlässigung beschloss eine Gruppe von 386BSD-Benutzern, sich selbstständig zu machen, um das Betriebssystem auf dem neuesten Stand zu halten. Am 19. Juni 1993 wurde der Name FreeBSD für das Projekt gewählt. Die erste Version von FreeBSD wurde im November 1993 veröffentlicht.

In den frühen Tagen des Projektstarts stimmte eine Firma namens Walnut Creek CDROM auf Vorschlag der beiden FreeBSD-Entwickler zu, das Betriebssystem auf CD-ROM zu veröffentlichen . Darüber hinaus beschäftigte das Unternehmen Jordan Hubbard und David Greenman, betrieb FreeBSD auf seinen Servern, sponserte FreeBSD-Konferenzen und veröffentlichte FreeBSD-bezogene Bücher, darunter The Complete FreeBSD von Greg Lehey . 1997 war FreeBSD das "erfolgreichste Produkt von Walnut Creek". Das Unternehmen benannte sich später in The FreeBSD Mall und später in iXsystems um .

Heute wird FreeBSD von vielen IT-Unternehmen wie IBM , Nokia , Juniper Networks und NetApp verwendet , um ihre Produkte zu entwickeln. Bestimmte Teile von Apple ‚s Mac OS X - Betriebssystem auf Basis von FreeBSD. Das PlayStation 3- Betriebssystem leiht sich auch bestimmte Komponenten von FreeBSD, während das PlayStation 4- Betriebssystem von FreeBSD 9 abgeleitet ist. Netflix , WhatsApp und FlightAware sind ebenfalls Beispiele für große, erfolgreiche und stark netzwerkorientierte Unternehmen, die FreeBSD einsetzen.

Klage

386BSD und FreeBSD wurden beide von BSD-Releases abgeleitet. Im Januar 1992 begann Berkeley Software Design Inc. (BSDi) mit der Veröffentlichung von BSD/386 , später BSD/OS genannt, einem Betriebssystem, das FreeBSD ähnlich ist und auf 4.3BSD Net/2 basiert. AT&T hat eine Klage gegen BSDi und die angebliche Verbreitung des AT&T-Quellcodes unter Verletzung der Lizenzvereinbarungen eingereicht. Die Klage wurde außergerichtlich beigelegt und die genauen Bedingungen wurden nicht alle bekannt gegeben. Die einzige, die öffentlich wurde, war, dass BSDi ihre Quellbasis auf die neueren 4.4BSD-Lite2-Quellen migrieren würde. Obwohl nicht in den Rechtsstreit involviert, wurde FreeBSD vorgeschlagen, ebenfalls auf 4.4BSD-Lite2 umzusteigen. FreeBSD 2.0, das im November 1994 veröffentlicht wurde, war die erste Version von FreeBSD ohne Code von AT&T.

Merkmale

FreeBSD 9.1-Start mit Konsolen-Anmeldeaufforderung

Anwendungsfälle

FreeBSD enthält eine bedeutende Sammlung serverbezogener Software im Basissystem und der Ports-Sammlung, wodurch FreeBSD unter anderem als Mailserver , Webserver , Firewall , FTP-Server , DNS-Server und Router konfiguriert und verwendet werden kann .

FreeBSD kann auf einem normalen Desktop oder Laptop installiert werden. Das X Window System wird nicht standardmäßig installiert, ist aber in der FreeBSD-Ports-Sammlung verfügbar . Wayland (Display Server Protocol) ist auch für FreeBSD verfügbar (inoffiziell unterstützt). Eine Reihe von Desktop-Umgebungen wie GNOME , KDE und Xfce sowie leichtgewichtige Fenstermanager wie Openbox , Fluxbox , dwm und bspwm stehen ebenfalls für FreeBSD zur Verfügung. Ab FreeBSD 12 ist die Unterstützung für einen modernen Grafikstapel über drm-kmod verfügbar. Eine große Anzahl von drahtlosen Adaptern wird unterstützt.

FreeBSD veröffentlicht Installations-Images für unterstützte Plattformen. Seit FreeBSD 13 liegt der Fokus auf x86-64- und aarch64- Plattformen, die Tier-1-Unterstützung bieten . x86-32 ist eine Tier-1-Plattform in FreeBSD 12, aber eine Tier-2-Plattform in FreeBSD 13. 32-Bit-ARM-Prozessoren, die armv6 oder armv7 verwenden, haben auch Tier-2-Unterstützung. 64-Bit-Versionen von PowerPC und RISC-V werden ebenfalls unterstützt. Das Interesse an der RISC-V-Architektur wächst. Der Port der MIPS-Architektur wurde als veraltet markiert und es gibt kein Image für eine derzeit unterstützte Version. FreeBSD 12 unterstützt SPARC, aber es gibt kein Image für FreeBSD 13.

Vernetzung

Der TCP/IP-Stack von FreeBSD basiert auf der 4.2BSD- Implementierung von TCP/IP, die wesentlich zur weit verbreiteten Akzeptanz dieser Protokolle beigetragen hat. FreeBSD unterstützt auch IPv6 , SCTP , IPSec und drahtlose Netzwerke ( Wi-Fi ). Die IPv6- und IPSec-Stacks wurden dem KAME-Projekt entnommen . Vor Version 11.0 unterstützte FreeBSD IPX- und AppleTalk- Protokolle, aber sie gelten als alt und wurden nun verworfen.

Ab FreeBSD 5.4 wurde die Unterstützung für das Common Address Redundancy Protocol (CARP) aus dem OpenBSD- Projekt importiert . CARP ermöglicht es mehreren Knoten, eine Reihe von IP-Adressen gemeinsam zu nutzen. Wenn also einer der Knoten ausfällt, können andere Knoten die Anfragen weiterhin bedienen.

Lagerung

FreeBSD verfügt über mehrere einzigartige Speicherfunktionen. Soft-Updates können die Konsistenz des UFS- Dateisystems (das auf den BSDs weit verbreitet ist) im Falle eines Systemabsturzes schützen . Dateisystem-Snapshots ermöglichen die effiziente Erstellung eines Images eines UFS-Dateisystems zu einem bestimmten Zeitpunkt. Snapshots ermöglichen eine zuverlässige Sicherung eines Live-Dateisystems. GEOM ist ein modulares Framework, das RAID (derzeit Level 0, 1, 3), vollständige Festplattenverschlüsselung , Journaling , Verkettung, Caching und Zugriff auf netzwerkgestützten Speicher bietet. GEOM ermöglicht den Aufbau komplexer Speicherlösungen, die diese Mechanismen kombinieren ("verketten"). FreeBSD bietet zwei Frameworks für die Datenverschlüsselung: GBDE und Geli . Sowohl GBDE als auch Geli arbeiten auf Festplattenebene. GBDE wurde von Poul-Henning Kamp geschrieben und wird unter der zweiteiligen BSD-Lizenz vertrieben. Geli ist eine Alternative zu GBDE, die von Pawel Jakub Dawidek geschrieben wurde und erstmals in FreeBSD 6.0 erschien.

Ab 7.0 unterstützt FreeBSD das ZFS- Dateisystem. ZFS war zuvor ein Open-Source-Dateisystem, das zuerst von Sun Microsystems entwickelt wurde , aber als Oracle Sun erwarb, wurde ZFS ein proprietäres Produkt. Das FreeBSD-Projekt entwickelt und verbessert jedoch immer noch seine ZFS-Implementierung über das OpenZFS- Projekt.

Sicherheit

FreeBSD bietet mehrere sicherheitsrelevante Funktionen, darunter Access Control Lists (ACLs), Security Event Auditing, erweiterte Dateisystemattribute, obligatorische Access Controls (MAC) und fein abgestimmte Funktionen . Diese Sicherheitsverbesserungen wurden vom TrustedBSD- Projekt entwickelt. Das Projekt wurde von Robert Watson mit dem Ziel gegründet, Konzepte aus den Common Criteria for Information Technology Security Evaluation und dem Orange Book umzusetzen . Dieses Projekt läuft noch und viele seiner Erweiterungen wurden in FreeBSD integriert. Das Projekt wird von einer Vielzahl von Organisationen unterstützt, darunter DARPA, NSA, Network Associates Laboratories, Safeport Network Services, University of Pennsylvania, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, University of Cambridge Computerlabor und andere.

Das Projekt hat portiert auch die NSA ‚s FLASK / TE Implementierung von SELinux auf FreeBSD. Andere Arbeiten umfassen die Entwicklung von OpenBSM , einer Open-Source-Implementierung von Suns Basic Security Module (BSM) API und dem Audit-Log-Dateiformat, das ein umfangreiches Sicherheits-Audit-System unterstützt. Dies wurde als Teil von FreeBSD 6.2 ausgeliefert. Andere Infrastrukturarbeiten in FreeBSD, die im Rahmen des TrustedBSD-Projekts durchgeführt wurden, umfassten GEOM und OpenPAM.

Die meisten Komponenten des TrustedBSD-Projekts werden schließlich in die Hauptquellen für FreeBSD integriert. Darüber hinaus finden viele Funktionen, einmal ausgereift, ihren Weg in andere Betriebssysteme. OpenPAM wurde beispielsweise von NetBSD übernommen . Darüber hinaus wurde das TrustedBSD MAC Framework von Apple für macOS übernommen .

FreeBSD wird mit drei verschiedenen Firewall-Paketen ausgeliefert: IPFW , pf und IPFilter . IPFW ist die native Firewall von FreeBSD. pf wurde von OpenBSD übernommen und IPFilter wurde von Darren Reed auf FreeBSD portiert.

Von OpenBSD übernommen, war das OpenSSH- Programm in der Standardinstallation enthalten. OpenSSH ist eine freie Implementierung des SSH-Protokolls und ersetzt Telnet . Im Gegensatz zu Telnet verschlüsselt OpenSSH alle Informationen (einschließlich Benutzernamen und Passwörter).

Im November 2012 gab das FreeBSD Security Team bekannt, dass sich Hacker unbefugten Zugriff auf zwei der Server des Projekts verschafft haben. Diese Server wurden sofort abgeschaltet. Weitere Untersuchungen zeigten, dass der erste unbefugte Zugriff durch Hacker am 19. September stattfand. Offenbar haben sich Hacker Zugang zu diesen Servern verschafft, indem sie SSH-Schlüssel von einem der Entwickler gestohlen haben , nicht indem sie einen Fehler im Betriebssystem selbst ausnutzten. Diese beiden gehackten Server waren Teil der Infrastruktur, die zum Erstellen von Softwarepaketen von Drittanbietern verwendet wurde. Das FreeBSD-Sicherheitsteam überprüfte die Integrität der Binärpakete und gab bekannt, dass keine unbefugten Änderungen an den Binärpaketen vorgenommen wurden, gab jedoch an, die Integrität der Pakete, die zwischen dem 19. September und dem 11. November heruntergeladen wurden, nicht garantieren zu können.

Portabilität

FreeBSD wurde auf eine Vielzahl von Befehlssatzarchitekturen portiert . Das FreeBSD-Projekt organisiert Architekturen in Stufen, die das Niveau des bereitgestellten Supports charakterisieren. Tier-1-Architekturen sind ausgereift und werden vollständig unterstützt, z. B. ist es die einzige Schicht, die "vom Sicherheitsbeauftragten unterstützt" wird. Tier-3-Architekturen sind experimentell oder werden nicht mehr aktiv entwickelt und Tier-4-Architekturen haben überhaupt keine Unterstützung.

Ab März 2021 wurde FreeBSD auf die folgenden Architekturen portiert:

Die Architektur Support-Level Anmerkungen
x86-64 Stufe 1 als "amd64" bezeichnet
x86 (IA-32) Stufe 1 (Stufe 2 in 13.x) als "i386" bezeichnet
64-Bit-ARM Stufe 1
32-Bit-ARM Rang 2
MIPS Rang 2
32-Bit- und 64-Bit- PowerPC Rang 2
64-Bit- SPARC Stufe 2 (Stufe 4 in 13.x) nur 64-Bit (V9) Architektur
64-Bit- RISC-V Stufe 3 (Stufe 2 in 13.x) ab 12-RELEASE
NEC PC-9801 Stufe 4 (Stufe 2 in 11.x) als "pc98" bezeichnet, Unterstützung in 12-CURRENT entfernt
IA-64 (war Stufe 3) nicht unterstützt ab 11.0
DEZ Alpha (war Stufe 4) Unterstützung eingestellt in 7.0

Die 32-Bit-ARM- (einschließlich OTG) und MIPS-Unterstützung richtet sich hauptsächlich an eingebettete Systeme ( ARM64 richtet sich auch an Server), jedoch läuft FreeBSD/ARM auf einer Reihe von Single-Board-Computern , darunter BeagleBone Black , Raspberry Pi und Wandboard .

Hardwarekompatibilität

Unterstützte Geräte sind in den Hardware-Hinweisen zu FreeBSD 12.1-RELEASE aufgeführt. Das Dokument beschreibt die Geräte, von denen derzeit bekannt ist, dass sie von FreeBSD unterstützt werden. Andere Konfigurationen können auch funktionieren, wurden aber einfach noch nicht getestet. Grobe automatisch extrahierte Listen unterstützter Geräte-IDs sind in einem Drittanbieter-Repository verfügbar.

Im Jahr 2020 wurde ein neues Projekt eingeführt, um automatisch Informationen über getestete Hardwarekonfigurationen zu sammeln.

Software von Drittanbietern

FreeBSD verfügt über ein Software-Repository mit über 30.000 Anwendungen, die von Drittanbietern entwickelt wurden. Beispiele sind: Windowing-Systeme , Webbrowser , E-Mail-Clients , Office-Suiten und so weiter. Im Allgemeinen entwickelt das Projekt diese Software nicht selbst, sondern nur das Framework, das die Installation dieser Programme ermöglicht, die als Ports-Sammlung bekannt ist. Anwendungen können entweder aus dem Quellcode kompiliert ("Ports"), sofern ihre Lizenzbedingungen dies zulassen, oder als vorkompilierte Binärdateien ("Pakete") heruntergeladen werden. Die Ports-Sammlung unterstützt die aktuellen und stabilen Zweige von FreeBSD. Ältere Versionen werden nicht unterstützt und funktionieren möglicherweise nicht ordnungsgemäß mit einer aktuellen Ports-Sammlung.

Ports verwenden Makefiles, um automatisch den Quellcode der gewünschten Anwendung entweder aus einem lokalen oder entfernten Repository zu holen , ihn auf dem System zu entpacken, Patches darauf anzuwenden und ihn zu kompilieren. Abhängig von der Größe des Quellcodes kann das Kompilieren lange dauern, gibt dem Benutzer jedoch mehr Kontrolle über den Prozess und sein Ergebnis. Die meisten Ports haben auch Paket-Gegenstücke (dh vorkompilierte Binärdateien), die dem Benutzer die Wahl lassen. Obwohl diese Methode schneller ist, hat der Benutzer weniger Anpassungsoptionen.

FreeBSD Version 10.0 führte den Paketmanager pkg als Ersatz für die zuvor verwendeten Pakettools ein. Es ist funktionell ähnlich zu apt und yum in Linux-Distributionen . Es ermöglicht die Installation, Aktualisierung und Entfernung von Ports und Paketen. Zusätzlich zu pkg kann PackageKit auch verwendet werden, um auf die Ports-Sammlung zuzugreifen.

Gefängnisse

Jails wurden erstmals in FreeBSD Version 4 eingeführt und sind ein Sicherheitsmechanismus und eine Implementierung der Virtualisierung auf Betriebssystemebene , die es dem Benutzer ermöglicht, mehrere Instanzen eines Gastbetriebssystems auf einem FreeBSD-Host auszuführen. Es ist eine verbesserte Version des traditionellen Chroot- Mechanismus. Ein Prozess, der innerhalb einer solchen Jail ausgeführt wird, kann nicht auf die Ressourcen außerhalb dieser Jail zugreifen. Jedes Gefängnis hat seinen eigenen Hostnamen und seine eigene IP-Adresse . Es ist möglich, mehrere Jails gleichzeitig auszuführen, aber der Kernel wird von allen gemeinsam genutzt. Daher kann in einem Jail nur Software ausgeführt werden, die vom FreeBSD-Kernel unterstützt wird.

Virtualisierung

bhyve , eine neue Virtualisierungslösung, wurde in FreeBSD 10.0 eingeführt. bhyve ermöglicht einem Benutzer, mehrere Gastbetriebssysteme (FreeBSD, OpenBSD , Linux und Microsoft Windows ) gleichzeitig auszuführen . Weitere Betriebssysteme wie Illumos sind in Planung. bhyve wurde von Neel Natu und Peter Grehan geschrieben und zum ersten Mal auf der BSDCan-Konferenz 2011 angekündigt. Der Hauptunterschied zwischen bhyve- und FreeBSD-Jails besteht darin, dass Jails eine Virtualisierung auf Betriebssystemebene sind und daher nur auf FreeBSD-Gäste beschränkt sind; aber bhyve ist ein Hypervisor vom Typ 2 und nicht nur auf FreeBSD-Gäste beschränkt. Zum Vergleich: bhyve ist eine ähnliche Technologie wie KVM, während Jails eher LXC-Containern oder Solaris-Zonen entsprechen . Amazon EC2 AMI-Instances werden auch über . unterstütztamazon-ssm-agent

Seit FreeBSD 11.0 wird die Ausführung als Dom0-privilegierte Domäne für den Xen- Typ-1-Hypervisor unterstützt. Unterstützung für die Ausführung als DomU (Gast) ist seit FreeBSD 8.0 verfügbar.

VirtualBox (ohne das Closed-Source- Erweiterungspaket ) und QEMU sind auf FreeBSD verfügbar.

Betriebssystem-Kompatibilitätsebenen

Die meiste Software, die unter Linux läuft, kann unter FreeBSD mit einer optionalen integrierten Kompatibilitätsschicht ausgeführt werden . Daher können die meisten Linux-Binärdateien auf FreeBSD ausgeführt werden, einschließlich einiger proprietärer Anwendungen, die nur in binärer Form vertrieben werden. Diese Kompatibilitätsschicht ist keine Emulation ; Die Systemaufrufschnittstelle von Linux ist im Kernel von FreeBSD implementiert und daher werden ausführbare Linux- Images und Shared Libraries genauso behandelt wie die nativen ausführbaren Images und Shared Libraries von FreeBSD. Zusätzlich zu Linux bietet FreeBSD Kompatibilitätsschichten für mehrere andere Unix-ähnliche Betriebssysteme , wie BSD/OS und SVR4 , jedoch ist es üblicher, dass Benutzer diese Programme direkt auf FreeBSD kompilieren.

Beim Ausführen von Linux-Binärdateien wurden keine merklichen Leistungseinbußen gegenüber nativen FreeBSD-Programmen festgestellt, und in einigen Fällen können diese sogar reibungsloser als unter Linux ausgeführt werden. Allerdings ist die Schicht nicht ganz nahtlos, und einige Linux-Binärdateien sind unter FreeBSD unbrauchbar oder nur teilweise verwendbar. Es gibt Unterstützung für Systemaufrufe bis Version 2.6.18, verfügbar seit FreeBSD 7.0 . Ab Version 10.3 kann FreeBSD 64-Bit-Linux-Binärdateien ausführen.

FreeBSD hat eine Reihe von Microsoft Windows- nativen NDIS- Kernel-Schnittstellen implementiert, damit FreeBSD (ansonsten) nur Windows-Netzwerktreiber ausführen kann.

Für FreeBSD ist die Wine- Kompatibilitätsschicht verfügbar , die das Ausführen vieler Windows-Anwendungen, insbesondere von Spielen, ohne eine (lizenzierte) Kopie von Microsoft Windows ermöglicht .

Kernel

Der Kernel von FreeBSD bietet Unterstützung für einige wesentliche Aufgaben wie das Verwalten von Prozessen, Kommunikation, Booten und Dateisystemen. FreeBSD hat einen monolithischen Kernel mit einem modularen Design. Verschiedene Teile des Kernels, wie beispielsweise Treiber, sind als Module konzipiert. Der Benutzer kann diese Module jederzeit laden und entladen. ULE ist der Standard- Scheduler in FreeBSD seit Version 7.1, er unterstützt SMP und SMT . Der FreeBSD-Kernel hat auch eine skalierbare Ereignisbenachrichtigungsschnittstelle namens kqueue . Es wurde auf andere BSD-Derivate wie OpenBSD und NetBSD portiert . Kernel-Threading wurde in FreeBSD 5.0 ​​unter Verwendung eines M:N-Threading-Modells eingeführt . Dieses Modell funktioniert theoretisch gut, ist aber schwer zu implementieren und wird nur von wenigen Betriebssystemen unterstützt. Obwohl die Implementierung dieses Modells durch FreeBSD funktionierte, funktionierte es nicht gut, und so begann FreeBSD ab Version 7.0, ein 1:1-Threading-Modell namens libthr zu verwenden.

Dokumentation und Support

Die Dokumentation von FreeBSD besteht aus Handbüchern, Handbuchseiten, Mailinglisten-Archiven, FAQs und einer Vielzahl von Artikeln, die hauptsächlich vom FreeBSD Documentation Project gepflegt werden. Die Dokumentation von FreeBSD ist in mehrere Sprachen übersetzt. Die gesamte offizielle Dokumentation wird unter der FreeBSD Documentation License veröffentlicht , "eine permissive non-copyleft freie Dokumentationslizenz, die mit der GNU FDL kompatibel ist". Die Dokumentation von FreeBSD wird als "hochwertig" bezeichnet.

Das FreeBSD-Projekt unterhält eine Vielzahl von Mailinglisten. Zu den beliebtesten Mailinglisten gehören FreeBSD-Fragen (allgemeine Fragen) und FreeBSD-Hacker (ein Ort für mehr technische Fragen).

Seit 2004 bietet die Datenbank der New York City BSD Users Group dmesg- Informationen von einer Sammlung von Computern ( Laptops , Workstations , Einplatinencomputer , eingebettete Systeme , virtuelle Maschinen usw.), auf denen FreeBSD ausgeführt wird.

Installateure

Von Version 2.0 bis 8.4 verwendete FreeBSD das Programm sysinstall als Hauptinstallationsprogramm. Es wurde in C von Jordan Hubbard geschrieben . Es verwendet eine Textbenutzeroberfläche und ist in eine Reihe von Menüs und Bildschirmen unterteilt, die zum Konfigurieren und Steuern des Installationsprozesses verwendet werden können. Es kann auch verwendet werden, um Ports und Pakete als Alternative zur Befehlszeilenschnittstelle zu installieren .

Das Dienstprogramm sysinstall gilt jetzt als veraltet zugunsten von bsdinstall, einem neuen Installationsprogramm, das in FreeBSD 9.0 eingeführt wurde. bsdinstall ist "ein leichter Ersatz für sysinstall", der in sh geschrieben wurde. Laut OSNews "hat es einige Funktionen verloren, während es andere hinzugewonnen hat, aber es ist ein viel flexibleres Design und wird letztendlich eine signifikante Verbesserung darstellen".

Hülse

Die Standard-FreeBSD-Shell ist die tcsh- Shell für root und die Almquist-Shell (sh) für normale Benutzer. Die Standard-Scripting-Shell ist die Almquist-Shell.

Entwicklung

FreeBSD wird von einem Freiwilligenteam auf der ganzen Welt entwickelt. Die Entwickler nutzen das Internet für die gesamte Kommunikation und viele haben sich noch nicht persönlich kennengelernt. Neben lokalen Benutzergruppen, die von Benutzern gesponsert und besucht werden, wird von USENIX eine jährliche Konferenz namens BSDcon veranstaltet . BSDcon ist nicht FreeBSD-spezifisch, also behandelt es die technischen Aspekte aller von BSD abgeleiteten Betriebssysteme, einschließlich OpenBSD und NetBSD . Neben der BSDcon finden drei weitere jährliche Konferenzen, EuroBSDCon, AsiaBSDCon und BSDCan in Europa , Japan bzw. Kanada statt .

Governance-Struktur

Das FreeBSD-Projekt wird von etwa 500 Committern oder Entwicklern betrieben, die Commit-Zugriff auf die Master-Quellcode-Repositorys haben und jeden Teil des Systems entwickeln, debuggen oder verbessern können. Die meisten Entwickler sind Freiwillige und nur wenige Entwickler werden von einigen Unternehmen bezahlt. Es gibt verschiedene Arten von Committern, darunter Source-Committer (Basisbetriebssystem), Doc-Committer (Dokumentations- und Website-Autoren) und Ports (Portierung und Infrastruktur von Drittanbieteranwendungen). Alle zwei Jahre wählen die FreeBSD-Committer ein 9-köpfiges FreeBSD-Kernteam, das für die Gesamtprojektleitung, das Festlegen und Durchsetzen von Projektregeln und die Genehmigung neuer Committer oder die Gewährung von SVN-Commit-Zugriffen verantwortlich ist. Eine Reihe von Verantwortlichkeiten werden vom FreeBSD-Kernteam offiziell anderen Entwicklungsteams zugewiesen, zum Beispiel wird die Verantwortung für die Verwaltung der Port-Sammlung an das Ports-Management-Team delegiert.

Neben Entwicklern hat FreeBSD Tausende von "Mitwirkenden". Mitwirkende sind auch Freiwillige außerhalb des FreeBSD-Projekts, die Patches zur Prüfung durch Committer einreichen, da sie keinen direkten Zugriff auf das Quellcode-Repository von FreeBSD haben. Committer bewerten dann die Einreichungen der Mitwirkenden und entscheiden, was sie annehmen und was sie ablehnen. Ein Mitwirkender, der hochwertige Patches einreicht, wird oft gebeten, Committer zu werden.

Geäst

FreeBSD- Entwickler pflegen mindestens zwei Zweige der gleichzeitigen Entwicklung. Der -CURRENT- Zweig repräsentiert immer die " Bleeding Edge " der FreeBSD-Entwicklung. Für jede Hauptversionsnummer wird ein -STABLE- Zweig von FreeBSD erstellt, von dem -RELEASE etwa alle 4–6 Monate abgeschnitten wird. Wenn ein Feature ausreichend stabil ist und reifen es wahrscheinlich , wird zurückportiert ( MFC oder Merge von CURRENT in FreeBSD - Entwickler Slang) an die -STABLE Zweig.

Stiftung

„Letzte Woche habe ich eine Million Dollar an die FreeBSD Foundation gespendet, die das Open-Source-Betriebssystem unterstützt, das Millionen von Programmierern geholfen hat, ihren Leidenschaften nachzugehen und ihre Ideen zum Leben zu erwecken. Ich bin tatsächlich einer dieser Menschen FreeBSD in den späten 90er Jahren, als ich nicht viel Geld hatte und in einer staatlichen Wohnung lebte, hat FreeBSD mir in gewisser Weise geholfen, mich aus der Armut zu befreien – einer der Hauptgründe, warum ich einen Job bei Yahoo! FreeBSD, und es war mein bevorzugtes Betriebssystem. Jahre später, als Brian und ich uns daran machten, WhatsApp zu entwickeln, haben wir FreeBSD verwendet, um unsere Server am Laufen zu halten. Das tun wir immer noch. Ich kündige diese Spende an, um ein Licht auf das Gute zu werfen Arbeit der FreeBSD Foundation, in der Hoffnung, dass auch andere dieses Projekt voranbringen werden. Wir alle werden davon profitieren, wenn FreeBSD den Menschen weiterhin die gleichen Möglichkeiten bieten kann, die es mir gegeben hat – wenn es mehr Einwandererkinder aus der Armut befreien kann , und helfen Sie mehr Startups, etwas Erfolgreiches aufzubauen ul und sogar transformativ."

Jan Koum

Die Entwicklung von FreeBSD wird teilweise von der FreeBSD Foundation unterstützt. Die Stiftung ist eine gemeinnützige Organisation, die Spenden annimmt, um die Entwicklung von FreeBSD zu finanzieren. Diese Mittel wurden verwendet, um Entwickler für bestimmte Aktivitäten zu sponsern, Hardware und Netzwerkinfrastruktur zu kaufen, Reisestipendien für Entwicklergipfel bereitzustellen und das FreeBSD-Projekt rechtlich zu unterstützen.

Im November 2014 erhielt die FreeBSD Foundation 1 Million US-Dollar Spende von Jan Koum , Mitbegründer und CEO von WhatsApp  – die größte Einzelspende an die Foundation seit ihrer Gründung. Im Dezember 2016 spendete Jan Koum weitere 500.000 Dollar. Jan Koum selbst ist seit Ende der 1990er Jahre FreeBSD-Benutzer und WhatsApp verwendet FreeBSD auf seinen Servern.

Lizenz

FreeBSD wird unter verschiedenen Open-Source-Lizenzen veröffentlicht. Der Kernel-Code und der meiste neu erstellte Code werden unter der Zwei-Klausel- BSD-Lizenz veröffentlicht, die es jedem erlaubt, FreeBSD nach Belieben zu verwenden und weiterzugeben. Diese Lizenz wurde von der Free Software Foundation und der Open Source Initiative als Freie Software bzw. Open Source Lizenz genehmigt . Die Free Software Foundation beschrieb diese Lizenz als „eine laxe, freizügige freie Softwarelizenz ohne Copyleft, die mit der GNU GPL kompatibel ist“. Es gibt Teile, die unter drei- und vierstufigen BSD-Lizenzen sowie unter der Beerware- Lizenz veröffentlicht werden. Einige Gerätetreiber enthalten ein binäres Blob , wie zum Beispiel die Atheros HAL von FreeBSD-Versionen vor 7.2. Ein Teil des von anderen Projekten beigesteuerten Codes ist unter GPL , LGPL , CDDL und ISC lizenziert . Der gesamte unter GPL und CDDL lizenzierte Code ist klar vom Code unter liberalen Lizenzen getrennt, um es Benutzern wie Herstellern von eingebetteten Geräten zu erleichtern, nur freizügige freie Softwarelizenzen zu verwenden . ClangBSD zielt darauf ab, einige GPL- Abhängigkeiten im FreeBSD- Basissystem zu ersetzen, indem die GNU-Compiler-Sammlung durch den BSD-lizenzierten LLVM / Clang- Compiler ersetzt wird. ClangBSD wurde am 16. April 2010 selbst gehostet.

Viele Jahre lang war das Logo von FreeBSD der generische BSD Daemon , auch Beastie genannt , eine verzerrte Aussprache von BSD . Beastie war jedoch nicht nur FreeBSD vorbehalten. Die populäreren Versionen des BSD-Daemons erschienen 1976 erstmals auf Unix-T-Shirts, die von Bell Labs gekauft wurden , und wurden ab 1984 von Animationsregisseur John Lasseter gezeichnet . Mehrere FreeBSD-spezifische Versionen wurden später von Tatsumi Hosokawa gezeichnet.

In lithografischer Hinsicht ist die Lasseter-Grafik keine Strichzeichnung und erfordert oft ein gerastertes Vierfarben- Foto-Offset- Druckverfahren für eine originalgetreue Reproduktion auf physischen Oberflächen wie Papier. Außerdem wurde angenommen, dass der BSD-Daemon zu grafisch detailliert für eine reibungslose Größenskalierung und ästhetisch zu stark von mehreren Farbabstufungen abhängig ist, was eine zuverlässige Reproduktion als einfaches, standardisiertes Logo in nur zwei oder drei Farben, geschweige denn in Monochrom, erschwert. Aufgrund dieser Sorgen wurde ein Wettbewerb veranstaltet und am 8. Oktober 2005 wurde ein neues Logo von Anton K. Gural veröffentlicht, das immer noch den BSD-Daemon widerspiegelt. Robert Watson gab jedoch bekannt, dass das FreeBSD-Projekt "ein neues" sucht Logo, aber kein neues Maskottchen" und dass das FreeBSD-Projekt Beastie weiterhin als Maskottchen verwenden würde.

Der Name "FreeBSD" wurde von David Greenman am 19. Juni 1993 geprägt, andere vorgeschlagene Namen waren "BSDFree86" und "Free86BSD". Der Slogan von FreeBSD "The Power to Serve" ist ein Warenzeichen der FreeBSD Foundation.

Derivate

PC-BSD Version 10, das Betriebssystem, das später als TrueOS bekannt wurde

Es gibt eine Reihe von Software-Distributionen, die auf FreeBSD basieren. Bemerkenswerte Derivate umfassen:

Alle diese Distributionen haben keine oder nur geringfügige Änderungen im Vergleich zum ursprünglichen FreeBSD-Basissystem. Der Hauptunterschied zum ursprünglichen FreeBSD besteht darin, dass sie mit vorinstallierter und vorkonfigurierter Software für bestimmte Anwendungsfälle geliefert werden. Dies kann mit Linux- Distributionen verglichen werden, die alle binärkompatibel sind, da sie denselben Kernel verwenden und auch dieselben grundlegenden Tools, Compiler und Bibliotheken verwenden, während sie mit unterschiedlichen Anwendungen, Konfigurationen und Marken ausgestattet sind.

Neben diesen Distributionen gibt es einige unabhängige Betriebssysteme, die auf FreeBSD basieren. DragonFly BSD ist ein Fork von FreeBSD 4.8, der eine andere Multiprozessor-Synchronisationsstrategie als die für FreeBSD 5 gewählte und die Entwicklung einiger Mikrokernel- Features zum Ziel hat. Es zielt nicht darauf ab, mit FreeBSD kompatibel zu bleiben und weist große Unterschiede im Kernel und im grundlegenden Userland auf . MidnightBSD ist ein Fork von FreeBSD 6.1, das sich stark von NeXTSTEP borgt , insbesondere im Bereich der Benutzeroberflächen.

Darwin , der Kern von Apple ‚s macOS , enthält ein virtuelles Dateisystem und Netzwerk - Stack von denen FreeBSD abgeleitet und Komponenten seiner User - Space sind auch FreeBSD-abgeleitet.

Einige Abonnementdienste, die direkt auf FreeBSD basieren, sind:

  • WhatsApp  – verarbeitet 2 Millionen gleichzeitige TCP-Verbindungen pro Server.

Eingebettete Geräte und Betriebssysteme für eingebettete Geräte, die auf FreeBSD basieren, umfassen:

  • Das Router-Betriebssystem JUNOS von Juniper .
  • EMC Isilon ‚s OneFS - Betriebssystem.
  • NetApps Data ONTAP 8.x und das inzwischen abgelöste ONTAP GX (nur als Loader für proprietäre Kernel-Space-Module).
  • Open Connect Appliance von Netflix für die Bereitstellung von Inhalten.
  • Die PlayStation 4 (" Orbis OS ")
  • Panasas 'PanFS paralleles Dateisystem
  • pfSense , ein Open-Source-Firewall-, Router- und Security-Appliance-Betriebssystem.

Versionsgeschichte

Legende: Alte Version, nicht gepflegt Ältere Version, noch gepflegt Aktuelle stabile Version Neueste Vorschauversion Zukünftige Veröffentlichung
Ausführung Veröffentlichungsdatum Unterstützt bis Bedeutsame Änderungen
Alte Version, nicht mehr gepflegt: 1.x November 1993
Alte Version, nicht mehr gepflegt: 2.x 22. November 1994
  • Codebasis durch BSD-Lite 4.4 ersetzt (um die Bedingungen des USL vs. BSDi -Prozessvergleichs zu erfüllen )
  • Neuer Installer und neuer Bootmanager
  • Unterstützung von ladbaren Dateisystemen für weitere Dateisysteme (MS-DOS, unionfs, kernfs )
  • Importierte ladbare Kernel-Module von NetBSD
  • Ersetzt BSD malloc durch phkmalloc
  • Vollständige Linux-Emulation mit ELF
  • Dummynet- Traffic-Shaping
Alte Version, nicht mehr gepflegt: 3.x 16. Oktober 1998
Alte Version, nicht mehr gepflegt: 4.x 14. März 2000 31. Januar 2007
Alte Version, nicht mehr gepflegt: 5.x 14. Januar 2003 31. Mai 2008
Alte Version, nicht mehr gepflegt: 6.x 1. November 2005 30. November 2010
  • Unterstützung von Leistungsüberwachungszählern
  • Neuer WLAN- Stack
  • GELI
  • Netzwerküberbrückung
  • NanoBSD-Dienstprogramm
  • NDIS- Treiberunterstützung
  • Tastatur-Multiplexer
  • Stabilität des UFS-Dateisystems
  • Bluetooth-Autokonfiguration
  • Zusätzliche Ethernet- und RAID-Treiber
  • Unterstützung für Xbox- Architektur
  • OpenBSM- Audit-Subsystem
  • freebsd-update (binäre Updates für Sicherheitsfixes und Errata-Patches)
Alte Version, nicht mehr gepflegt: 7.x 27. Februar 2008 28. Februar 2013
Alte Version, nicht mehr gepflegt: 8.x 26. November 2009 1. August 2015
  • SATA NCQ- Unterstützung
  • Xen- Gastunterstützung
  • Hochverfügbarkeitsspeicher
  • Native NFSv4-ACL-Unterstützung
  • USB 3.0- Unterstützung
Alte Version, nicht mehr gepflegt: 9.x 12. Januar 2012 31. Dezember 2016
  • Capsicum fähigkeitsbasierten Sicherheitsmechanismus
  • UFS SoftUpdates+Journal
  • ZFS aktualisiert auf Version 28
  • bsdconfig, Dienstprogramm zur Systemkonfiguration
  • bsdinstall, das neue Systeminstallationsprogramm
  • RCTL, ein Mechanismus für flexible Ressourcenbeschränkungen
  • GRAID, flexible Software- RAID- Implementierung
  • virtio-Treiber
  • pkgng
  • vt, die neue virtuelle Terminal-Implementierung
Alte Version, nicht mehr gepflegt: 10.x 20. Januar 2014 31. Oktober 2018
  • BHyVe- Hypervisor
  • Clang ersetzte GCC auf unterstützten Architekturen
  • Neuer iSCSI- Stack
  • Unterstützung für Raspberry Pi . hinzugefügt
  • UEFI- Boot für AMD64
  • ZFS- Booten über UEFI
  • ZFS im Root-Dateisystem
  • ZFS- Zuverlässigkeits- und Leistungsverbesserungen
  • Implementierung von pkg, einem neuen FreeBSD-Paketmanager, auch als pkgng . bezeichnet
  • Unterstützung für das UDP Lite- Protokoll (RFC 3828)
  • SMP- Unterstützung für armv6
  • Neuer autofs-basierter Automounter
  • DRM- Code aktualisiert, um Linux 3.8.13 zu entsprechen, sodass mehrere gleichzeitige X-Server möglich sind
  • Unterstützung für 64-Bit-Linux-Binärdateien durch die Kompatibilitätsschicht
Alte Version, nicht mehr gepflegt: 11.x 10. Oktober 2016 30. September 2021
  • Neue Version von NetMap
  • Unterstützung für die 64-Bit- ARM-Architektur
  • umount(8) -N neues Flag, das verwendet wird, um ein NFS-gemountetes Dateisystem zwangsweise auszuhängen
  • crontab -f neues Flag hinzugefügt
  • Das ZFS- Dateisystem wurde aktualisiert, um paralleles Mounten zu implementieren.
  • Das Dienstprogramm trim(8) wurde hinzugefügt, das Inhalte für Blöcke auf Flash-basierten Speichergeräten löscht, die Wear-Leveling-Algorithmen verwenden.
Ältere Version, aber noch gepflegt: 12.x 11. Dezember 2018
  • Das Dateisystem ext2fs (5) wurde aktualisiert, um volle Lese-/Schreibunterstützung für ext4 zu unterstützen
  • FreeBSD hat die Handhabung von Grafiktreibern auf AMD64 und i386 geändert . Grafiktreiber für moderne ATI-AMD- und Intel-Grafikkarten sind ab sofort in der Ports Collection erhältlich.
  • Das UFS/FFS-Dateisystem wurde aktualisiert, um die Überprüfung von Hashes auf Zylindergruppen-Maps zu unterstützen.
Aktuelle stabile Version: 13.x 13. April 2021
  • Die Dienstprogramme clang, lld und lldb sowie die Bibliotheken compiler-rt, llvm, libunwind und libc++ wurden auf Version 11.0.1 aktualisiert.
  • Die veralteten Binutils 2.17 und gcc(1) 4.2.1 wurden aus dem Baum entfernt. Alle unterstützten Architekturen verwenden jetzt die LLVM/clang-Toolchain.
  • Der Kernel unterstützt jetzt In-Kernel-Framing und Verschlüsselung von Transport Layer Security (TLS)-Daten auf TCP-Sockets für die TLS-Versionen 1.0 bis 1.3. Die Übertragung von Übertragungen über In-Kernel-Kryptotreiber wird für MtE-Verschlüsselungssammlungen mit AES-CBC sowie für AEAD-Verschlüsselungssammlungen mit AES-GCM unterstützt. Der Empfang von Offload über In-Kernel-Kryptotreiber wird für AES-GCM-Verschlüsselungssammlungen für TLS 1.2 unterstützt. Die Verwendung von KTLS erfordert die Verwendung einer KTLS-fähigen Userland-SSL-Bibliothek. Die im Basissystem enthaltene OpenSSL-Bibliothek aktiviert die KTLS-Unterstützung standardmäßig nicht, aber die Unterstützung kann durch Erstellen mit der WITH_OPENSSL_KTLS-Option aktiviert werden
  • Die als arm64 oder AArch64 bekannte 64-Bit-ARM-Architektur wird für FreeBSD 13 in den Tier-1-Status hochgestuft.
Ausführung Veröffentlichungsdatum Unterstützt bis Bedeutsame Änderungen

Siehe auch

Verweise

Zitate

Quellen

Externe Links