%release; X"> X"> ]>
Hinweise für die ersten Anwender von &os; &release.current; The &os; Release Engineering Team $FreeBSD$ 2002 2003 The &os; Release Engineering Team Dieser Artikel enthält Informationen über den Status von &os; &release.current; für die Anwender, die bisher noch keine Erfahrung mit den &release.5x; Versionen oder &os; 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. Einführung Nach über zwei Jahren steht mit &os; &release.5x; wieder eine komplett neue &os;-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 &release.4x; Versionen kann der Schritt zu den ersten &release.5x; 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 &os;-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 &release.4x;-Versionen (wie 4.8-RELEASE) benutzen. Wir meinen, daß diese Anwender erst zu &release.5x; wechseln sollten, nachdem der Entwicklungszweig 5-STABLE existiert; dies wird wahrscheinlich nach der Veröffentlichung von 5.2-RELEASE passieren. Hier zeigt sich das Henne und Ei Problem bei der Veröffentlichung von &os; &release.5x;. Alle am &os; Project beteiligten Personen wollen ein &os;, 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 &os; &release.current; auftreten können. Zuerst wird beschrieben, wie eine neue FreeBSD Version veröffentlicht wird. Dann werden die interessanteren Neuerungen in FreeBSD &release.current; 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 &release.4x; Systems auf 5.0 beachtet werden muß. Veröffentlichung neuer &os;-Versionen Das Prinzip der &os;-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 &os;-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 &release.4x; Versionen. Dieser Zweig wird innerhalb des CVS Repository durch den symbolischen Namen RELENG_4 gekennzeichnet. Die Basis für &os; 5.0 und 5.1 ist der Entwicklungszweig CURRENT. Damit wird zum ersten Mal nach über zwei Jahren eine neue Version auf Basis dieses Entwicklungszweiges erscheinen (die letzte war &os; 4.0, im März 2000). Einige Zeit nach der Veröffentlichung von &os; 5.0 wird im &os; 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 &release.5x; Versionen erscheinen werden; zur Zeit rechnen wir damit, daß 5-STABLE nach dem Erscheinen von 5.2-RELEASE erzeugt werden wird. Weitere Informationen über den Ablauf bei der Veröffentlichung einer neuen &os; Version finden Sie auf den Release Engineering Web pages und im Artikel &os; Release Engineering. Informationen über den geplanten Entwicklungszweig 5-STABLE finden Sie auf der The Roadmap for 5-STABLE. Neuerungen Die Glanzpunkte von &os; &release.5x; 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 &os; 5.0: SMPng: Die nächste Generation der Unterstützung für Systeme mit mehreren Prozessoren (noch nicht abgeschlossen). Es ist jetzt möglich, daß mehrere Prozessoren gleichzeitig den Kernel nutzen. KSE: Die Kernel Scheduled Entities erlauben es einem Prozess, mehrere Threads auf Kernel-Ebene zu nutzen, analog zur Aktivierung via Scheduler. Die (experimentellen) Bibliotheken libkse und libthr erlauben auch normalen Programmen mit mehreren Threads, diese Erweiterung zu nutzen. Neue Plattformen: Zusätzlich zu i386, pc98 und Alpha werden jetzt auch sparc64 und ia64 Systeme unterstützt. GCC: Der Compiler und die dazugehörigen Werkzeuge basieren jetzt auf GCC 3.2.2 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 ein experimentelles Modul zur Verschlüsselung des Festplatteninhaltes entwickelt. FFS: Das Dateisystem unterstützt jetzt Hintergrund-&man.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. &man.newfs.8; erzeugt jetzt standardmäßig UFS2 Dateisysteme und auf allen Plattformen außer PC98 gilt dies auch für Dateisysteme, die mit &man.sysinstall.8; erzeugt werden. Cardbus: Cardbus wird jetzt unterstützt. Eine ausführlichere Übersicht über die Neuerungen finden Sie in den Release Notes für &os; &release.prev; und &release.current;. Nachteile für frühe Anwender Ein Nachteil der Neuerungen in &os; &release.5x; 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 &os; 5.0 zusammenarbeiten. Es ist nicht ausgeschlossen, daß es bis zum Erscheinen des Entwicklungszweiges 5-STABLE weitere kleinere Änderungen am ABI/API geben wird. Einige Teile des &os; 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 &os;-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 &os; 4-STABLE noch korrekt liefen, können mit &os; 5.0 nicht genutzt oder nicht kompiliert werden. Der Grund ist in der Regel der neue Compiler oder die Aufräumarbeiten in den Header-Dateien. Viele der Neuerungen in &os; &release.5x; wurden bisher nur auf relativ wenigen Systemen getestet. Viele dieser Neuerungen (wie SMPng) haben Auswirkungen auf große Bereiche des Kernels. Die Neuerungen in &os; 5.0 enthalten noch Routinen zur Unterstützung bei der Fehlersuche und Diagnose. Dadurch kann es dazu kommen, daß ein System mit &os; 5.0 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 &os; 5.0 fehlt dieser stabilisierende Effekt eines -STABLE Entwicklungszweiges. Der Entwicklungszweig 5-STABLE wird wahrscheinlich erst einige Zeit nach der Veröffentlichung von 5.2-RELEASE eingerichtet werden. Die Dokumentation (wie z.B. das &os; Handbuch und der FAQ) ist teilweise noch nicht auf dem Stand von &os; &release.5x;. 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 &release.5x; Versionen zuverlässiger geworden sind. Die Zukunft des Entwicklungszweiges 4-STABLE Die Veröffentlichung von &os; 5.0 bedeutete nicht das Ende des Entwicklungszweiges 4-STABLE: &os; 4.8 erschien im April 2003, zwei Monate nach der Veröffentlichung von &os; 5.0. Es wird wahrscheinlich noch eine weitere Version auf der Basis dieses Entwicklungszweiges geben: Das für den Sommer 2003 geplante 4.9-RELEASE. Auch eine Version 4.10 liegt im Bereich des Möglichen. Dies 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. Neue Versionen auf Basis des Entwicklungszweiges 4-STABLE werden vom &a.security-officer; im üblichen Rahmen unterstützt werden, genauere Informationen dazu finden Sie auf der Security page auf der &os; 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. Hinweise für die Aktualisierung von &os; &release.4x; Dieses Kapitel enthält Hinweise für Anwender, die ihr bestehendes &os; &release.4x; System auf &os; &release.5x; 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. Aktualisierung ohne Quellcode 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 &man.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 &release.4x; genutzt wurden, aber in &release.5x; nicht mehr vorhanden sind. Diese Altlasten können zu Problemen führen. 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 &os; 5.0 durch &man.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 Windows NT 4.0 booten kann, sollte auch mit den &os; &release.5x; CD-ROMs zurechtkommen. Aktualisierung mit Quellcode 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. Allgemeine Hinweise 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 &man.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 &release.4x; geschriebene Programme unter &release.5x; zu nutzen, allerdings muß dazu die Distribution compat4x installiert sein. Damit könnte es auch möglich sein, alte Ports zu benutzen. 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. &os; &release.5x; benutzt ein spezielles Dateisystem für Geräte, das die entsprechenden Device Nodes bei Bedarf automatisch erzeugt. Weitere Informationen finden Sie in &man.devfs.5;. Alle mit &man.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 &man.sysinstall.8; erzeugt werden. Da &os; &release.4x; nur UFS1 lesen kann, müssen alle Dateisysteme, die sowohl mit &release.4x; als auch mit &release.5x; nutzbar sein sollen, im Format UFS1 erzeugt werden. Dieser Fall tritt typischerweise auf Systemen auf, auf denen &release.4x; und &release.5x; installiert und abwechselnd betrieben werden. In &man.newfs.8; steht dazu die Option zur Verfügung, auch &man.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. Zusammenfassung &os; &release.current; 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 &release.5x; 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.