FreeBSD
FreeBSD | |
---|---|
FreeBSD-Logo | |
FreeBSD Message of the Day | |
Entwickler | The FreeBSD Project |
Lizenz(en) | BSD-Lizenz |
Erstveröff. | 1. November 1993 |
Akt. Version | 8.0 (26. November 2009) |
Abstammung | Früher (bis Version 1.x) \ UNIX \ BSD \ 386BSD \ FreeBSD Seit Version 2.0 \ BSD \ FreeBSD |
Architektur(en) | PC98, x86 und x86-64 vollständig, und diverse andere teilweise[1] |
www.freebsd.org |
FreeBSD ist ein freies, unixartiges Betriebssystem aus der BSD-Familie.
Eigenschaften
Bei der Entwicklung von FreeBSD konzentrierte man sich am Anfang hauptsächlich auf die x86-Architektur. Seit Version 3.0 läuft FreeBSD jedoch auch auf Alpha-Prozessoren und auf den in Japan verbreiteten PC98. Mit der Version 5.0 wurden zusätzlich die Architekturen AMD64 (die auch auf aktuellen Intel-Prozessoren 64-Bit-Verarbeitung erlaubt), IA-64 sowie SPARC64 unterstützt; seit Version 6.0 gibt es auch eine experimentelle Version für PowerPC-Prozessoren. Ab Version 7 werden Alpha-Prozessoren nicht mehr unterstützt. Derzeit wird auch an Portierungen auf die ARM-Architektur und auf die MIPS-Architektur gearbeitet. FreeBSD besitzt einen Monolithischen Kernel.
Netzwerk
FreeBSDs Stärken liegen im Netzwerkbereich.
- Mit der IPv6-Implementierung des KAME-Projekts waren die BSDs unter den ersten Betriebssystemen mit IPv6- und IPsec-Unterstützung.
- FreeBSD unterstützt Netzwerkprotokolle auf verschiedensten Ebenen, zum Beispiel 802.1q VLANs, PPP, L2TP.
- Verschiedene Netzwerkhardware wird unterstützt: Gigabit Ethernet, WLAN, ATM, ISDN, FDDI
- Es stehen drei verschiedene Paketfilter-Implementierungen zur Verfügung: das auch für proprietäre Unixe verfügbare IPFilter , die Eigenentwicklung ipfw und der OpenBSD-Paketfilter pf . Mit dummynet steht weiterhin ein leistungsfähiger Trafficshaper zur Verfügung.
Hardware-Unterstützung
FreeBSD unterstützt einen Großteil der gängigen PC-Hardware: USB 2.0, Bluetooth, PCMCIA, SCSI- und S-ATA-RAID-Controller. Allerdings werden – ähnlich wie bei Linux – die wenigsten Treiber vom Hardwarehersteller bereitgestellt, sondern von den FreeBSD-Entwicklern selbst geschrieben. Für Netzwerkkarten gibt es jedoch seit Version 5.3 eine Implementierung der Windows-NDIS-Schnittstelle (NDISulator, Project Evil), über die Windowstreiber verwendet werden können (zum Beispiel für Intels Centrino).
Software-Verwaltung
- Bei der Installation kann je nach Einsatzzweck eine Vorauswahl der zu installierenden Pakete getroffen werden.
- Über eine Paketverwaltung, die sogenannten Ports , kann aus über 20.000 Programmen anderer Anbieter eine Installation komfortabel durchgeführt werden. Hier finden sich die meisten Open-Source-Programme für Server und Desktop sowie einige proprietäre Programme. Die meisten Ports werden als Quellcode geladen, meist aus dem Netz, und dann auf dem eigenen System kompiliert.
- Einige weit verbreitete Pakete oder Werkzeuge stehen auch als fertige Binaries zur Verfügung ('package') und können ohne Kompilieren direkt installiert werden, wobei dann allerdings die prozessorspezifische Optimierung und die Nutzung von Kompile-Zeit-Optionen entfallen.
- Neben der eigenen Binärschnittstelle (ABI) unterstützt FreeBSD die Formate von GNU/Linux und UNIX System V R4. Damit kann auch speziell für diese Systeme entwickelte Software für FreeBSD genutzt werden. Für Linux-Kompatibilität steht weiterhin spezielle Software zur Verfügung.
Virtualisierung
FreeBSD stellt seit Version 4.x auch die Virtualisierungsumgebung jails zur Verfügung. Aus dem Inneren eines Jails (dt. Gefängnis) ist kein Zugriff auf die System- und Konfigurationsdateien des Hauptsystems möglich - es verwendet seine eigenen Dateien, Prozesse und auch User-Accounts, so dass die Umgebung sich fast nicht von der eines vollwertigen Systems unterscheidet. Gegenüber etwa Chroot bietet dies eine Reihe von Vorteilen, insbesondere im Blick auf Sicherheit, Administration und Performance. Im Vergleich zu Paketen wie Xen oder VMware wiederum ist die Umsetzung sehr viel einfacher und transparenter, bietet aber auch nicht die Möglichkeit, ein fremdes Betriebssystem zu betreiben.
In anderen Systemen sind Abwandlungen von FreeBSD-Jails als sysjails bekannt.
Verbreitung
FreeBSD ist robust und stabil und deshalb vor allem bei Internet-Providern beliebt. Unter anderem setzt Yahoo das Open-Source-Betriebssystem auf ihren Webservern ein.
Spuren von FreeBSD finden sich auch in verschiedenen proprietären Betriebssystemen, was auf das verwendete Lizenzmodell zurückzuführen ist. Teile von Apples Betriebssystem Mac OS X, dessen Kernkomponente Darwin im Quellcode für PPC und i386 verfügbar ist, basieren auf FreeBSD ebenso das JunOS der Juniper-Router, VxWorks [2] und das DataONTAP des Speichersystem-Herstellers NetApp.
Weitere BSD-Betriebssysteme sind NetBSD, OpenBSD und DragonFly BSD. Zwischen den BSD-Betriebssystemen findet wegen der freien Lizenz und der durch die gemeinsame Herkunft vorhandenen Ähnlichkeit ein reger Quellcodeaustausch statt.
Geschichte
FreeBSD war als Weiterentwicklung von 386BSD geplant, nachdem dieses nicht mehr weiterentwickelt wurde. Die Ursprünge von FreeBSD liegen in einer Patch-Sammlung (ein sogenanntes Patchkit) für 386BSD, die 1992/1993 in loser, mittels FTP vertriebener Form existierte.
Während in der ersten Hälfte des Jahres 1993 ein Teil der Patchkit-Autoren (und andere) NetBSD gründeten, gründeten die im wesentlichen letzten offiziellen Verantwortlichen des Patchkits Jordan K. Hubbard, Nate Williams, Rod Grimes und David Greenman FreeBSD. Die Entwicklung mittels eines CVS-Archivs begann im Juli 1993 basierend auf den Quelltexten von 386BSD, 4.3BSD-Lite (Net/2) und dem dazu existierenden Patchkit. Im November 1993 erschien die erste Version FreeBSD 1.0.
Als Folge des Vergleichs im Urheberrechtsstreit zwischen Novell und der University of California wurden einige Teile des Net/2-Quellcodes Novell zugesprochen. Dieser musste deshalb auch aus FreeBSD entfernt werden. Das im November 1994 erschienene FreeBSD 2.0 basierte deshalb auf den Quelltexten von 4.4BSD-Lite.
Im Oktober 1998 erschien Version 3.0, im März 2000 Version 4.0 und im Januar 2003 Version 5.0.
Version 5.5
Am 25. Mai 2006 wurde Version 5.5, die letzte Version der 5.x-Linie, veröffentlicht. Außer den zusätzlich unterstützten Architekturen wurden in dieser Version eine Reihe von neuen Funktionen implementiert:
- verbesserte SMP-Unterstützung, Kernel Scheduled Entities, eine neue Multithreading-Implementation, optimiert für SMP-Systeme
- Mandatory Access Control (MAC) Policies, ein System zur Unterstützung von komplexeren Benutzerberechtigungen
- ein neues Disk-I/O-System (GEOM), das eigens für das FreeBSD Projekt durch Poul-Henning Kamp und die Forschungsabteilung von Network Associates im Rahmen eines DARPA Forschungsprogrammes entwickelt wurde. Durch einfache Strukturierung der Schnittstellen zwischen fordernden und ausführenden Instanzen war es möglich, Zwischenschichten zwischen den eigentlichen Speichermedien und den ursprünglich fordernden Instanzen (verschiedene RAID-Level, Verschlüsselung (GBDE)) einzufügen.
- Das FFS-Dateisystem unterstützt die Dateisystemprüfung im Hintergrund und das Erzeugen von Dateisystem-Schnappschüssen.
- Unterstützung von ACPI, Bluetooth, IEEE 1394 und Cardbus-Hardware
- Unterstützung von 802.11a/b/g-WLAN-Karten
- eine komplette Überarbeitung des Virtualisierungscontainers (jails)
Allerdings waren die SMP-Neuerungen der Version 5.x umstritten. Matt Dillon startete unter anderem deshalb die auf Version 4.x aufsetzende Abspaltung DragonFly BSD.
Version 6.0
Am 3. November 2007 wurde Version 6.0 veröffentlicht. Wesentliche Neuerungen:
- Verbesserung der WLAN-Unterstützung. Es wird jetzt auch WPA unterstützt
- eine experimentelle Version für PowerPC
- eine SMP-fähige Schicht des virtuellen Dateisystem VFS
- eine neue Bridge-Implementation mit Unterstützung des 802.1D Spanning Tree Protocol
Version 7.0
Am 27. Februar 2008 brachte Version 7.0 folgende Neuerungen:
- Verbesserung der SMP-Skalierbarkeit, was in Benchmarks deutliche Fortschritte erbrachte
- Eine neue Implementierung des ULE-Schedulers ist verfügbar.
- Referenzimplementierung des SCTP-Netzwerkprotokolls
- Journaling für das Dateisystem UFS
- experimentelle Unterstützung von Suns Dateisystem ZFS
- Lesezugriff auf SGIs Dateisystem XFS
- Unterstützung der ARM-CPU-Architektur
Version 7.1
Am 5. Januar 2009 wurde Version 7.1 veröffentlicht. Die wichtigsten Neuerungen sind:
- Der ULE-Scheduler ist jetzt als Standard für den AMD64- und den i386-Kernel aktiviert.
- Der Support von DTrace im Kernel wurde von OpenSolaris übernommen.
- ein neuer und verbesserter NFS Lock Manager Client
- Der Bootloader erlaubt nun das Booten von USB-Geräten und von GUID Partition Table (GPT)-Geräten.
Version 7.2
Am 4. Mai 2009 wurde Version 7.2 veröffentlicht. Die wesentlichen Neuerungen sind:
- Unterstützung für vollständig transparente Verwendung von superpages für Anwendungen
- Unterstützung für mehrere IPv4 und IPv6-Adressen für jails
- csup (1) unterstützt jetzt CVSMode, um ein vollständiges CVS-Repository herunterzuladen
- Gnome wurde auf Version 2.26 und KDE auf Version 4.2.2 aktualisiert
- sparc64 unterstützt jetzt UltraSPARC-III-Prozessoren
Version 7.3
Am 24. März 2010 wurde Version 7.3 veröffentlicht. Die wesentlichen Neuerungen sind:
- Neuer Bootloader gptzfsboot (welcher GUID Partition Tables (GPT) und ZFS unterstützt)
- Aktuelle Programme für "LSI MegaRAID SAS"- und "LSI Fusion MPT"-Controller (mfiutil und mptutil)
- Verbesserung der Behandlung von NULL-Pointern
Das 7.3-RELEASE ist das vorletzte Release aus dem 7er-Entwicklungszweig.
Version 8.0
Am 26. November 2009 wurde Version 8.0 veröffentlicht. Die wesentlichen Neuerungen sind:
- Vollständig überarbeitete USB-Unterstützung
- neue Partitionsklasse (slices)
- NFSv4-Unterstützung
- Unterstützung für IEEE 802.11s
- Verbesserte ZFS-Unterstützung
Entwicklungsmodell
FreeBSD ist unter der BSD-Lizenz frei und kostenlos verfügbar und wird von über 350 Entwicklern aus der ganzen Welt und zahlreichen Benutzern kontinuierlich weiterentwickelt.
Die Entwickler des FreeBSD-Projektes pflegen einen Quelltextbaum, der das vollständige System umfasst:
- Kernel: implementiert die APIs und Datenstrukturen des Betriebssystems, sowie die Gerätetreiber
- Userland: alle wichtigen Programme, vom Texteditor bis zum Compiler
- Ports: die nach FreeBSD portierten Anwendungen anderer Hersteller
Dieser Quelltextbaum wird mithilfe von CVS verwaltet. Das System ist daher sehr homogen, da alle Systembestandteile von der gleichen Entwicklergruppe gepflegt werden.
Bei FreeBSD spielt die Verfügbarkeit des Quelltexts auch praktisch eine große Rolle: Viele Anwender halten einen lokalen Quelltextbaum vor und synchronisieren ihn regelmäßig per CVSup-System über das Netz mit einem zentralen Quelltextarchiv (Repository). Daraus kann man dann entweder nur den Kernel aktuell neu bauen oder nur die Ports oder das ganze System. Das dauert zwar länger, als ein Binärpaket zu installieren, dafür passen hinterher alle Systemkomponenten perfekt zusammen. Im CVS-Repository kann man in den alten Versionen der Quelltexte und den Anmerkungen der Entwickler recherchieren und somit sehr gut Einsicht in den Aufbau und die Funktionsweise des Systems gewinnen.
Die Entwicklung des FreeBSD-Kernels und -Userlands läuft in mehreren Zweigen parallel ab:
- CURRENT, in dem neue Features entwickelt und getestet werden und nur für Entwickler oder fortgeschrittene Anwender geeignet ist. (CVS-Tag: CURRENT, HEAD oder .)
- STABLE, der als genügend getestete Software aus dem CURRENT-Zweig hervorgegangen ist und von dem etwa alle vier bis sechs Monate neue Versionen veröffentlicht werden.
- RELEASE sind Schnappschüsse des jeweiligen RELEASE-Zweiges, welche wiederum aus einem STABLE-Zweig hervorgehen. Bei RELEASEs werden keine Änderungen mehr vorgenommen, sondern nur noch sicherheitsrelevante Änderungen eingepflegt.
Ein anschauliches Beispiel: RELENG_6_1_0_RELEASE (dies ist das CVS-Tag von FreeBSD RELEASE-6.1) ist ein Schnappschuss aus dem RELEASE-Zweig RELENG_6_1. RELENG_6_1 wurde aus dem STABLE-Zweig RELENG_6 abgezweigt. RELENG_6 wiederum wurde aus dem CURRENT-Zweig MAIN abgezweigt. Der aktuelle Stand des CURRENT-Zweiges MAIN trägt das CVS-Tag HEAD.
Der Wartungszeitraum beträgt je nach Release und Priorität zwischen 6 und 24 Monaten.
Die FreeBSD-Ports sind von Kernel und Userland unabhängig.
Die Kommunikation zwischen Entwicklern untereinander und mit Benutzern findet wie bei vielen Opensource-Projekten hauptsächlich über das Internet statt (Mailinglisten, Newsgroups, IRC). Zusätzlich gibt es in verschiedenen Teilen der Welt so genannte BSDcons, bei denen Entwickler und interessierte Benutzer neue Projekte vorstellen und diskutieren.
Koordiniert wird die Entwicklung vom Core Team, das alle zwei Jahre von den aktiven Entwicklern mit CVS-Zugriff gewählt wird. Weitere Gruppen sind für spezielle Aufgaben zuständig, so gibt es zum Beispiel ein Release Engineering Team, das die Veröffentlichung von neuen Versionen koordiniert und ein Security Team, das für die schnelle Behebung und Veröffentlichung von Sicherheitslücken zuständig ist.
Logo
Der BSD-Daemon ist das "Maskottchen" von BSD-Unix und wurde von Beginn an als Logo verwendet. Er wird oft Beastie genannt, obwohl ihn der Träger des Copyrights für namenlos erklärt.
Das Zeichen erwies sich jedoch teils schwer reproduzier- und skalierbar, daher riefen im Februar 2005 die Entwickler des FreeBSD-Projektes auf, ein Logo für FreeBSD zu entwerfen. Ende Juni 2005 wurden die Vorschläge verschiedener Grafiker eingereicht und Ende September 2005 wurde das neue Logo ausgewählt. Zum Schluss standen sieben Einsendungen in der engeren Wahl - gewonnen hat das Design von Anton K. Gural, wie oben rechts in diesem Artikel verwendet.
Es gab darauf - wie bei NetBSD - verschiedene Erwägungen, das traditionelle Maskottchen nicht weiter als Logo zu verwenden. Im Ergebnis bleibt der Dämon Beastie nun doch das Maskottchen des Projektes. Das neue Logo ist eine Anspielung auf den Kopf des Dämons mit seinen Hörnern.
FreeBSD-Derivate und Distributionen
Man unterscheidet grob zwischen Distributionen und Derivaten: Bei Distributionen handelt es sich um andere Zusammenstellungen von Software, während es sich bei Derivaten um Veränderungen und Abspaltungen (auch Forks) des Systems handelt. Da die Erstellung von BSD-Distributionen im Vergleich zu anderen Systemen, wie GNU/Linux, noch eine relativ neue Entwicklung ist, und Änderungen meist tiefgreifender als bei Linuxdistributionen sind, werden in der BSD-Welt häufig auch Distributionen als Derivate bezeichnet. In der FreeBSD-Community werden Forks häufig negativ bewertet.
FreeBSD-Derivate
- Darwin – Mach-Kernel und FreeBSD-Userland, Basis für Mac OS X
- Data ONTAP, das Betriebssystem von NetApp-Speichersystemen[3]
- DragonFly BSD
- JunOS, das Betriebssystem der Router von Juniper Networks
FreeBSD-Distributionen
- BSDeviant – eine Mini-Live-CD
- ClosedBSD – eine Firewall-Distribution
- Debian GNU/kFreeBSD - Eine Portierung des Debian GNU Systems auf den FreeBSD-Kernel
- DesktopBSD – ein Desktop-FreeBSD
- FreeNAS – für Network Attached Storage (NAS) konzipiert
- FreeSBIE – eine Live-CD-Version von FreeBSD
- Frenzy – eine Live-CD
- Gentoo/FreeBSD, ein FreeBSD, das u. a. das Paketverwaltungssystem Portage von Gentoo übernimmt
- m0n0wall – eine Firewall-Distribution
- PC-BSD – ein Desktop-FreeBSD
- pfSense – eine Firewall/Router-Distribution
- PicoBSD – eine Disketten-Version von FreeBSD
- TrueBSD – eine Live-CD
- TrustedBSD (keine eigenständige Betriebssystemdistribution, sondern eine Erweiterung mit dem Hauptgewicht auf Sicherheitseigenschaften)
Siehe auch
Literatur
- Marshall Kirk McKusick und George V. Neville-Neil: The Design and Implementation of the FreeBSD Operating System. Addison-Wesley, 2004, ISBN 0-201-70245-2 (Beschreibung des Betriebssystems auf akademischen Niveau)
- Greg Lehey: The Complete FreeBSD . 4th Edition, O'Reilly, 2003, ISBN 0-596-00516-4 (Installation, Konfiguration und Gebrauch des FreeBSD-Systems)
- Harald Zisler: FreeBSD. Franzis, Juli 2006, ISBN 3772365388
- Michael Lucas: Absolute FreeBSD: The Ultimate Guide to FreeBSD. 2nd Edition, No Starch Press, November 2007, ISBN 1593271514
- Michael Urban, Brian Tiemann: FreeBSD 6 Unleashed. Sams, Juli 2006, ISBN 0672328755
- Michael Lucas: FreeBSD de Luxe. Unix-Serveradministration. Mitp-Verlag, Oktober 2003, ISBN 3826613430
Weblinks
- FreeBSD-Homepage
- FreeBSD-Handbuch
- FreeBSD - Das freie Betriebssystem für stabile Internet-Server – Chaosradio Express Sendung 048
- Linkkatalog zum Thema FreeBSD bei curlie.org (ehemals DMOZ)
- Informativer Artikel incl. Geschichte auf heise.de
Einzelnachweise
- ↑ von FreeBSD unterstützte Plattformen und deren Status
- ↑ VxWorks 6 Product Note: http://www.windriver.com/products/product-notes/vxworks6-product-note.pdf Seite 4
- ↑ NetApp Data ONTAP mit FreeBSD-Basis: http://www.netapp.com/de/company/leadership/advanced-technology/atg-open-source-de.html