Copyright © 2002, 2003 The FreeBSD Release Engineering Team
$FreeBSD$
FreeBSD ist ein eingetragenes Warenzeichen von Wind River Systems, Inc. Dies soll sich bald ändern.
Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium und Xeon sind Warenzeichen oder eingetragene Warenzeichen der Intel Corporation oder ihrer Gesellschaften in den Vereinigten Staaten und in anderen Ländern.
Microsoft, FrontPage, MS-DOS, Outlook, Windows, Windows Media und Windows NT sind entweder eingetragene Warenzeichen oder Warenzeichen der Microsoft Corporation in den Vereinigten Staaten und/oder in anderen Ländern.
Sparc, Sparc64, SPARCEngine und UltraSPARC sind Warenzeichen von SPARC International, Inc in den Vereinigten Staaten und in anderen Ländern. Produkte, die das Warenzeichen SPARC tragen, basieren auf einer von Sun Microsystems, Inc. entwickelten Architektur.
Viele Produktbezeichnungen von Herstellern und Verkäufern sind Warenzeichen. Soweit dem FreeBSD Project das Warenzeichen bekannt ist, werden die in diesem Dokument vorkommenden Bezeichnungen mit dem Symbol ``™'' oder dem Symbol ``®'' gekennzeichnet.
Dieser Artikel enthält Informationen über den Status von FreeBSD 5.2-RELEASE für die Anwender, die bisher noch keine Erfahrung mit den 5.X Versionen oder FreeBSD sammeln konnten. Er enthält einige Hintergrundinformationen über die vor und während einer Veröffentlichung ablaufende Prozesse, nennt die wichtigsten Neuerungen und die Stellen, an denen die ersten Anwender Probleme haben könnten. Weiterhin gibt es Informationen über die Pläne für weitere Veröffentlichungen im Entwicklungszweig 4-STABLE und ein paar Hinweise für die Aktualisierung bestehender Systeme.
Nach über zwei Jahren steht mit FreeBSD 5.X wieder eine komplett neue FreeBSD-Version zur Verfügung. Sie bietet nicht nur diverse neue Möglichkeiten, auch und gerade ``unter der Haube'' hat sich einiges verbessert. Der Nachteil dieser Neuerungen ist, daß große Teile des Systems neu und nicht ausreichend getestet sind. Im Vergleich zu den existierenden 4.X Versionen kann der Schritt zu den ersten 5.X Versionen zu Verschlechterungen in den Bereichen Stabilität, Leistung und teilweise auch Funktionalität führen.
Aus diesen Gründen warnen wir alle Anwender, ihre Systeme nicht von älteren FreeBSD-Versionen auf 5.0 zu aktualisieren, wenn sie die "Problemzonen" nicht kennen oder nicht bereit sind, die Einschränkungen in den neuesten Versionen in Kauf zu nehmen. Gerade konservative Anwender sollten in der nahen Zukunft 4.X-Versionen (wie 4.9-RELEASE) benutzen. Wir meinen, daß diese Anwender erst zu 5.X wechseln sollten, nachdem der Entwicklungszweig 5-STABLE existiert; dies wird wahrscheinlich nach der Veröffentlichung von 5.3-RELEASE passieren.
Hier zeigt sich das ``Henne und Ei'' Problem bei der Veröffentlichung von FreeBSD 5.X. Alle am FreeBSD Project beteiligten Personen wollen ein FreeBSD, das möglichst stabil und zuverlässig ist. Um dieses Ziel zu erreichen, müssen die neue Version und speziell die neuen Komponenten von möglichst vielen Anwendern getestet werden. Dummerweise gibt es bei realistischer Betrachtung nur eine Möglichkeit, eine größere Anzahl an Anwender für einen Test zu gewinnen: Die Veröffentlichung der zu testenden Version!
Dieser Artikel beschreibt einige der Probleme, die bei der Installation und Benutzung von FreeBSD 5.2-RELEASE auftreten können. Zuerst wird beschrieben, wie eine neue FreeBSD Version veröffentlicht wird. Dann werden die interessanteren Neuerungen in FreeBSD 5.2-RELEASE und die Bereiche, in denen (gerade für unvorsichtige Anwender) Probleme auftreten können, vorgestellt. Anwender, die erst einmal bei Systemen auf Basis von 4-STABLE bleiben möchten, erhalten einen kurzen Ausblick auf die kurz- und mittelfristigen Planungen für diesen Entwicklungszweig. Zuletzt wird besprochen, was bei einer Aktualisierung eines existierenden 4.X Systems auf 5.0 beachtet werden muß.
Das Prinzip der FreeBSD-Entwicklung ist die Verwendung mehrerer Entwicklungszweige innerhalb eines ``CVS Repository''. Der Hauptzweig wird ``CURRENT'' genannt und innerhalb des Repository mit dem symbolischen Namen HEAD referenziert. Neuerungen werden zunächst in diesen Zweig eingebracht. Das bedeutet zwar, daß neue Möglichkeiten zunächst einmal nur in CURRENT zur Verfügung stehen, es bedeutet allerdings auch, daß dieser Zweig von Zeit zu Zeit Kummer bereitet, während die Neuerungen getestet und ihre Fehler entfernt werden.
Wenn eine neue FreeBSD-Version veröffentlicht wird, basiert diese in der Regel auf einem der ``STABLE'' (stabil) genannten Entwicklungszweige. Neuerungen werden nur in diese Entwicklungszweige übernommen, nachdem sie in CURRENT getestet wurden. Zur Zeit gibt es nur einen aktiven STABLE Entwicklungszweig: ``4-STABLE''; dieser Zweig war die Grundlage für alle 4.X Versionen. Dieser Zweig wird innerhalb des CVS Repository durch den symbolischen Namen RELENG_4 gekennzeichnet.
Die Basis für FreeBSD 5.0, 5.1 und 5.2 ist der Entwicklungszweig CURRENT. Die erste dieser Versionen erschien nach über zwei Jahren Entwicklungszweig (die letzte Veröffentlichung auf Basis von HEAD war FreeBSD 4.0, im März 2000).
Einige Zeit nach der Veröffentlichung von FreeBSD 5.0 wird im FreeBSD CVS Repository der Zweig ``5-STABLE'' mit dem symbolischen Namen RELENG_5 erzeugt werden. Die letzten beiden Entwicklungszweige dieser Art (3-STABLE und 4-STABLE) wurden unmittelbar nach der Veröffentlichung der jeweiligen ``Punkt Null'' Versionen (3.0 bzw. 4.0) erzeugt. Rückblickend müssen wir feststellen, daß dadurch in beiden Fällen nicht genug Zeit war, um CURRENT zu stabilisieren, bevor der neue Entwicklungszweig eingerichtet wurde. Dies führte zu unnötiger Mehrarbeit, da Fehlerkorrekturen von einem Zweig in den anderen Zweig übertragen werden mußten; außerdem kam es zu einigen Änderungen in der Architektur, die nicht in den jeweils anderen Zweig übernommen werden konnten.
Aus diesem Grund wird das Release Engineering Team den neuen 5-STABLE Entwicklungszweig erst dann im CVS Repository einrichten, wenn eine solide Grundlage zur Verfügung steht. Es ist sehr wahrscheinlich, daß vorher mehrere 5.X Versionen erscheinen werden; zur Zeit rechnen wir damit, daß 5-STABLE beim Erscheinen von 5.3-RELEASE erzeugt werden wird.
Weitere Informationen über den Ablauf bei der Veröffentlichung einer neuen FreeBSD Version finden Sie auf den Release Engineering Web pages und im Artikel FreeBSD Release Engineering. Informationen über den geplanten Entwicklungszweig 5-STABLE finden Sie auf der ``The Roadmap for 5-STABLE''.
Die Glanzpunkte von FreeBSD 5.X sind die vielen Neuerungen. Diese Neuerungen und die neue Funktionalität basieren zum größten Teil auf massiven Änderungen der Systemarchitektur, die nicht in den Entwicklungszweig 4-STABLE eingepflegt wurden. Viele in sich abgeschlossene Änderungen wie Treiber für neue Geräte oder neue Benutzerprogramme wurden dagegen schon nach 4-STABLE übernommen. Die folgende Liste enthält eine kurze Übersicht über die wichtigsten Neuerungen in FreeBSD 5.0:
SMPng: Die ``nächste Generation'' der Unterstützung für Systeme mit mehreren Prozessoren (noch nicht abgeschlossen). Die Arbeit konzentriert sich zur Zeit darauf, Locks fuer möglichst kleine Bereiche der diversen Subsysteme des Kernels zu implementieren, damit möglichst viele Vorgänge (Threads) gleichzeitig im Kernel ablaufen können.
KSE: Die ``Kernel Scheduled Entities'' erlauben es einem Prozess, mehrere Threads auf Kernel-Ebene zu nutzen, analog zur Aktivierung via Scheduler. Die Bibliotheken libkse und libthr erlauben auch normalen Programmen mit mehreren Threads, diese Erweiterung über die pthread(3) API zu nutzen.
Neue Plattformen: Zusätzlich zu i386, pc98 und Alpha werden jetzt auch sparc64, ia64 und amd64 Systeme unterstützt.
GCC: Der Compiler und die dazugehörigen Werkzeuge basieren jetzt auf GCC 3.3 und nicht mehr auf GCC 2.95.X.
MAC: Unterstützung für erweiterbare ``Mandatory Access Control'' Regelwerke.
GEOM: Ein flexibles Gerüst zur Manipulation von Daten beim Transfer von und zu Festplatten. Auf dieser Basis wurde GBDE entwickelt, ein experimentelles Modul zur Verschlüsselung des Festplatteninhaltes.
FFS: Das Dateisystem unterstützt jetzt Hintergrund- fsck(8) (um das System nach einem Absturz schneller verfügbar zu machen) sowie ``Schnappschüsse''.
UFS2: Dieses neue Dateisystem unterstützt größere Dateien und zusätzliche Dateiberechtigungen. newfs(8) erzeugt jetzt standardmäßig UFS2 Dateisysteme und auf allen Plattformen außer PC98 gilt dies auch für Dateisysteme, die mit sysinstall(8) erzeugt werden.
Cardbus: Cardbus wird jetzt unterstützt.
Bluetooth: Bluetooth-Geräte werden jetzt unterstützt.
Eine ausführlichere Übersicht über die Neuerungen finden Sie in den ``Release Notes'' für die verschiedenen FreeBSD 5.X Versionen.
Ein Nachteil der Neuerungen in FreeBSD 5.X ist, daß es in einigen Bereichen auf Grund der noch nicht abgeschlossenen Entwicklung zu Problemen oder zu unerwarteten Effekten kommen kann. Einige (aber nicht alle) der Problemzonen sind in der folgenden Liste zusammengefaßt:
Die Arbeit an diversen Neuerungen ist noch nicht abgeschlossen, dazu gehören unter anderem SMPng und KSE. Diese Erweiterungen sind zwar für Test- und Experimentalzwecke ausreichend stabil, aber unter Umständen nicht stabil genug für den Produktionsbetrieb.
Durch die Änderungen in den Datenstrukturen des Kernels und der Schnittstellen für Anwendungen und Programmierer (ABI/API), müssen Treiber anderer Hersteller angepaßt werden, damit sie korrekt mit FreeBSD 5.0 zusammenarbeiten. Es ist nicht ausgeschlossen, daß es bis zum Erscheinen des Entwicklungszweiges 5-STABLE weitere kleinere Änderungen am ABI/API geben wird, speziell auf den neueren Architekturen. In einigen (hoffentlich seltenen) Fällen können sich auch für den Anwender sichtbare Strukturen ändern, was es notwendig machen kann, Anwendungen neu zu kompilieren und/oder Ports und Packages neu zu installieren.
Einige Teile des FreeBSD Basissystems wurden in die Ports Collection verschoben. Dazu gehören insbesondere Perl, UUCP und die meisten (nicht alle) Spiele. Diese Programme werden zwar weiterhin entwickelt und unterstützt, es kann aber verwirren, daß sie nicht mehr Teil des Basissystems sind.
Einige Teile des FreeBSD-Basissystems wurden nicht mehr gepflegt, weil es nicht genügend Anwender und/oder Entwickler gab. Diese Teile mußten entfernt werden, dazu zählen unter anderem die Erzeugung von Programmen im Format a.out;, die XNS-Netzwerkprotokolle und der Treiber für den X-10 Controller.
Viele Ports und Packages, die mit FreeBSD 4-STABLE noch korrekt liefen, können mit FreeBSD 5.X nicht genutzt oder nicht kompiliert werden. Der Grund ist in der Regel der neue Compiler oder die Aufräumarbeiten in den Header-Dateien. In einigen Fällen liegt es aber auch an den Änderungen im Kernel oder bei den unterstützten Geräten.
Viele der Neuerungen in FreeBSD 5.X wurden bisher nur auf relativ wenigen Systemen getestet. Viele dieser Neuerungen (wie SMPng) haben Auswirkungen auf große Bereiche des Kernels, und es ist schwierig, ihre Auswirkungen auf die Stabilität und Geschwindigkeit des Systems abzuschätzen.
Die Neuerungen in FreeBSD 5.X enthalten noch Routinen zur Unterstützung bei der Fehlersuche und Diagnose. Dadurch kann es dazu kommen, daß ein System mit FreeBSD 5.X langsamer ist als mit 4-STABLE.
Neuerungen werden erst in den Entwicklungszweig 4-STABLE übernommen, nachdem sie eine Zeit lang in -CURRENT ``gereift'' sind. Bei FreeBSD 5.X fehlt dieser stabilisierende Effekt eines -STABLE Entwicklungszweiges. Der Entwicklungszweig 5-STABLE wird wahrscheinlich erst einige Zeit nach der Veröffentlichung von 5.3-RELEASE eingerichtet werden.
Die Dokumentation (wie z.B. das FreeBSD Handbuch und der FAQ) ist teilweise noch nicht auf dem Stand von FreeBSD 5.X.
Da einige dieser Probleme auch negative Auswirkungen auf die Stabilität des Systems haben, rät das Release Engineering Team konservativen Anwendern und Firmen, Versionen aus dem Entwicklungszweig 4-STABLE zu verwenden, bis die 5.X Versionen zuverlässiger geworden sind. Wir sind zwar der Meinung, daß viele der Stabilitätsprobleme der ersten Versionen behoben wurden, allerdings wird noch an einigen Geschwindigkeitsprobleme gearbeitet. Wir weisen auch darauf hin, daß ein guter Systemadministrator neue Versionen erst auf Testsystemen ausprobiert, bevor er sie auf seinen Produktionssystemen oder anderen wichtigen Maschinen installiert.
Die Veröffentlichung der ersten 5.X bedeutet nicht, daß die Unterstützung für die 4.X Versionen eingestellt wird. FreeBSD 4.8 erschien im April 2003, zwei Monate nach der Veröffentlichung von FreeBSD 5.0, gefolgt von FreeBSD 4.9 im Oktober 2003. Ob es weitere Versionen auf der Basis des Entwicklungszweiges 4-STABLE geben wird, hängt von mehreren Faktoren ab, der wichtigste davon ist die Existenz und Stabilität des Entwicklungszweiges 5-STABLE. Wenn CURRENT nicht stabil genug ist, um einen Entwicklungszweig 5-STABLE zu rechtfertigen, werden weitere Versionen auf Basis des Entwicklungszweiges 4-STABLE möglich und notwendig sein. Bis zum Erscheinen der offiziell letzten Version auf Basis von 4-STABLE bleibt es den Entwicklern überlassen, ob sie Neuerungen aus HEAD in 4-STABLE einpflegen (im Rahmen der schon bestehenden Regelungen).
Bis zu einem gewissen Grad werden das Release Engineering Team und die Entwickler auch die Wünsche der Benutzer nach weiteren Versionen auf Basis von 4-STABLE beachten. Allerdings nur, so weit dies im Rahmen der beschränkten Ressourcen möglich ist. Unserer Erfahrung nach tendiert die FreeBSD Gemeinschaft (sowohl Anwender als auch Entwickler) dazu, Erweiterungen in die 5.X Versionen einzubringen, weil es zu schwierig ist, neue Funktionalitäten in 4.X einzubauen und dort zu pflegen.
Neue Versionen auf Basis des Entwicklungszweiges 4-STABLE werden vom Security Officer
Team <[email protected]>
im üblichen Rahmen unterstützt werden, genauere Informationen dazu finden Sie
auf der Security
page auf der FreeBSD Webseite. In der Regel werden die letzten beiden Versionen jedes
Entwicklungszweiges durch die Veröffentlichung von Sicherheitshinweisen und Patches
unterstützt; dem Team ist es allerdings freigestellt, diese Unterstützung auf
weitere Versionen oder spezielle Probleme auszudehnen.
Das Release Engineering Team hat zur Zeit keine konkreten Pläne für weitere Veröffentlichungen auf Basis des Entwicklungszweiges 4-STABLE. Falls es sie geben sollte, werden sie keine größeren Änderungen enthalten. Sie werden wahrscheinlich eine Versionsnummer der Form 4.9.X tragen, um anzuzeigen, daß es im Vergleich zu 4.9-RELEASE keine größeren funktionalen Änderungen gibt. Die Schwerpunkte werden in den Bereichen Sicherheit, Korrektur von Fehlern und Treiber-Verbesserungen liegen (speziell, wenn bereits existierende Treiber einfach um die Unterstützung für neue Geräte zu erweitern sind). Größere Änderungen wird es in diesen Versionen nicht geben, das gilt besonders für Änderungen, die auf die in 5.X neu eingeführte Infrastruktur angewiesen sind.
Dieses Kapitel enthält Hinweise für Anwender, die ihr bestehendes FreeBSD 4.X System auf FreeBSD 5.X aktualisieren wollen. Wie bei jeder Aktualisierung ist es auf jeden Fall notwendig, vorher die Release Notes und die Errata der neuen Version zu lesen; bei Aktualisierung über den Quellcode ist src/UPDATING Pflichtlektüre.
Der einfachste Ansatz ist immer noch ``Sicherheitskopien erstellen, Platte formatieren, neues System installieren, Daten wieder einspielen''. Dadurch werden alle Probleme mit veralteten und nicht kompatiblen Programmen und Konfigurationsdateien umgangen. Die neuen Dateisysteme können maximalen Nutzen aus den diversen Neuerungen (speziell UFS2) ziehen.
Zum gegenwärtigen Zeitpunkt hat noch niemand ausführlich getestet, ob und wie gut die ``Upgrade''-Option in sysinstall(8) bei einem Update von 4.0 zu 5.0 funktioniert. Wir raten daher dringend von der Verwendung dieser Funktion ab. Eines der Hauptprobleme ist, daß bei dieser Variante diverse Dateien nicht gelöscht werden, die zwar von 4.X genutzt wurden, aber in 5.X nicht mehr vorhanden sind. Diese Altlasten können zu Problemen führen. Dazu gehören unter anderem veraltete C++-Headerdateien, in die Ports Collection verschobene Programme und shared libraries, die verschoben wurden, um dynamisch gebundene Programme auf dem Root-Dateisystem möglich zu machen.
Auf i386™ und pc98 Systemen kann die Konfiguration von ISA Geräten beim Systemstart mit dem Werkzeug UserConfig eingestellt werden, dies gilt auch beim Start von einem Installations-Medium. Dieses Programm wurde in FreeBSD 5.X.0 durch device.hints(5) ersetzt; dieses stellt zwar die gleiche Funktionalität bereit, ist aber von der Bedienung her völlig verschieden.
Bei einer Installation von Diskette kann es notwendig werden, die neue Treiber-Diskette zu benutzen. Das drivers.flp Diskettenimage sollte im allgemeinen überall dort verfügbar sein, wo auch schon die bekannten kern.flp und mfsroot.flp verfügbar sind.
Bei einer Installation von CD-ROM auf einem i386-System wird jetzt ein neues Startprogramm mit dem Namen ``no-emulation boot loader'' genutzt. Dadurch ist es unter anderem möglich, auf der CD den Standardkernel (GENERIC) statt des auf den Disketten verwendeten Mini-Kernels zu nutzen. Jedes System, das von den Installations-CDs für Microsoft® Windows NT® 4.0 booten kann, sollte auch mit den FreeBSD 5.X CD-ROMs zurechtkommen.
Es ist auf jeden Fall erforderlich, vor der Aktualisierung src/UPDATING zu lesen. Der Abschnitt ``To upgrade from 4.x-stable to current'' enthält eine Schritt-für-Schritt Anleitung, der Sie unbedingt folgen müssen, die Nutzung der üblichen ``Abkürzungen'' ist nicht möglich.
Perl wurde aus dem Basissystem entfernt und sollte entweder als Package oder über die Ports Collection installiert werden. Die bisher übliche Praxis, Perl als Teil des Basissystems zu behandeln und mit ihm zusammen zu kompilieren, führte zu diversen Problemen, die eine Aktualisierung von Perl erschwerten. Die im Standardsystem vorhandenen Programme, die Perl benötigten, wurden entweder in einer anderen Sprache neu geschrieben (wenn sie noch benötigt wurden) oder ersatzlos entfernt (wenn sie überflüssig waren). Da sysinstall(8) das Perl Package bei den meisten Distributionen automatisch mit installiert, sollte diese Änderung kaum Auswirkungen auf die Anwender haben.
Einige Scripte verlassen sich darauf, daß der Perl-Interpreter als /usr/bin/perl verfügbar ist. Der Perl Port enthält das Programm use.perl, mit dem ein passender Satz symbolischer Links für diese Scripte erzeugt werden kann. Nach dem Aufruf von use.perl port sollte alles wie erwartet funktionieren.
Es ist zwar möglich, für 4.X geschriebene Programme unter 5.X zu nutzen, allerdings muß dazu die Distribution compat4x installiert sein. Es mag zwar in einigen Fällen möglich sein, alte Ports zu benutzen, allerdings sind einige Fälle bekannt, in denen es definitiv nicht möglich ist. Zum Beispiel müssen die Ports devel/gnomevfs2, mail/postfix und security/cfs neu übersetzt werden, da sich die Struktur statfs geändert hat.
Bei der Aktualisierung eines bestehenden Systems auf Basis von 4-STABLE, ist es unbedingt notwendig, die alten Dateien in /usr/include zu löschen. Im allgemeinen ist es ausreichend, dieses Verzeichnis vor der Installation bzw. vor dem installworld zu entfernen. Wird das Verzeichnis nicht entfernt, kann es zu Problemen kommen (speziell mit C++-Programmen), da der Compiler dann einen Mix aus alten und neuen Headerdateien verwendet.
Es gibt kein MAKEDEV mehr, weil es nicht mehr benötigt wird. FreeBSD 5.X benutzt ein spezielles Dateisystem für Geräte, das die entsprechenden Device Nodes bei Bedarf automatisch erzeugt. Weitere Informationen finden Sie in devfs(5).
Alle mit newfs(8) erzeugten Dateisysteme werden standardmäßig im Format UFS2 angelegt. Diese gilt auf allen Plattformen außer PC98 auch für Dateisysteme, die mit sysinstall(8) erzeugt werden. Da FreeBSD 4.X nur UFS1 lesen kann, müssen alle Dateisysteme, die sowohl mit 4.X als auch mit 5.X nutzbar sein sollen, im Format UFS1 erzeugt werden. Dieser Fall tritt typischerweise auf Systemen auf, auf denen 4.X und 5.X installiert und abwechselnd betrieben werden. In newfs(8) steht dazu die Option -O1 zur Verfügung, auch sysinstall(8) enthält eine entsprechende Option. Bitte beachten Sie, daß es kein Konvertierungsprogramm zur Umwandlung von UFS1 nach UFS2 (oder umgekehrt) gibt, nur die Variante Backup, Formatieren, Restore.
FreeBSD 5.2-RELEASE enthält zwar viele interessante Neuerungen, aber es ist noch nicht für alle Anwender geeignet. Aus diesem Grund haben wir in diesem Dokument Informationen über die Abläufe bei der Veröffentlichung einer neuen Version, die interessantesten Neuerungen in den 5.X Versionen und wahrscheinliche Probleme gegeben. Weiterhin enthielt er einen Ausblick auf die Zukunft des Entwicklungszweiges 4-STABLE und Informationen für Anwender, die schon jetzt umsteigen wollen.
Diese Datei und andere Dokumente zu dieser Version sind bei ftp://ftp.FreeBSD.org/verfuegbar.
Wenn Sie Fragen zu FreeBSD haben, lesen Sie erst die Dokumentation, bevor Sie sich an <[email protected]> wenden.
Wenn Sie Fragen zu dieser Dokumentation haben, wenden Sie sich an <[email protected]>.