# FreeBSD/ia64 5.0-CURRENT Release Notes

### The FreeBSD Project

Copyright © 2000, 2001, 2002, 2003 von The FreeBSD Documentation Project

Copyright © 2002, 2003 von The FreeBSD German Documentation Project

$FreeBSD: src/release/doc/de_DE.ISO8859-1/relnotes/common/new.sgml,v 1.28 2003/01/16 22:41:47 ue Exp $

Die Release Notes für FreeBSD 5.0-CURRENT enthalten eine Übersicht über aktuelle Änderungen in FreeBSD im Entwicklungszweig 5-CURRENT. Die Liste umfaßt sowohl die Änderungen des Kernels als auch Änderungen der Benutzerprogramme; dazu kommen alle Sicherheitshinweise, die seit der letzten Version herausgegeben wurden. Einige kurze Anmerkungen zum Thema Aktualisierung wurden ebenfalls aufgenommen.

# 1. Einführung

Dieses Dokument enthält die Release Notes für FreeBSD 5.0-CURRENT auf IA-64 Systemen. Es beschreibt die Komponenten von FreeBSD, die in letzter Zeit hinzugefügt, geändert, oder gelöscht wurden. Außerdem erhalten Sie Hinweise für die Aktualisierung Ihres FreeBSD-Systems.

Die snapshot Distribution, für die diese Release Notes gültig sind, markiert einen Punkt im Entwicklungszweig 5-CURRENT zwischen 4.0-RELEASE und der zukünftigen Version 5.0-RELEASE. Sie können einige fertige snapshot Distributionen, die in diesem Entwicklungszweig entstanden sind, auf http://snapshots.jp.FreeBSD.org/ finden.

# 2. Neuerungen

In diesem Artikel finden Sie + viele der für den Anwender offensichtlichsten Neuerungen und Änderungen in FreeBSD seit 4.0-RELEASE. Dazu gehören sowohl die Änderungen, die nur 4.0-RELEASE betreffen, als auch Änderungen in den anderen Entwicklungszweigen seit FreeBSD 4.6-RELEASE. Letztere sind als [MERGED] gekennzeichnet. +

Die Einträge dokumentieren neue Treiber bzw. Unterstützung für neue Hardware, neue Befehle oder Optionen, die Behebung wichtiger Fehler, und Aktualisierungen von Dritt-Software. Sicherheitshinweise, die nach dem Erscheinen von 4.6-RELEASE herausgegeben wurden, sind ebenfalls aufgeführt.

Viele weiter Änderungen an FreeBSD sind hier aus Platzgründen nicht aufgeführt. Zum Beispiel wurde die Dokumentation verbessert und korrigiert, kleiner Fehler wurden beseitigt, potentielle Sicherheitsrisiken im Sourcecode wurden aufgespürt und beseitigt, und der Sourcecode wurde allgemein überarbeitet.

## 2.1. Änderungen im Kernel

acct(2) öffnet die Datei mit den Accounting-Daten jetzt im Modus ``Anfügen'', damit das Accounting auch in diesem Fall mit accton(8) eingeschaltet werden kann. [MERGED]

Der Kernel wurde um eine von OpenBSD stammende Crypto-Infrastruktur ergänzt (siehe crypto(4) und crypto(9)). Sie stellt dem Kernel eine konsistente Schnittstelle zu Hardware- und Software-Varianten von Verschlüsselungsalgorithmen zur Verfügung, Benutzerprogramme erhalten Zugriff auf Verschlüsselungs-Hardware. Treiber für Karten auf Basis von hifn ( hifn(4)) und Braodcom ( ubsec(4)) stehen zur Verfügung. [MERGED]

Der neue ddb(4) Befehl `show pcpu` gibt einen Teil der CPU-spezifischen Daten aus.

Das neue `devctl` Interface bietet Benutzerprogrammen die Möglichkeit, Informationen über neue und entfernte Geräte zu erhalten. Zur Zeit wird diese Option hauptsächlich von devd(8) genutzt.

devfs(5), mit dem Einträge im Verzeichnis `/dev` automatisch erstellt werden können und das die Erkennung neuer Geräte im laufenden Betrieb erlaubt, wurde überarbeitet. devfs(5) ist jetzt standardmäßig aktiviert und kann mit der Kernel-Option `NODEVFS` abgeschaltet werden. Das Subsystem "rule" (Regel) erlaubt es dem Administrator, bestimmte Eigenschaften von neuen devfs festzulegen, bevor Sie für Benutzerprogramme sichtbar werden. Dabei werden sowohl statische (wie z.B. `/dev/speaker`) als auch dynamische (z.B. `/dev/bpf*`, einige Wechselmedien) Nodes unterstützt. Jedes devfs(5) kann ein eigenes Regelwerk haben, damit sind spezielle Richtlinien für Dinge wie z.B. jails möglich. Zur Manipulation der Regeln und Regelwerke dient das Tool devfs(8).

Der neue Treiber digi wurde hinzugefügt, um Unterstützung für PCI Xr-basierte und ISA Xem Digiboard Karten zu bieten. Der neue Befehl digictl(8) wird (hauptsächlich) dazu genutzt, um Karten wie die PC/Xem neu zu initialisieren, nachdem externe Port Module angeschlossen wurden. Dieser Treiber ersetzt den älteren Treiber dgm.

Die neue Systemfunktion eaccess(2) arbeitet ähnlich wie access(2), benutzt aber die effektiven Benutzerrechte statt der wahren Benutzerrechte.

Jede jail(2) Umgebung kann jetzt ihre eigene Sicherheitsstufe besitzen.

Die Sysctl-Variablen für jail(2) sind von `jail.*` nach `security.*` verschoben worden. Andere Sysctl-Variablen, die mit der Sicherheit zusammenhängen, sind von `kern.security.*` nach `security.*` verschoben worden.

Die Umgebungsvariablen des Kernels können jetzt zur Laufzeit mit dem System-Call kenv(2) geändert werden.

Der Treiber labpc(4) wurde entfernt, da er überaltert war (``bitrot'').

Der Loader und der Kernel Linker suchen nun in jedem Verzeichnis mit KLDs nach `linker.hints` Dateien, um die zu einem Modul-Namen und zu einer Modul-Version passende KLD-Datei zu erhalten. Die Dateien werden mit dem neuen Programm kldxref(8) erzeugt.

FreeBSD enthält jetzt die notwendige Infrastruktur für Mandatory Access Controls, das TrustedBSD MAC Framework. Damit können Kernel-Module während der Übersetzung der Kernels, beim Systemstart oder zur Laufzeit eingebunden werden, um die Sicherheitsmechanismen des Systems zu verstärken. Das Infrastruktur erlaubt Modulen, sich für verschiedenen Ereignisse anzumelden, außerdem stellt es Standardfunktionen wie ``Label Storage'' zur Verfügung. Eine Reihe von Standard-Modulen wird mitgeliefert, z.B. Implementierungen der Modelle ``fixed label Biba integrity'' und ``floating label Biba integrity'', mehrstufige Sicherheitsmodelle (Multi-Level Security, MLS) mit gegenseitiger Abschottung, sowie diverse verbesserte UNIX Sicherheitsmodelle, inklusive eines Firewalls für das Dateisystem. Die Infrastruktur vereinfacht die Entwicklung privater und kommerzieller Sicherheitserweiterungen. Um diesen modularen Dienst zu aktivieren, muß in der Konfigurationsdatei für den angepaßten Kernel die Zeile `options MAC` stehen.

> Anmerkung: Die Infrastruktur für die Mandatory Access Controls ist experimenteller Natur und daher standardmäßig deaktiviert.

Die Machine Check Architecture (MCA)-Daten werden jetzt beim Systemstart gesammelt und können über die sysctl-Variablen `hw.mca.*` ausgelesen werden.

Es gibt jetzt Routinen zum Profiling von mutex(9), die mit der Option `MUTEX_PROFILING` in der Konfigurationsdatei des Kernels aktiviert werden können. Damit stehen dann die neuen Sysctl-Variablen `debug.mutex.prof.*` zur Verfügung.

Die Kernel-Option `P1003_1B` wurde nicht mehr verwendet und daher entfernt.

random(4) wurde überarbeitet und nutzt jetzt den Yarrow Algorithmus. Es sammelt Entropie aus einer Vielzahl von Quellen, dazu gehören die Konsole, Massenspeicher und Ethernet sowie Punkt-zu-Punkt Netzwerkverbindungen. Entropie aus random(4) wird regelmäßig in Dateien im Verzeichnis `/var/db/entropy` gespeichert, diese Dateien werden auch aktualisiert, wenn das System heruntergefahren wird. Die Semantik von `/dev/random` wurde geändert; wenn nicht genügund Entropie vorhanden ist, blockiert es nicht mehr, sondern generiert Pseudo-Zufallszahlen und verhält sich damit genau so wie `/dev/urandom`.

Die neue Kernel-Option `options REGRESSION` aktiviert Schnittstellen und Routinen, die für die Verwendung bei formalen Tests vorgesehen sind.

Mit dem neuen Ressource-Limit `RLIMIT_VMEM` kann die maximale Größe des von einem Prozess verwendeten virtuellen Speichers begrenzt werden, davon ist auch via mmap(2) angeforderter Speicher betroffen. Das Limit kann in login.conf(5) mit der neuen Variable `vmemoryuse` konfiguriert werden. [MERGED]

In der Systemfunktion sendfile(2) wurde ein Fehler beseitigt, durch den die Länger des Headers auf die Dateigröße angerechnet wurde. [MERGED]

syscons(4) unterstützt jetzt das Einfügen vom Clipboard via Tastatur, die Funktion liegt standardmäßig auf Shift-Insert.

Der neue Treiber uaudio unterstützt USB Audio Geräte. [MERGED]

Der neue Treiber ucom(4) unterstützt USB Modems, serielle Schnittstellen und andere Programme, die sich wie ein TTY verhalten sollen. Die neuen Treiber uftdi(4), uplcom(4) und uvscom(4) bauen darauf auf und unterstützen die seriellen Adapter von FTDI, den Prolific PL-2303 bzw. den Slipper U VS-10U. [MERGED]

Bei der Konfiguration des Kernels kann die Option `UCONSOLE` nicht mehr verwendet werden; dadurch wurden einige Sicherheitslücken geschlossen.

Die Kernel-Option `USER_LDT` ist ab jetzt standardmäßig aktiviert.

Der neue Treiber uvisor(4) unterstützt via USB angeschlossene Handspring Visor. [MERGED]

Ein neuer Treiber unterstützt den VESA S3 linear framebuffer.

Die Infrastruktur für Crash Dumps des Kernels wurde überarbeitet, um neue Plattformen unterstützen zu können; gleichzeitig wurde ein genereller Frühjahrsputz durchgeführt. Dadurch hat sich das Format der Crash Dumps geändert; es ist nicht mehr von der Byte Order der Maschine abhängig.

Extrem große Swap-Partitionen (>67 GB) führen nicht mehr zum Absturz des Systems.

`buildkernel` erwartet den Namen des zu generierenden Kernels in der Variablen `KERNCONF` und nicht mehr in `KERNEL`. In einigen Fällen ist es nicht mehr notwendig, ein `buildworld` durchzuführen, bevor Sie `buildkernel` aufrufen. (Der Aufruf von `buildworld` ist immer noch notwendig bei der Aktualisierung über Versionsgrenzen, nach Aktualisierung der binutil Programme sowie bei neuen Versionen von config(8).) [MERGED]

Linker sets sind jetzt in sich abgeschlossen; gensetdefs(8) wird nicht mehr benötigt und wurde entfernt.

Environment-Variablen des Kernels (z.B. Tuning-Parameter) können mit dem neuen config(8)-Schlüsselwort config(8)'s `ENV` schon bei der Erzeugung des Kernels gesetzt werden.

Wenn die neue Sysctl-Variable `vm.idlezero_enable` gesetzt ist, wird das System freie CPU-Zeit zur Initialisierung von Speicherseiten verwenden.

Der Scheduler des FreeBSD Kernels unterstützt jetzt ``Kernel-Scheduled Entities'' (KSEs), die die parallele Ausführung mehrerer Threads eines Prozesses unterstützen, analog zur normalen Scheduler Activation. Zum jetztigen Zeitpunkt enthält der Kernel die meisten der Routinen, die zur Unterstützung von Threads notwendig sind. Der Kernel Scheduler unterstützt mehrere Threads pro Prozess, allerdings immer nur auf einer CPU. Weitere Informationen finden Sie in kse(2).

> Anmerkung: Die Arbeiten an KSE sind noch nicht abgeschlossen.

Der Kernel unterstützt jetzt mehrere low-level Konsolen, die über das neue Programm conscontrol(8) verwaltet werden.

Die Berechnung der Systemlast erfolgt jetzt in leicht unterschiedlichen Intervallen, um eine Synchronisierung mit periodisch laufenden Prozessen zu verhindern. [MERGED]

Wenn bei der Erzeugung eines Kernel mit Debug-Informationen (z.B. mit `makeoptions DEBUG=-g`) auch Module erzeugt werden, werden diese auch mit Debug-Informationen versehen. Eine Nebenwirkung dieser Änderung ist, daß die zusammen mit einem Debug-Kernel erstellten und installierten Module jetzt mehr Plattenplatz belegen. [MERGED]

Die Routinen, mit denen der Kernel anfordert, nutzen jetzt die ``slab'' Technik, ähnlich wie bei Solaris. Damit steht eine SMP-sichere Technik zur Anforderung zur Verfügung, deren Leistung linear mit der Anzahl der CPU wächst. Weiterhin reduziert sie die Fragmentierung des Speichers.

### 2.1.1. Unterstützung für Prozessoren und Mainboards

Die SMP-Unterstützung wurde weitestgehend überarbeitet, dabei wurde Sourcecode von BSD/OS 5.0 übernommen. Eines der wichtigsten Merkmale von SMPng (``SMP Next Generation'') ist, daß mehrere Prozesse gleichzeitig den Kernel nutzen können, ohne auf `spin locks` angewiesen zu sein, da diese die Effizienz eines Multi-Prozessor-Systems massiv beeinträchtigen können. Die Interrupt-Routinen besitzen jetzt einen Kontext, der es erlaubt, sie anzuhalten; dadurch ist es nicht mehr notwendig, Interrupts (komplett) abzuschalten.

### 2.1.2. Änderungen im Bootloader

Der Kernel und die Module sind in das Verzeichnis `/boot/kernel` verschoben worden, um gleichzeitige Änderungen an beiden Komponenten einfacher zu machen. Der Boot Loader wurde aktualisiert, um Probleme durch die Änderung zu vermeiden.

### 2.1.3. Netzwerke und Netzwerkkarten

Der Treiber dc(4) unterstützt jetzt Netzwerkkarten auf der Basis der Xircom 3201 und Conexant LANfinity RS7112 Chipsätze.

Der neue Treiber lmc(4) unterstützt LAN Media Corp WAN Netzwerkkarten auf Basis des DEC ``Tulip'' PCI Fast Ethernet Controller.

Das Gerät stf(4) kann jetzt geklont werden.

Der Treiber tx(4) unterstützt jetzt echtes Multicast-Filtering.

Die Dateien für Netzwerk-Geräte werden jetzt automatisch in `/dev/net` angelegt und für ioctl-Aufrufe für die Hardware (nicht Protokoll oder Routing) genutzt werden. Der ioctl `SIOCGIFCONF` darf jetzt auf das Spezial-Gerät `/dev/network` angewandt werden.

        options DEVICE_POLLING
        options HZ=1000 # nicht Pflicht, aber dringend empfohlen

Danach kann Polling mit der Sysctl-Variable `kern.polling.enable` aktiviert; mit der Sysctl-Variable `kern.polling.user_frac` wird der für Benutzerprozesse zur Verfügung stehende Anteil der CPU-Zeit eingestellt. Die ersten Geräte, die Polling unterstützen, sind dc(4), fxp(4), nge(4), rl(4) und sis(4). Weitere Informationen finden Sie in der Onlinehilfe zu polling(4). [MERGED]

Das Netzwerk-Subsystem unterstützt jetzt ``Zero copy''. Dieses Features ermöglicht es, Daten vom Kernel zu Benutzerprogrammen zu übertragen, ohne die Daten kopieren zu müssen; dadurch wird einer der schlimmsten Engpässe für Netzwerk-Transfers beseitigt. Die Sende-Routinen sollten mit fast jeder Netzwerkkarte zusammenarbeiten, die Empfangs-Routinen unterstützen allerdings nur Netzwerkkarten, bei denen die MTU mindestens so groß wie eine Speicherseite ist (z.B. Gigabit Ethernet Karten, die Jumbo Frames unterstützen). Weitere Informationen sind in zero_copy(9) verfügbar.

### 2.1.4. Netzwerk-Protokolle

Wird in der Konfigurationsdatei für den angepaßten die Option `FAST_IPSEC` verwendet, nutzt IPsec die crypto(4)-Infrastruktur des Kernels, inklusive der Unterstützung für Hardware-Verschlüsselung.

> Anmerkung: Die gleichzeitige Verwendung von `FAST_IPSEC` und `IPSEC` ist nicht möglich.

> Anmerkung: Zur Zeit kann `FAST_IPSEC` nicht zusammen mit IPv6 oder der Option `INET6` verwendet werden.

Der neue Treiber gre(4) unterstützt die Encapsulation von IP Paketen mt GRE (RFC 1701) und die minimale IP Encapsulation für Mobile IP (RFC 2004). [MERGED]

Die Erzeugung von ICMP ECHO und TSTAMP Antworten kann jetzt beschränkt werden. Die den Beschränkungen für die Erzeugung von TCP RST Paketen wird jetzt unterschieden, ob das auslösende Paket an einen offenen oder einen geschlossen Port geschickt wurde. Für jede dieser Einschränkungen gibt es jetzt eine eigene Beschreibung.

Für weitergeleitete Pakete werden jetzt keine ICMP Source Quench Nachrichten mehr erzeugt. Mit der Sysctl-Variablen `net.inet.ip.sendsourcequench` kann wieder auf das bisherige Verhalten umgestellt werden.

Auf VLAN Geräten funktioniert jetzt IP Multicast, auch andere Fehler in den VLAN-Routinen wurden beseitigt.

ipfw(4) wurde komplett überarbeitet, die neue Version wird allgemein ``IPFW2'' genannt. Sie legt ihre Regeln in variablen Blöcken im Kernel ab, ähnlich wie bpf(4) Anweisungen. Bis auf die neue Option, Regeln mit `or` zu kombinieren, sollten die Änderungen nicht nach außen hin (also in ipfw(8)) sichtbar sein. [MERGED]

Die neue Netgraph Node ng_device(4) erzeugt einen Eintrag in `/dev`, der als Startpunkt eines Netgraph-Baums genutzt werden kann.

Die beiden neuen Netgraph Nodes ng_gif(4) und ng_gif_demux(4) können für gif(4) Geräte verwendet werden.

Mit der neuen Netgraph Node ng_ip_input(4) können IP Pakete direkt an den `main IP input processing code` übergeben werden.

Die neue Netgraph Node ng_l2tp(4) implementiert das Encapsulation Layer des L2TP Protokolls, wie in RFC 2661 beschrieben. [MERGED]

Mit der neuen Netgraph Node ng_split kann ein bidirektionaler Datenfluß in zwei unidirektionale Datenflüsse aufgespalten werden.

> Anmerkung: Auf stark beschäftigten Maschinen kann es durch die größeren Puffer notwendig werden, den Parameter `NMBCLUSTERS` entweder in der Konfigurationsdatei des Kernels oder über den Loader Tuneable `kern.ipc.nmbclusters` zu erhöhen. Der Zustand der mbuf cluster kann mit `netstat -mb` überwacht werden.

Die ``ephemeral port range'' für TCP und UDP liegt jetzt bei 49152-65535 (der alte Standardwert war 1024-5000). Dadurch erhöht sich die Anzahl der gleichzeitig möglichen ausgehenden Verbindungen.

Der Timeout, nach dessen Ablauf tcp(4) ein Paket erneut versendet, kann jetzt mit den beiden sysctl-Variablen `net.inet.tcp.rexmit_min` und `net.inet.tcp.rexmit_slop` eingestellt werden. Der Standardwert wurde von einer Sekunde auf 200 Millisekunden gesenkt (ähnlich dem Default bei Linux), um besser auf Aussetzer bei interaktiven Verbindungen und Ausfälle bei unzuverlässigen schnellen Verbindungen (drahtlose Netzwerke) reagieren zu können.

Das tcp(4) Protokoll ist jetzt in der Lage, die Anzahl der ausstehenden Pakete dynamisch anzupassen, um die Bandbreite der Verbindung optimal auszunutzen und die Verzögerungen zu minimieren. Diese Routinen werden mit der Sysctl-Variable `net.inet.tcp.inflight_enable` aktiviert.

### 2.1.5. Festplatten und Massenspeicher

Der Treiber ata(4) kann jetzt im Zusammenarbeit mit burncd(8) schreibend auf Medien in DVD+RW Laufwerken zugreifen.

Der Treiber ata(4) erlaubt es jetzt, über die CAM-Schicht und -Treiber ( cd(4), da(4), st(4) und pass(4)) auf ATA Geräte zuzugreifen, und emuliert so SCSI-Geräte. Um diese Möglichkeit nutzen zu können, muß in der Konfigurationsdatei für den Kernel die Anweisung `device atapicam` stehen. Weitergehende Informationen finden Sie in atapicam(4). [MERGED]

Der Treiber ata(4) unterstützt jetzt die Sil 0680 und VIA 8233/8235 Controller. [MERGED]

Der Treiber ata(4) unterstützt jetzt auch die Acard ATP850, ATP860 und ATP865 Controller.

Der Treiber cd(4) unterstützt jetzt wie schon acd(4) die ioctls `CDRIOCREADSPEED` und `CDRIOCWRITESPEED`, mit der die Geschwindigkeit eines CD-ROM Laufwerkes eingestellt werden kann.

Der Treiber targ(4) wurde überarbeitet; `/usr/share/examples/scsi_target` wurde um einen neuen Modus erweitert, in dem ein ``direct access'' Gerät emuliert wird.

Der Treiber für die Diskettenlaufwerke ( fdc(4)) wurde in vielen Punkten verbessert. Die Schreibdichte wird jetzt bei häufig verwendeten Formaten automatisch gesetzt; außerdem ist der Treiber viel flexibler geworden, was die Auswahl der Schreibdichte angeht.

Mit geom(4) stehen neue Möglichkeiten zur Bearbeitung von Festplattenzugriffen zur Verfügung; das neue und erweiterbare System stellt diverse Methoden zur Verfügung, um Anforderungen für Festplattenzugriffe auf dem Weg vom Kernel zu den eigentlichen Treibern zu manipulieren.

> Anmerkung: Wenn GEOM im Kernel aktiviert ist, werden ``compatability slices'' nicht mehr unterstützt. Diese wurden nur auf i386 und pc98 unterstützt und erlaubten es, im Namen eines Dateisystems die Angabe der MBR-Partition wegzulassen (also z.B. `/dev/ad0a`); der Kernel suchte dann automatisch die erste FreeBSD-Partition und füllte den Namen auf. Nutzt der Kernel GEOM (was inzwischen die Standardeinstellung ist), unterstützt er nur noch die vollen Namen (also z.B. `/dev/ad0s1a`), wenn MBR-Partitionen benutzt werden. Diese Änderung sollte allerdings nur wenige Anwender betreffen.

Das neue Modul ``GEOM Based Disk Encryption'' ermöglicht die Verschlüsselung des Festplatteninhaltes, um Zugriffe auf ``kalte'' Festplatten zu verhindern. Das Modul nutzt vier verschiedene Verschlüsselungstechniken und erlaubt die Nutzung von bis zu vier Kennwörtern. Weitere Informationen finden Sie in der Onlinehilfe zu gbde(4). Zur Verwaltung und Steuerung des Moduls dient das neue Hilfsprogramm gbde(8). Im Standardsystem ist die Verschlüsselung der Festplatten nicht aktiviert; um dieses Feature nutzen zu können, muß in der Konfigurationsdatei für den angepaßten Kernel die Zeile `options GEOM_BDE` stehen.

> Anmerkung: Das Modul ist noch im Experimentalstadium.

Der Treiber isp(4) sucht jetzt aktiv nach Änderungen in der Topologie des Fibre Channel.

Der Treiber isp(4) unterstützt auf Qlogic SCSI Karten (inklusive der Ultra2, Ultra 3, und Dual Bus Karten) den target mode.

Die Funktionalität von vn(4) wurde in md(4) (memory disk) aufgenommen. md(4) Geräte können jetzt mit mdconfig(8) konfiguriert werden. vn(4) und das Memory Filesystem (MFS) wurden entfernt.

Der von NetBSD stammende Treiber RAIDframe wurde importiert. Er stellt u.a. Software-RAID Level 0, 1, 4 und 5 zur Verfügung. Weitere Informationen finden Sie in der Onlinehilfe raid(4). Zur Steuerung des Treiber und zur Verwaltung der RAIDs dient das neue Hilfsprogramm raidctl(8). Der Treiber ist nicht im Standardkernel enthalten; um ihn einzubinden, muß in der Konfigurationsdatei für den angepaßten Kernel die Zeile `device raidframe` stehen.

> Anmerkung: Dieses Modul befindet sich noch im Experimentalstadium.

Diverse Fehler in sa(4) wurden behoben, u.a. der ``tape drive spinning indefinitely upon mt(1) `stat`'' Effekt.

Der Konfigurationsparameter `SCSI_DELAY` kann jetzt beim Systemstart bzw. zur Laufzeit mit der Loader-Variablen bzw. dem Sysctl `kern.cam.scsi_delay` geändert werden.

Der neue Treiber trm(4) unterstützt SCSI-Kontroller auf Basis des Tekram TRM-S1040 SCSI Chipsatzes. [MERGED]

### 2.1.6. Dateisystem

Der FreeBSD Kernel unterstützt jetzt `named extended attributes`. Damit können der Kernel und Benutzerprogramme mit entsprechenden Privilegien mit Attribut-Daten versehen. Damit wird das TrustedBSD Project unterstützt, speziell ACLs, capability data und mandatory access control labels. Weitere Informationen finden Sie in `/usr/src/sys/ufs/ufs/README.extattr`.

FFS unterstützt jetzt die Erzeugung von `filesystem snapshots`. Genauere Informationen finden Sie in `/usr/src/sys/ufs/ffs/README.snapshot`.

statfs(2) und df(1) halten nach, wie viele Blöcke und Dateien noch freigegeben werden müssen, wenn Sie mit Soft Updates zusammen laufen.

Das ISO-9660 Dateisystem unterstützt jetzt nachladbare Routinen zur Zeichensatzkonvertierung. Einige häufig benötigte Varianten sind im Port `sysutils/cd9660_unicode` zu finden. [MERGED]

kernfs(5) war überaltert und wurde entfernt.

Client-seitige NFS locks wurden implementiert.

Der Quellcode für den Kernel-Teil des NFS-Servers und des NFS-Client war stark ineinander verzahnt. Diese Verzahnung wurde aufgehoben, um die Wartung und Weiterentwicklung zu vereinfachen.

Im Dateisystem werden jetzt Access Control Lists (ACLs) unterstützt, damit kann der Zugriff auf Dateien und Verzeichnisse genauer geregelt werden. Die Routinen stammen vom TrustedBSD Project, weitere Informationen finden Sie in `/usr/src/sys/ufs/ufs/README.acls`.

Die Dateisysteme fdesc, fifo, null, msdos, portal, umap und union wurden in fdescfs, fifofs, msdosfs, nullfs, portalfs, umapfs und unionfs umbenannt, um einheitliche Namen zu haben. Diese Änderung betrifft auch die Module und mount_* Befehle. Zusätzliche Routinen in mount(8) (compatibility ``glue'') sorgen dafür, daß fstab(5)-Einträge mit dem Schlüsselwort `msdos` weiterhin funktionieren.

Mit pseudofs steht ein neues Grundgerüst für Pseudo-Dateisysteme zur Verfügung. linprocfs(5) und procfs(5) wurden geändert und nutzen jetzt pseudofs.

Wenn in `/etc/fstab` Einträge für netzwerk-basierte Dateisysteme vorhanden sind, werden diese jetzt beim Systemstart korrekt behandelt, die Dateisysteme werden erst gemountet, nachdem das Netzwerk komplett initialisiert wurde.

Das Universal Disk Format (UDF) wird jetzt für lesenden Zugriff unterstützt. Dieses Format wird auf Packet-Written CD-RWs und den meisten kommerziellen DVD-Videos verwendet. Diese Medien können mit mount_udf(8) gemountet werden.

Eine erste Version des UFS2 Dateisystems steht jetzt zur Verfügung. Einige der Neuerungen in UFS2 sind:

- Die Größe eines inode wurde auf 256 Byte erhöht, um genügend Platz für 64 Bit lange Blockadressen zu haben.

- Das Datum der Erstellung einer Datei wird jetzt aufgezeichnet.

- Unterstützung für erweiterte Attribute ist ein integraler Bestandteil des Dateisystems und erlaubt die Speicherung von erweiterten Attributen direkt im Inode, dafür steht im Inode Speicherplatz in der doppelten Größe eines Blocks im Dateisystem bereit. Dieser Speicherplatz wird für Access Lists und MAC Labels genutzt, kann aber auch von anderen Systemerweiterungen und Benutzerprogrammen genutzt werden.

UFS1 bleibt das Standardformat, es ist allerdings möglich, bei newfs(8) und im Bildschirm ``Partitioning'' von sysinstall(8) UFS2 als Option anzugeben. Alle 64-Bit Plattformen können auch von UFS2 Dateisystemen booten.

Der UFS1 Superblock mußte leicht geändert werden, um die diversen in diesem Abschnitt erwähnten Änderungen unterstützen zu können. Dadurch kann es zu leichten Kompatibilitätsproblemen kommen, wenn eine aältere FreeBSD-Version (vor 4.7-RELEASE) versucht, mount(8) oder fsck(8) auf ein UFS1 Dateisystem anzuwenden, das von FreeBSD ab 5.0-CURRENT erzeugt wurde, beginnend mit FreeBSD 4.7-RELEASE sind die Formate kompatibel. Dieses Problem tritt nur auf Systemen auf, auf denen mehrere FreeBSD-Versionen installiert sind, die abwechselnd gestartet werden.

### 2.1.7. Unterstützung für PCCARD

Der Standard-Kernel nutzt jetzt standardmäßig NEWCARD für PCCARD/CardBus.

### 2.1.8. Multimedia

Für Soundkarten mit Hardware zur Lautstärkeregelung steht eine neue Programmierschnittstelle zur Verfügung.

### 2.1.9. Zusätzliche Software

Die vom Boot Loader genutzte Forth Inspired Command Language (FICL) wurde auf Version 3.02 aktualisiert.

Der von vielen Herstellern unterstützte Standard Advanced Configuration und Power Interface wird jetzt unterstützt. Die Routinen stammen vom Intel ACPI Component Architecture Projekt, und sind auf dem Stand des 20021118 Snapshots. In einigen Punkten wird die Funktionalität des alten Standard APM unterstützt, damit alte Applikationen weiterverwendet werden können.

#### 2.1.9.1. IPFilter

IPFilter wurde auf Version 3.4.29 aktualisiert. [MERGED]

#### 2.1.9.3. KAME

## 2.2. Sicherheit

Im Resolver existierte ein Buffer-Überlauf, der von einem entsprechend programmierten Domain Name Server oder durch passende DNS-Anfragen eines Angreifers ausgenutzt werden konnte, dieser Fehler wurde entfernt. Weitere Informationen finden Sie in FreeBSD-SA-02:28. [MERGED]

In tcpdump(1) wurde ein Buffer Overflow beseitigt, der durch defekte NFS-Pakete ausgenutzt werden konnte. Weitere Informationen finden Sie in FreeBSD-SA-02:29. [MERGED]

Es ist nicht mehr möglich, ktrace(1) zur Verfolgung des Ablaufs von Prozessen zu benutzen, wenn diese vorher priveligiert waren. Falls ein Prozess sensitive Informationen erhalten hat, bevor er die Privilegien abgegeben hat, können diese nicht mehr an die Außenwelt gelangen. Weitere Informationen finden Sie in FreeBSD-SA-02:30. [MERGED]

In pppd(8) existierte eine Race Condition, durch die es möglich war, die Berechtigungen einer beliebigen Datei zu ändern, dieser Fehler wurde korrigiert. Weitere Informationen finden Sie in FreeBSD-SA-02:32. [MERGED]

In OpenSSL wurden mehrere Buffer Overflows gefunden, die Fehler wurden durch ein Update der von FreeBSD verwendeten Version von OpenSSL beseitigt. Weitere Informationen finden Sie in FreeBSD-SA-02:33. [MERGED]

Ein Buffer Overflow im Heap des XDR Decoders wurde beseitigt. Weitere Informationen finden Sie in FreeBSD-SA-02:34. [MERGED]

Ein Fehler, durch den ein Benutzer beliebige Blöcke auf einem FFS-Dateisystem lesen und schreiben konnte, wurde beseitigt. Weitere Informationen finden Sie in FreeBSD-SA-02:35. [MERGED]

Im NFS Server wurde ein Fehler beseitigt, durch den es möglich war, über das Netzwerk einen Denial-of-Service Angriff durchzuführen. Weitere Informationen finden Sie in FreeBSD-SA-02:36. [MERGED]

Im kqueue(2) System wurde ein Fehler beseitigt, durch den ein lokaler Benutzer einen Systemabsturz herbeiführen konnte. Weitere Informationen finden Sie in FreeBSD-SA-02:37. [MERGED]

Bei mehrere Systemfunktionen wurden Fehler bei der Prüfung der Parameter beseitigt, durch die größere Teile des Kernel-Speichers an den Aufrufer zurückgegeben werden konnten. Weitere Informationen finden Sie in FreeBSD-SA-02:38. [MERGED]

In `libkvm` wurde ein Fehler beseitigt, durch den Applikationen ungewollt schützenswerte Datei-Handles nach außen weiterleiten konnten. Weitere Informationen finden Sie in FreeBSD-SA-02:39 [MERGED]

In kadmind(8) und k5admin wurden Puffer-Überläufe beseitigt. Weitere Informationen finden Sie in FreeBSD-SA-02:40. [MERGED]

In smrsh(8) wurden Fehler beseitigt, durch die es einem Benutzer möglich gewesen wäre, die Einschränkung auf bestimmte Programme zu umgehen. Weitere Informationen finden Sie in FreeBSD-SA-02:41 [MERGED]

In resolver(3) wurden Puffer-Überläufe beseitigt, die zu Programm-Fehlern führen konnten. Weitere Informationen finden Sie in FreeBSD-SA-02:42. [MERGED]

Diverse kritische Fehler in BIND wurden korrigiert, weitere Informationen finden Sie in FreeBSD-SA-02:43. [MERGED]

In der Systemfunktion fpathconf(2) wurde ein Fehler (Verlust von Datei-Handles) beseitigt, durch den ein lokaler Benutzer das System zum Absturz bringen oder höhere Privilegien erhalten konnte. Weitere Informationen finden Sie in FreeBSD-SA-02:44. [MERGED]

## 2.3. Benutzerprogramme

Die Unterstützung für ausführbare Programme im Format a.out(5) wurde aus dem Compiler und den zugehörigen Programmen entfernt.

adduser(8) und rmuser(8) sind jetzt sh(1) Skripte und nicht mehr Perl Skripte.

arp(8) kennzeichnet FDDI- bzw. ATM-Interfaces jetzt mit `[fddi]` bzw. `[atm]`.

Mit dem neuen Programm asa(1) können FORTRAN Steuerzeichen interpretiert werden.

at(1) unterstützt jetzt die Optionen `-r` zum Entfernen von Aufträgen und `-t` für Zeitangaben im POSIX-Format.

Die vom System genutzte awk(1)-Variante ist jetzt auf allen Plattformen BWK awk.

basename(1) unterstützt jetzt die Optionen `-a` und `-s`, um die Funktion basename(3) auf mehrere Dateien anzuwenden.

biff(1) unterstützt jetzt die Option `b` für ``bell notification'' beim Eintreffen von neuen Mails, bei dieser Variante wird der Terminal-Inhalt nicht zerstört, wie das bei `biff y` passiert. [MERGED]

biff(1) benutzt jetzt das Terminal, das für seine Standard-Eingabe, Standard-Ausgabe, oder Standard-Fehler genutzt wird, und zwar in genau der Reihenfolge. Damit ist es möglich, die Ein/Ausgabeumleitung der Shell zu benutzen (z.B. durch `biff n < /dev/ttyp1`), um die Ausgabe auf anderen Terminals umzustellen.

In burncd(8) kann mit dem Parameter `-d` der Modus Disk At Once (DAO) aktiviert werden. [MERGED]

burncd(8) kann jetzt VCDs/SVCDs erzeugen. [MERGED]

Bei burncd(8) kann bei `-s` jetzt der Wert max angegeben werden, um die maximal mögliche Geschwindigkeit zu nutzen. [MERGED]

Die neuen Programme bzgrep(1), bzegrep(1) und bzfgrep(1) stellen die von grep(1) bekannte Funktionalität für mit bzip2(1) erzeugte Archive zur Verfügung.

Bei calendar(1) gibt es zwei neue Optionen: `-W` verhält sich ähnlich wie `-A`, enthält aber keine Sonderbehandlung für Wochenende; mit `-F` kann die Bedeutung von ``Friday'' geändert werden.

catman(1) ist jetzt ein C-Programm und kein Perl-Script mehr.

Bei cdcontrol(1) kann jetzt die Geschwindigkeit des CD-ROM-Zugriffs mit dem Kommando `speed` eingestellt werden. Wird der Wert `max` angegeben, wird die höchste mögliche Geschwindigkeit verwendet. [MERGED]

Die Standard-Bibliothek `libc` wurde um die Funktion check_utility_compat(3) erweitert. Mit dieser Funktion können bestimmte Programme im FreeBSD-Standardsystem feststellen, ob sie den FreeBSD 4-kompatiblen Modus oder den ``Standard''-Modus benutzen sollen; fehlt die Angabe, wird der Standard-Modus verwendet. Die Konfiguration erfolgt ähnlich wie bei malloc(3) über eine Environment-Variable oder einen symbolischen Link.

chflags(1) wurde von `/usr/bin` nach `/bin` verschoben.

chmod(1) unterstützt jetzt die Option `-h`, um die Berechtigungen eines symbolischen Links zu ändern.

Wird bei chmod(1) die Option `-v` mehr als einmal angegeben, gibt es die alten und neuen Berechtigungen aus.

Bei chown(8) ist es nicht mehr möglich, Benutzer und Gruppe mit `.` zu trennen; dadurch wird es möglich, Benutzernamen zu verwenden, die einen `.` enthalten.

Bei der Verwendung `CSMG_*` Makros ist es nicht mehr erforderlich, `<sys/param.h>` einzubinden.

Die neue Distribution `compat4x` bietet Kompatibilität mit FreeBSD 4-STABLE. Sie enthält einen Teil der in FreeBSD 4.7-RELEASE enthaltenen Bibliotheken.

Wird bei cp(1) die nicht dem Standard entsprechende Option `-n` angegeben, fragt es nicht mehr nach, ob eine Datei überschrieben werden soll; die Datei wird in diesem Fall nicht überschrieben. [MERGED]

Das neue Programm csplit(1) kann Dateien nach ihrem Inhalt aufteilen.

ctags(1) erzeugt jetzt standardmäßig Labels für typedefs, structs, unions und enums (als ob die Option `-t` angegeben wäre). Mit der neuen Option `-T` kann auf die alte Verhaltensweise zurückgeschaltet werden.

Mit daemon(8) steht jetzt ein über die Kommandozeile benutzbares Programm zur Nutzung von daemon(3) zur Verfügung. Das Programm löst die Verbindung zum kontrollierenden Terminal und startet dann das auf der Kommandozeile übergebene Programm. Dadurch können Sie beliebige Programme als Daemon-Prozeß laufen lassen. [MERGED]

Das neue Programm devd(8) erlabut es, beliebige Programme auszuführen, wenn Geräte hinzugefügt oder entfernt werden. Das Programm ist eine allgemeinere Version der Funktionalität von pccardd(8).

> Anmerkung: Die Arbeiten an devd(8) sind noch nicht abgeschlossen.

Mit dem neuen Programm devinfo(8) können Sie die auf dem System vorhandenen Geräte und die von ihnen genutzten Ressourcen in einer Baumdarstellung ausgeben lassen.

diskpart(8) wurde entfernt, weil es überflüssig geworden war.

dump(8) unterstützt jetzt die Option `-L`, um aktive UFS und UFS2 Dateisysteme zuverlässiger bearbeiten zu können. Um ein konsistenten dump-file zu erhalten, wird zunächst ein Filesystem Snapshot erzeugt, auf dem dump(8) dann arbeitet. Wenn der Dump vollständig ist, wird der Snapshot wieder gelöscht.

Wird bei dump(8) die neue Option `-C` angegeben, wird ein Cache für Datenblöcke der Festplatte eingerichtet. Dadurch steigt die Performance von dump(8), kann aber dazu führen, daß zwischen den einzelnen Läufen erfolgende Änderungen des Dateisystems nicht erkannt werden.

Bei Verwendung der neuen Option `-S` gibt dump(8) nur die erwartete Größe des Dumps aus und beendet sich dann. [MERGED]

Das Programm expr(1) entspricht jetzt POSIX.2-1992 (und damit auch POSIX.1-2001). Einige Programme sind auf die alte Syntax angewiesen, da sie die Argumente nicht korrekt markieren; dadurch hält expr(1) sie für Befehlsoptionen (das auffälligste Beispiel war/ist der von vielen GNU Programmen genutzt Port bzw. das Package `devel/libtool`). Es ist möglich, für expr(1) mit einen kompatiblen Modus zu aktivieren, in dem es sich wieder wie die älteren Versionen verhält; weitere Informationen dazu finden Sie in check_utility_compat(3).

In fbtab(5) können die Zielgeräte jetzt auch mit Wildcards angegeben werden, nicht nur als einzelne Geräte und Verzeichnisse.

Mit dem Programm fdread(1) können Daten direkt von Diskette gelesen werden. Es ist das Gegenstück zu fdwrite(1) und soll eine Möglichkeit, Daten wenigstens teilweise von defekten Medien zu lesen und komplizierte Aufrufe von dd(1) überflüssig zu machen.

finger(1) unterstützt jetzt die Datei `.pubkey`. [MERGED]

finger(1) unterstützt jetzt die Option `-g`, mit der nur der Name des Benutzers aus der GECOS Information ausgegeben wird. [MERGED]

Bei finger(1) kann mit den neuen Optionen `-4` und `-6` eine Adressfamilie für Anfragen über das Netzwerk angegeben werden. [MERGED]

Das Programm fold(1) unterstützt die Optionen `-b` und `-s` zum Umbruch an Byte- bzw. Wortgrenzen. [MERGED]

Bei fsck(8) wurde ein übergeordnetes Programm importiert, dadurch wurde die nötige Infrastruktur geschaffen, um fsck(8) auf verschiedene Arten von Dateisystemen einsetzen zu können (analog zu mount(8)).

Die Art und Weise, wie fsck(8) mit mehreren Durchläufen umgeht (Parameter Pass in der `/etc/fstab`) wurde an Dateisysteme angepaßt, die auf mehreren Festplatten liegen.

fsck(8) kann die Überprüfung jetzt sowohl im Vordergrund (`-F`) als auch im Hintergrund (`-B`) vornehmen. Üblicherweise wurde fsck(8) aufgerufen, bevor die Dateisystem gemountet wurden und die Überprüfungen wurden zu diesem Zeitpunkt komplett durchgeführt. Wenn die Überprüfung im Hintergrund möglich ist, wird fsck(8) zwei mal aufgerufen. Der erste Aufruf erfolgt, bevor die Dateisysteme gemountet werden; dabei wird die Option `-F` verwendet, um alle Dateisysteme zu prüfen, die nicht im Hintergrund geprüft werden können. Der zweite Aufruf erfolgt, wenn das System komplett gestartet ist; dieser Aufruf erfolgt mit der Option `-B` und prüft alle Dateisysteme, die im Hintergrund geprüft werden können. Im Gegensatz zur Prüfung im Vordergrund erfolgt dieser Start asynchron, dadurch kann das System ganz normal genutzt werden, auch die Dateisystemen, die gerade geprüft werden. Die Option `background_fsck` in rc.conf(5) regelt, ob diese Möglichkeit beim Start des Systems benutzt wird.

fsck_ffs(8) unterstützt jetzt die Option `-B` zur Überprüfung von Dateisystemen im Hintergrund (dazu müssen auf das Dateisystem Soft Updates aktiv sein). Mit der Option `-F` kann angegeben werden, ob eine Prüfung im Vordergrund /notwendig ist.

Wird ftpd(8) mit der neuen Option `-m` aufgerufen, können Gäste existierende Dateien ändern, falls die Zugriffsrechte entsprechend gesetzt sind. Dies ermöglicht es Gästen, unterbrochene Uploads fortzusetzen. [MERGED]

Wird ftpd(8) mit der neuen Option `-M` aufgerufen, können Gäste keine Verzeichnisse mehr anlegen. [MERGED]

Bei ftpd(8) kann das Kommando `RETR` mit den Optionen `-o` (für alle Nutzer) und `-O` (nur für Gäste) abgeschaltet werden. Zusammen mit `-A` und angemessenen Zugriffsrechten kann damit ein halbwegs sicherer anonymer Briefkasten aufgebaut werden. [MERGED]

Wird ftpd(8) mit der neuen Option `-W` aufgerufen, werden FTP-Logins nicht mehr in wtmp(5) vermerkt. [MERGED]

Das neue Programm fwcontrol(8) ist ein Hilfsmittel zum Zugriff auf und die Kontrolle des FireWire-Subsystems. [MERGED]

Mit dem neuen Hilfsprogramm getconf(1) können die Werte der in POSIX und X/Open angegebenen Variablen für die Pfad- und Systemkonfiguration ausgegeben werden. [MERGED]

gifconfig(8) ist überflüssig geworden und wurde entfernt. Die Funktionalität wird von den `tunnel` und `deletetunnel` Operationen in ifconfig(8) bereitgestellt.

gprof(1) unterstützt jetzt ``dynamic symbol resolution'' aus dem gerade genutzten Kernel. Dadurch kann gprof(1) auch mit entsprechend vorbereiten KLDs eingesetzt werden.

Mit dem neuen Programmen gpt können EFI GPT Partitionen bearbeitet werden.

Die Scripte ibcs2(8), linux(8), osf1(8) und svr4(8) dienten nur dazu, bestimmte Kernel Module für die Emulation laden; sie wurden entfernt. Das Modul-System des Kernels lädt die entsprechenden Module automatisch , sobald sie benötigt werden.

Bei ifconfig(8) ist es mit dem neuen Kommando `promisc` möglich, ein Interface in den Promiscuous Mode zu setzen. [MERGED]

Wird bei ifconfig(8) die neue Option `monitor` angegeben, werden keine Pakete mehr über diese Schnittstelle gesendet oder empfangen. Damit ist es möglich, den Datenverkehr in einem Netzwerk zu überwachen, ohne es zu beinflussen.

Beim Start des Systems wird inetd(8) nicht mehr standardmäßig von rc(8) gestartet, allerdings bietet sysinstall(8) bei der Installation die Möglichkeit, dies zu ändern. Sie können inetd(8) ebenfalls aktivieren, wenn Sie die folgende Zeile in die Datei `/etc/rc.conf` eintragen:

        inetd_enable="YES"

Bei inetd(8) ist es jetzt möglich, die maximale Anzahl simultaner Verbindungen von einer bestimmten IP-Adresse zu einem Service zu begrenzen. [MERGED]

Mit dem neuen Schlüsselwort `limit` ist es möglich, mit ipfw(8) die Anzahl der Verbindungen zwischen zwei Systemen zu begrenzen. [MERGED]

In den Regel von ipfw(8) kann jetzt auch der Wert des IPv4 Feld Precedence als Kriterium genutzt werden.

kbdmap(1) und vidfont(1) wurden von Perl nach C konvertiert.

Mit kenv(1) können jetzt Umgebungsvariablen des Kernels hinzugefügt und gelöscht werden.

Das Programm kget(8) wurde entfernt. Es wurde nur für UserConfig gebraucht und dieses Programm gibt es in FreeBSD 5.0-CURRENT nicht mehr.

Das Programm killall(1) versucht nicht mehr, Zombie-Prozesse zu beenden, so lange die Option `-z` nicht angegeben wird.

Mit dem neuen Programm ktrdump(8) kann der KTR Trace Buffer von Benutzern ausgelesen werden.

Die neue Option `-a` für ldd(1) führt zur Ausgabe aller Objekte, die für das gerade geladene Objekt gebraucht werden.

`libc` ist jetzt standardmäßig für Threads verwendbar, `libc_r` enthält nur noch Thread-spezifische Funktionen.

`libstand` kann jetzt den Inhalt einer Datei auf einem UFS Dateisystem überschreiben (es kann Dateien allerdings weder vergrößern noch verkleinern, da das Dateisystem inkonsistent sein könnte).

`libgmp` wurde durch `libmp` ersetzt.

Die Funktionen in `libposix1e` wurden in `libc` aufgenommen.

`libusb` wurde in `libusbhid` umbenannt und übernimmt damit die von NetBSD genutzten Namen. [MERGED]

Wird lock(1) mit der neuen Option `-v` aufgerufen, wird zum einen das aktuelle VTY gesperrt, zum anderen ist es nicht mehr möglich, auf andere VTYs umzuschalten, so lange das aktuelle Terminal gesperrt ist. Damit ist es möglich, die Konsole von einem einzigen Terminal aus komplett zu sperren. [MERGED]

lpc(8) wurde verbessert; `lpc clean` ist jetzt sicherer und das neue Kommando `lpc tclean` zeigt an, welche Dateien von `lpc clean` gelöscht würden. `lpc topq` wurde völlig überarbeitet und ist jetzt deutlich flexibler bei der Auswahl der zu verschiebenden Druckaufträge (z.B. Gruppen von Druckaufträge, alle Aufträge eines bestimmten Systems). Mit dem neuen Befehl `lpc bottomq` können Druckaufträge an das Ende der Warteschlange verschoben werden; mit dem neuen Befehl `lpc setstatus` kann der Status des Druckers geändert werden. [MERGED]

Bei ls(1) gibt es drei neue Optionen: `-m` listet die Dateien auf einer Seite auf, `-p` erzwingt die Ausgabe `/` hinter einem Verzeichnisnamen, und `-x` führt dazu, daß die Dateinamen auf einer Seite formatiert werden. [MERGED]

Wird make(1) mit der neuen Option `-C`, wechselt es in das angegebene Verzeichnis, bevor es mit der Arbeit beginnt. [MERGED]

makewhatis(1) ist jetzt ein C-Programm und kein Perl-Skript mehr.

man(1) wird nicht mehr SUID `man`, um Sicherheitsprobleme im Zusammenhang mit der Erzeugung von ``catpages'' (vorformatierte Seiten der Onlinehilfe) zu umgehen. Dadurch kann man(1) für normale Anwender keine vorformatierten Seiten der Onlinehilfe des Systems mehr erzeugen. Es ist aber weiterhin in der Lage, Seiten zu formatieren, wenn der Benutzer Schreibrecht auf das Verzeichnis der ``catpages'' hat (z.B. für seine eigenen Seiten) oder wenn es von `root` aufgerufen wird.

Mit dem neuen Programm mca könen Machine Check Architecture Records dekodiert werden.

Das neue Kommando mdmfs(8) ruft mdconfig(8), disklabel(8), newfs(8) und mount(8) auf und versteht dabei eine Kommandozeile wie das nicht mehr unterstützte mount_mfs(8).

mesg(1) ist jetzt zum SUSv3 Standard konform. Eine der Änderungen ist, daß die Ausgaben jetzt auf dem Terminal erfolgen, das mit seiner Standard-Eingabe, Standard-Ausgabe, oder Standard-Fehlermeldung (in dieser Reihenfolge) verbunden ist. Daher ist es jetzt möglich, den Schreibzugriff auf andere Terminals mit der Ein/Ausgabeumleitung der Shell einzustellen (z.B. durch `mesg n < /dev/ttyp1`).

mountd(8) und nfsd(8) wurden von `/sbin` nach `/usr/sbin` verschoben.

Wird mv(1) mit der neuen (nicht standardisierten) Option `-n` aufgerufen, wird bei jede Frage, ob eine Datei überschrieben werden soll, immer die Antwort ``no'' angenommen. [MERGED]

Bei newfs(8) kann jetzt mit der neuen Option `-O` ausgewählt werden, ob ein UFS1 oder UFS2 Dateisystem erzeugt werden soll.

Mit dem neuen Programm newgrp(1) kann man zu einer neuer Gruppe wechseln.

newsyslog(8) komprimiert die Logfiles jetzt standardmäßig mit bzip2(1). Bei Bedarf kann das alte Verhalten (die Komprimierung mit gzip(1)) in der Datei `/etc/newsyslog.conf` konfiguriert werden.

Wird bei newsyslog(8) bei einem Eintrag (bzw. einer Gruppe von Einträgen, bei denen die Option `G` gesetzt ist) die neue Option `W` angeben, wird das Programm zur Kompression des Logfiles erst gestartet, wenn er die vorher gestarteten Packprogramme durchgelaufen sind. Dadurch soll verhindert werden, daß Systeme durch die gleichzeitige Kompression mehrerer großer Logfiles überlastet werden. [MERGED]

Mit den neuen Programm nextboot(8) können ein alternativer Kernel und/oder andere Einstellung für den Systemstart definiert werden, die beim nächsten Start des Systems genutzt werden sollen. Ein ähnliches Programm gab es bereits einmal in FreeBSD 2.2.

NFS funktioniert jetzt auch mit IPv6.

Bei nice(1) kann man jetzt mit `-n` angeben, mit welcher ``niceness'' das aufgerufene Programm laufen soll. [MERGED]

Das von NetBSD verwendete Konzept nsswitch wurde übernommen. Sobald die Datei nsswitch.conf(5) angelegt wurde, kann FreeBSD so konfiguriert werden, daß es für Zugriffe auf Daten wie passwd(5) und group(5) einfache Dateien, NIS oder Hesiod nutzt. Wenn beim Start des Systems die Datei `/etc/nsswitch.conf` noch nicht existiert, wird sie automatisch aus der vorhandenen `/etc/host.conf` erzeugt. Da einige alte Programme immer noch `/etc/host.conf` benötigen, wird diese Datei ebenfalls beim beim Start des Systems automatisch aus den Daten in der `/etc/nsswitch.conf` erzeugt.

od(1) unterstützt jetzt die Optionen `-A` zur Angabe der Basisadresse der Eingabe, `-N` zur Angabe der Anzahl auszugebender Zeichen, `-j` zur Angabe der zu überspringenden Zeichen, `-s` um vorzeichenbehaftete Dezimalzahlen auszugeben und `-t` zur Festlegung des Ausgabeformates. [MERGED]

PAM wird jetzt für die Verwaltung von Benutzer-Accounts und Sitzungen unterstützt.

Zur Konfiguration von PAM werden jetzt Dateien in `/etc/pam.d/` und nicht mehr nur die eine Datei `/etc/pam.conf` genutzt. Weitere Informationen finden Sie in `/etc/pam.d/README`.

Das neue PAM-Modul pam_echo(8) stellt einen Echo-Service zur Verfügung.

Das neue PAM-Modul pam_exec(8) stellt einen Service zum Starten von Programmen zur Verfügung.

Das neue PAM-Modul pam_ftp(8) kann zur Authentifizierung von anonymen FTP-Zugriffen verwendet werden.

Das neue PAM-Modul pam_ftpusers(8) nutzt die Datei ftpusers(5) zur Überprüfung.

Das neue PAM-Modul pam_ksu(8) stellt Kerberos 5 Authentifizierung sowie Authorisierung via `$HOME/.k5login` für su(1) zur Verfügung.

Das neue PAM-Modul pam_lastlog(8) trägt die Login-Zeiten in die Datenbanken utmp(5), wtmp(5), und lastlog(5) ein.

Das neue PAM-Modul pam_login_access(8) dient zur Überprüfung mit Hilfe vpn `/etc/login.access`.

Mit dem neuen PAM-Modul pam_nologin(8) können Anmeldungen gesperrt werden, dabei wird nologin(5), genutzt.

Die neuen PAM-Modul pam_opie(8) und pam_opieaccess(8) können für die Zugriffssteuerung via opie(4) genutzt werden. [MERGED]

Das neue PAM-Modul pam_passwdqc(8) überprüft beim Wechsel des Paßwortes dessen Qualität.

Das neue PAM-Modul pam_rhosts(8) unterstützt Authentifizierung via rhosts(5).

Mit dem neuen PAM-Modul pam_rootok(8) ist es möglich, nur den Super-User zu authentifizieren.

Das neue PAM-Modul pam_securetty(8) überprüft das ``security''-Flag (aus ttys(5)) eines Terminals.

Das neue PAM-Modul pam_self(8) kann zum Identitätsnachweis eines Benutzers genutzt werden.

Das neue PAM-Modul pam_wheel(8) dient dazu, die Mitglieder einer Gruppe zu authentifizieren, standardmäßig ist dies `wheel`.

Mit dem neuen Programm pathchk(1) können Pfadangaben auf ihre Gültigkeit und Portabilität zwischen POSIX-Systemen geprüft werden. [MERGED]

Wird bei ping(8) die Option `-o` angegeben, wird das Programm sofort beendet, wenn eine Antwort eintrifft.

prefix(8) ist überflüssig geworden und wurde entfernt. Die Funktionalität wird von der `eui64` Operation in ifconfig(8) bereitgestellt.

Die Funktionsbibliothek wurde um die von POSIX.1 eingeführte Routine pselect(3) erweitert, damit steht eine etwas stärkere Variante von select(2) zur Verfügung.

Bei pwd(1) kann jetzt mit der Option `-L` das logische Arbeitsverzeichnis ausgegeben werden. [MERGED]

Wird bei quota(1) die neue Option `-l` angegeben, werden die Quotas auf NFS Dateisystemen nicht überprüft.

Der von rand(3) zur Verfügung gestellte Generator für Pseudo-Zufallszahlen wurde verbessert, um bessere Ergebnisse zu liefern.

Bei rarpd(8) kann jetzt mit `-t` ein Verzeichnis angegeben werden, das statt `/tftpboot` genutzt wird. [MERGED]

rcmd(3) nutzt jetzt die Environment-Variable `RSH`, um ein anderes Programme als rsh(1) für die Ausführung von Programmen auf anderen Systemen nutzen zu können. Dadurch können Programme wie dump(8) jetzt ssh(1) als Transportmedium nutzen.

rdist(1) ist nicht mehr Teil des Standardsystems, ist aber noch in der FreeBSD Ports Collection als `net/44bsd-rdist` verfügbar.

Bei renice(8) kann jetzt mit der Option `-n` angegeben werden, wie stark die Priorität eines Prozesses angehoben werden soll. [MERGED]

portmap(8) wurde durch rpcbind(8) ersetzt.

rpcgen(1) benutzt jetzt `/usr/bin/cpp` (wie bei NetBSD) und nicht mehr `/usr/libexec/cpp`.

rpc.lockd(8) wurde von NetBSD übernommen. Dieser Daemon unterstützt von Clients gesetzte Locks auf NFS Dateisystemen.

Wenn die Environment-Variable `LD_TRACE_LOADED_OBJECTS_ALL` definiert ist, gibt rtld(1) jetzt die Namen aller Objekte aus, für die ein Objekt geladen wurde.

Bei sed(1) kann jetzt die Option `-i` angegeben werden, um Dateien direkt zu ändern. [MERGED]

Mit den neuen Programmen setfacl(1) und getfacl(1) können Sie Access Control Listen für Dateisysteme bearbeiten.

Der Befehl `printf` ist kein Bestandteil von sh(1) mehr, da der Platz für andere Zwecke besser gebraucht werden kann. Die Funktionalität steht aber durch das externe Programm printf(1) immer noch zur Verfügung.

Wird bei sh(1) die neue Option `-C` verwendet, können existierende Dateien nicht mehr durch Ein-/Ausgabeumleitung überschrieben werden; die neue Option `-u` erzeugt eine Fehlermeldung, wenn eine nicht gesetzte Variable expandiert werden soll. [MERGED]

Bei sh(1) unterstützt das interne Kommando `cd` jetzt die Optionen `-L` und `-P` zur Aktivierung des logischen bzw. physikalischen Modus. Standardmäßig ist der logische Modus aktiviert, dieser Default kann mit der internen Variable `physical` geändert werden. [MERGED]

Bei sh(1) unterstützt das interne Kommando `jobs` jetzt die beiden Optionen `-s` (gibt nur die PID aus) und `-l` (gibt die PID zusätzlich aus). [MERGED]

Bei sh(1) kann jetzt mit dem internen Kommando `bind` die Tastaturbelegung des internen Editors geändert werden.

Bei sh(1) unterstützen die internen Kommandos `export` und `readonly` jetzt die Option `-p`, mit denen ihre Ausgaben auf ein ``portables'' Format umgestellt werden. [MERGED]

Bei sh(1) ist nicht mehr möglich, illegale Ausdrücke für ``command` & && `command``, `&& `command`` oder `|| `command`` zu verwenden. [MERGED]

spkrtest(8) ist jetzt ein sh(1) Skript und kein Perl Skript mehr.

Bei split(1) kann mit der neuen Option `-a` festgelegt werden, wie viele Zeichen für die Extension der Teile verwendet werden sollen. [MERGED]

Um die in SUSv2/POSIX festgelegten Standards für `<sys/select.h>` in Zukunft erfüllen zu können, wurde `struct selinfo` und die dazugehörigen Funktionen nach `<sys/selinfo.h>` verschoben.

su(1) nutzt jetzt PAM zur Authentifizierung von Benutzern.

Mit dem neuen Programm swapoff(8) ist möglich, Swapping und Paging auf einem Geräten abzuschalten. Das ebenfalls neue Kommando swapctl(8) stellt die von den anderen BSDs bekannte Benutzer-Interface für swapon(8) und swapoff(8) zur Verfügung.

> Anmerkung: Das Programm swapoff(8) ist noch im Versuchsstadium.

sysctl(8) zeigt jetzt die Beschreibungen der Variablen an, wenn die neue Option `-d` verwendet wird.

Die von sysinstall(8) standardmäßig angelegte Root-Partition ist auf i386- und pc98-Systemen jetzt 100 MByte und auf Alpha-Systemen 120 MByte groß.

sysinstall(8) liegt jetzt in `/usr/sbin`, dadurch wird die Installation einfacher. Die Onlinehilfe für sysinstall(8) wird jetzt auch in den standardmäßig verwendeten Verzeichnissen abgelegt.

Bei neu installierten Systeme aktiviert sysinstall(8) das procfs(5) Dateisystemen standardmäßig nicht mehr, um die Sicherheit des System zu erhöhen. Es ist allerdings weiterhin möglich, procfs(5) manuell oder über eine entsprechende Zeile in fstab(5) zu aktivieren.

Wird systat(1) mit der neuen Option `-ifstat` aufgerufen, zeigt es den Datenfluß auf den aktiven Netzwerk-Interfaces des Systems.

Mit dem neuen Programm tabs(1) können die Positionen der Tabulatorsprünge eines Terminals definiert werden.

In der termcap(5) Datenbank wird für den Typ `xterm` jetzt der bei XFree86 mitgelieferte Eintrag genutzt. Dadurch unterstützt xterm(1) jetzt standardmäßig Farben und es ist nicht mehr notwendig, `TERM` auf den Wert `xterm-color` zu setzen. Die weitere Verwendung des Terminal-Typs `xterm-color` kann dazu führen, daß einige Anwendungen (gutgemeinte) Warnungen ausgeben.

tftpd(8) unterstützt jetzt RFC 2349 (TFTP Timeout Interval und Transfer Size Options). Dieses Merkmal wird von einigen Firmware-Versionen wie z.B. dem EFI Boot manager (zumindestens dem der HP i2000 Itanium Server) benötigt, um ein Image mit TFTP zu booten.

Eine Version des Transport Independent RPC (TI-RPC) wurde importiert.

tip(1) wurde um die von OpenBSD vorgenommenen Erweiterungen ergänzt und kann jetzt als Ersatz für cu(1) dienen.

top(1) nutzt jetzt die komplette Breite des Bildschirms aus.

Wird touch(1) mit der neuen Option `-h` aufgerufen, bearbeitet es einen symbolischen Link und nicht das Objekt, auf das der Link zeigt.

tr(1) hat jetzt minimalen Support für die Listen äquivalenter Zeichen, sofern die jeweilige Locale diese Listen bereitstellt. [MERGED]

Wird bei tr(1) die neue Option `-C` angegeben, wird die Menge der im ersten Argument übergebenen Zeichen aufgefüllt.

Bei tunefs(8) können mit den neuen Optionen `-a` und `-l` auf UFS-Dateisystemen die Einstellungen `FS_ACLS` bzw. `FS_MULTILABEL` aktiviert und deaktiviert werden.

Mit dem neuen Programm ugidfw(8) kann das Regelwerk für die Mandatory Access Control Policy `mac_bsdextended` manipuliert werden, analog zu ipfw(8).

UUCP wurde aus dem Basissystem entfernt und steht jetzt nur noch als `net/freebsd-uucp` in der Ports-Collection zur Verfügung.

Bei unexpand(1) können die Tabulatorpositionen mit der neuen Option `-t` angegeben werden, ähnlich wie bei expand(1). [MERGED]

Mit der neuen Option `-d` zeigt usbdevs(8) jetzt die für die Geräte verwendeten Treiber an.

Die Base64-Unterstützung von uuencode(1) und uudecode(1) wird jetzt automatisch aktiviert, wenn die Programme als b64encode(1) bzw. b64decode(1) aufgerufen werden. [MERGED]

Die Standard-Bibliothek `libc` wurde um Funktionen zur Erzeugung und Manipulation von OSF/DCE 1.1-kompatiblen UUIDs erweitert. Weitergehende Informationen finden Sie in in uuid(3)

Das neue Hilfsprogramm uuidgen(1) nutzt den System Call uuidgen(2), um einen oder mehrere ``Universally Unique Identifiers'' erzeugen, die zu OSF/DCE 1.1 version 1 UUIDs kompatibel sind.

vidcontrol(1) unterstützt jetzt die Option `-S`, um das Umschalten zwischen verschiedenen VTYs zu verhindern. [MERGED]

Die von vinum(8) standardmäßig verwendete Stripe Größe wurde von 256 KByte auf 279 KByte erhöht, damit sich die Superblocks besser auf die Stripes verteilen.

Bei wc(1) unterstützt jetzt die neue Option `-m`, um die Größe in Zeichen (und nicht wie üblich Byte) zu bestimmen.

whereis(1) war früher ein Perl-Skript und wurde in C neu geschrieben. Es wurde um die Optionen `-x` zur Vermeidung des locate(1)-Aufrufs und `-q` zur Unterdrückung der Überschrift über der Anfrage erweitert.

Wird whereis(1) mit der neuen Option `-a` aufgerufen, zeigt es alle Treffer und nicht nur den ersten jeden Typs.

which(1) ist jetzt ein C-Programm und kein Perlscript mehr.

Bei who(1) stehen mehrere neue Optionen zur Verfügung: `-H` erzeugt Überschriften; `-T` zeigt die Einstellung für mesg(1); `-m` bewirkt die gleiche Ausgabe wie `am i`; `-u` zeigt an, wie lange der Benutzer untätig war; `-q` zeigt die Namen in Spalten an. [MERGED]

Bei wicontrol(8) kann jetzt im Modus `hostap` mit `-l` die Liste der assozierten Stationen ausgegeben werden; mit `-L` werden alle verfügbaren Access Points aufgelistet.

xargs(1) unterstützt jetzt die Option `-I` `replstr`, die es dem Benutzer erlaubt, xargs(1) die von stdin gelesen Daten an einen bestimmten Punkt der Kommandozeile einfügen zu lassen. Die FreeBSD-spezifische Variante `-J` hat eine ähnliche Wirkung. [MERGED]

xargs(1) unterstützt jetzt die neue Option `-L`, um den Start des aufzurufenden Programmes nach einer Anzahl Zeilen zu erzwingen. [MERGED]

xargs(1) unterstützt jetzt die neue Option `-P`, um mehrere Versionen des gleichen Programmes parallel ausführen zu lassen.

Mehrere Routinen in der C-Bibliothek unterstützen jetzt auch ``wide characters''. Dazu gehören die Routinen zur Bestimmung des Typs eines Zeichens wie wctype(3); die Routinen zur Ein- und Ausgabe dieser Zeichens wie getwc(3); die Routinen für formatierte Ein-/Ausgabe wie wprintf(3) und wscanf(3). Routinen zur Umwandlung in mehrere Byte große Zeichen stehen ebenfalls zur Verfügung, siehe multibyte(3).

Bei vielen Seiten der Onlinehilfe wurde das Aussehen und der Inhalt korrigiert und verbessert, dieser Prozeß ist aber noch lange nicht abgeschlossen. [MERGED]

Die meisten traditionellen BSD-Spiele wurden aus dem Standardsystem entfernt und sind jetzt nur noch über den Port `games/freebsd-games` verfügbar. Betroffen sind die folgenden Spiele: adventure(6), arithmetic(6), atc(6), backgammon(6), battlestar(6), bs(6), canfield(6), cribbage(6), fish(6), hack(6), hangman(6), larn(6), mille(6), phantasia(6), piano(6), pig(6), quiz(6), rain(6), robots(6), rogue(6), sail(6), snake(6), trek(6), wargames(6), worm(6), worms(6), wump(6). dm(8) diente zur Steuerung des Zugriffes auf diese Spiele und wurde ebenfalls entfernt. Die ``nützlichen'' Spiele und fortune(6), verbleiben im System.

### 2.3.1. Zusätzliche Software

am-utils wurde auf Version 6.0.7. aktualisiert.

Ein vom 13. Dezember 2002 stammender Snapshot der awk-Variante von Bell Labs (unter den Bezeichnungen ``BWK awk'' und ``Der Einzig Wahre AWK'' bekannt) wurde in das Basissystem aufgenommen. Es steht auf allen Plattformen als `awk` und `nawk` zur Verfügung.

BIND wurde auf Version 8.3.3 aktualisiert. [MERGED]

Binutils wurden auf eine Vorversion von 2.13.2 mit Stand 27. Oktober 2002 aktualisiert.

Alle Anwendungen aus dem bzip2 Paket sind jetzt im Basissystem verfügbar (dies betrifft speziell `bzip2recover`, das jetzt erzeugt und installiert wird).

file wurde auf Version 3.39 aktualisiert.

gcc steht jetzt in der Version 3.2.1 zur Verfügung.

> Warnung: Das C++ ABI von gcc 3.2.`X` ist inkompatibel zu dem früherer Versionen.

gdb steht jetzt in der Version 5.2.1 zur Verfügung.

gperf wurde auf Version 2.7.2 aktualisiert.

groff und die dazugehörigen Programme wurden auf die FSF-Version 1.18.1 aktualisiert.

Heimdal Kerberos wurde auf Version 0.5.1 aktualisiert. [MERGED]

Der ISC DHCP Client wurde auf Version 3.0.1RC11 aktualisiert.

Das Programm more(1) wurde durch less(1) ersetzt, es ist aber möglich, es als `more` aufzurufen. [MERGED] Die Version 371 von less wurde importiert.

Mit `libbsdxml` steht jetzt im Basissystem eine Bibliothek zur Bearbeitung von XML-Dokumenten zur Verfügung; damit sollen XML-nutzende Programme im Basissystem unterstützt werden. Sie basiert fast ausschließlich auf einem Import von expat 1.95.5, erhielt aber einen anderen Namen, um Konflikte mit anderen Versionen von expat auszuschließen, wenn diese über die Ports Collection installiert werden.

libpcap wurde auf Version 0.7.1 aktualisiert. [MERGED]

libreadline wurde auf Version 4.2 aktualisiert.

libz wurde auf Version 1.1.4 aktualisiert.

lint wurde durch den von NetBSD am 19. Juli 2002 verwendeten lint(1) aktualisiert.

lukemftp 1.6 beta 2 (der FTP Client aus NetBSD) hat das von FreeBSD genutzte Programm ftp(1) ersetzt. Zu den neuen Eigenschaften gehören weitergehende Möglichkeiten der Automatisierung, bessere Einhaltung von Standards, Begrenzung der Transferrate, und die Anpassung der Eingabeaufforderung. Einige Environment-Variablen und Optionen für die Kommandozeile haben sich ebenfalls geändert.

Die von OpenBSD am 26. April 2002 genutzte Version von m4(1) wurde importiert. [MERGED]

ncurses wurde auf Version 5.2-20020615 aktualisiert.

Die diversen NTP Programme wurden auf Version 4.1.1b aktualisiert.

OpenPAM (``Daffodil'' Release) wird jetzt statt Linux-PAM verwendet.

Die Programmsammlung OPIE (einmal verwendbare Paßwörter) wurde auf Version 2.4 aktualisiert. Sie hat S/Key vollständig ersetzt. [MERGED]

Perl wurde aus dem FreeBSD Basissystem entfernt. Es ist weiterhin möglich, die Version aus der FreeBSD Ports Collection, das binäre Package oder über den Punkt Perl distribution im Menü Distributionen von sysinstall(8) zu installieren. Durch diesen Schritt wird es in Zukunft deutlich einfacher sein, neue Perl-Versionen zu importieren und Verbesserungen einzubringen. Um das Basisystems von Perl-Abhängigkeiten zu befreien, wurden viele in Perl geschriebene Utilities durch C-Programme und Shellskripte ersetzt (für jedes dieser Utilities existiert ein eigener Eintrag in den Release Notes).

> Anmerkung: Die Arbeiten zur Entfernung aller Perl-Skripte sind noch nicht abgeschlossen.

> Anmerkung: Die meisten der in sysinstall(8) verfügbaren Distributionen enthalten die neue Perl Distribution. Diese Änderung wird daher für die meisten User transparent sein, sie müssen lediglich Perl separat aktualisieren.

GNU ptx wurde aus dem Basissystem entfernt, da es von keinem Teil des Basissystem genutzt wird und schon seit längerer Zeit weder aktualisiert noch gepflegt wird. Das Programm ist aber weiterhin über den Port `textproc/textutils` verfügbar.

Der `rc.d` Mechanismus wurde von NetBSD übernommen. Dabei werden die Aktionen beim Systemstart auf viele kleine, ``aufgabenorientierte'' Scripts im Verzeichnis `/etc/rc.d` verteilt; die Aufrufreihenfolge wird dynamisch beim Start des System ermittelt.

GNU sort wurde aktualisiert, die neue Version stammt aus den GNU textutils 2.0.21.

Die NetBSD-Version von stat(1) wurde auf dem Stand von 5. Juni 2002 importiert.

GNU tar wurde auf Version 1.13.25. aktualisiert. [MERGED]

tcpdump wurde auf Version 3.7.1 aktualisiert. [MERGED]

Die csh(1) Shell wurde durch tcsh(1) ersetzt, die aber auch als `csh` aufgerufen werden kann. tcsh wurde auf Version 6.12 aktualisiert. [MERGED]

Die zur Verfügung gestellte Version der tcp_wrappers enthält jetzt das Hilfsprogramm tcpd(8). Dieser wird zwar von einer FreeBSD Standardinstallation nicht benötigt, da inetd(8) diese Funktionalität bereits enthält; er kann aber für inetd(8)-Alternativen wie z.B. xinetd nützlich sein. [MERGED]

texinfo wurde auf Version 4.2 aktualisiert. [MERGED]

top wurde auf Version 3.5b12 aktualisiert. [MERGED]

traceroute wurde auf die LBL-Version 1.4a12 aktualisiert.

Der Standardwert für die von traceroute(8) benutzte TTL wird jetzt von der Sysctl-Variablen `net.inet.ip.ttl` definiert. [MERGED]

Die Datenbank der Zeitzonen wurde auf Version `tzdata2002d` aktualisiert. [MERGED]

#### 2.3.1.1. CVS

cvs ist jetzt in der Zwischenversion 1.11.2.1 mit Stand 1. Dezember 2002 verfügbar. [MERGED]

#### 2.3.1.2. CVSup

#### 2.3.1.3. KAME

#### 2.3.1.4. OpenSSH

OpenSSH wurde auf Version 3.4p1 aktualisiert. [MERGED] Die wichtigsten Änderungen:

- Die `*2` Dateien werden nicht mehr benötigt (zum Beispiel kann `~/.ssh/known_hosts` jetzt den Inhalt von `~/.ssh/known_hosts2` enthalten).

- ssh-keygen(1) kann Schlüssel jetzt im SECSH Public Key File Format importieren und exportieren, um Schlüssel mit diversen kommerziellen SSH-Version auszutauschen.

- ssh-add(1) wertet jetzt alle drei Standardschlüssel aus.

- ssh-keygen(1) verwendet keinen Standardardtyp mehr, der Typ der Schlüssels muß mit der Option `-t` angegeben werden.

- Das neue Feature ``privilege separation'' nutzt unprivilegierte Prozesse, um die Auswirkungen von Sicherheitslücken und Programmierfehlern einzuschränken und zu begrenzen.

- Die Behebung diverser Fehler, dazu gehört eine Sicherheitslücke, die zu einem Integer-Überlauf und dadurch zu einer nicht gewünschten Vererbung von Privilegien führen konnte.

#### 2.3.1.5. OpenSSL

OpenSSL wurde auf Version 0.9.6g aktualisiert. [MERGED]

#### 2.3.1.6. sendmail

sendmail wurde von Version 8.9.3 auf Version 8.12.6 aktualisiert. Einige der wichtigen Änderungen sind: sendmail(8) wird nicht mehr SUID `root` Programm installiert (jetzt SGID `smmsp`); neue Stanard-Pfade (siehe `/usr/src/contrib/sendmail/cf/README`); newaliases(1) darf nur noch von `root` und vertrauenswürdigen Benutzer gestartet werden; STARTTLS Verschlüsselung; der MSA Port (587) ist standardmäßig aktiviert. Weitere Informationen sind in `/usr/src/contrib/sendmail/RELEASE_NOTES` verfügbar. [MERGED]

        define(`confDEF_USER_ID', `daemon')

Beim Start des System wird sendmail nicht mehr standardmäßig von rc(8) gestartet, um ankommende SMTP Verbindungen anzunehmen. Diese Einstellung kann von sysinstall(8) je nach gewähltem Sicherheitsprofil überschrieben werden. Alternativ können Sie auch die folgenden Zeile in die Datei `/etc/rc.conf` eintragen:

        sendmail_enable="YES"

Wenn die von sendmail verwendeten Datenbanken alias und map mit `/etc/mail/Makefile` erzeugt werden, werden die Zugriffsrechte jetzt standardmäßig auf 0640 gesetzt, um einen Denial-of-Service Angriff mittels File Locking durch lokale Benutzer zu verhindern. Die Zugriffsrechte können in `make.conf` mit der neuen Option `SENDMAIL_MAP_PERMS` geändert werden. [MERGED]

Die Zugriffsrechte für `/var/log/sendmail.st`, die Datei mit den sendmail-Statistiken, wurden von 0644 auf 0640 geändert, um einen Denial-of-Service Angriff mittels File Locking durch lokale Benutzer zu verhindern. [MERGED]

### 2.3.2. Infrastruktur für Ports und Packages

Durch eine neue Sammlung von Modulen mit dem Namen BSDPAN wird Perl besser in die FreeBSD Ports Collection eingebunden.

Sowohl FreeBSD 5.0-CURRENT als auch einige 4.X-Versionen enthielten das Programm pkg_update(1), mit dem man installierte Packages und die von ihnen benötigten Packages aktualisieren konnte. Dieses Programm wurde entfernt, da mit dem Package `sysutils/portupgrade` eine deutlich leistungsstärkere Variante zur Verfügung steht.

pkg_version(1) war früher ein Perl Skript und wurde jetzt in C neu geschrieben. Die oft falsch eingesetzte Option `-c` wurde entfernt. Der Port `sysutils/portupgrade` bietet eine unterstützte und sichere Alternative für die Aktualisierung der installierten Ports/Packages.

Die Infrastruktur für die Ports Collection benutzt jetzt standardmäßig XFree86 4.2.1, um Abhängigkeiten zu erfüllen. Wenn Sie weiterhin XFree86 3.3.6 verwenden wollen, müssen die folgende Zeile in die Datei `/etc/make.conf` eintragen: [MERGED]

        XFREE86_VERSION=3

Die im Package `emulators/linux_base` enthaltenen Bibliotheken für die Linux Emulation entsprechen jetzt den Bibliotheken von Red Hat Linux 7.1. [MERGED]

Die von der Ports Collection erzeugten bzw. die auf den FTP-Servern bereitliegenden Pakete werden jetzt mit bzip2(1) statt gzip(1) gepackt. Aus diesem Grund enden die Dateinamen jetzt mit `.tbz` statt `.tgz`. Die diversen Tools für die Arbeit mit Packages wurden für das neue Format aktualisiert.

Die Ports Collection verwendet jetzt eine separate Übersicht (`/usr/ports/INDEX-5`), die von FreeBSD 5-CURRENT genutzt wird. Der Hauptgrund für die Änderung war das Problem, daß Pakete in FreeBSD 5-CURRENT Abhängigkeiten haben, die sie in FreeBSD 4-STABLE nicht haben (wie z.B. `lang/perl5`). Die jeweils aktuelle Indexdatei heißt allerdings weiterhin `INDEX`.

## 2.4. Erzeugung von Releases und Integration

Die Distribution `bin` wurde in `base` umbenannt, dadurch wird es einfach, kombinierte Installations- und Reparaturmedien zu erzeugen.

Es ist jetzt möglich, eine Release von FreeBSD 5-CURRENT auf einem FreeBSD 4-STABLE System zu erzeugen. Es ist auch möglich, Releases für eine andere Architektur als die des Host-Systems zu erzeugen. Details finden Sie in release(7). [MERGED]

Die Disketten-Version wurde um eine dritte Diskette mit dem Namen `drivers.flp`. Sie enthält nachladbare Kernel-Module für Treiber, die nicht in der Kernel auf der `kern.flp` Diskette oder auf das `mfsroot.flp` Image passen.

## 2.5. Dokumentation

Eine Reihe von Dokumenten aus den ``4.4 BSD Programmer's Supplementary Documents'' unterliegen nicht mehr dem Copyright und stehen daher ab sofort wieder in `/usr/share/doc/psd` zur Verfügung. Dazu gehören:

- The UNIX Time-Sharing System (`01.cacm`)

- UNIX Implementation (`02.implement`)

- The UNIX I/O System (`03.iosys`)

- UNIX Programming -- Second Edition (`04.uprog`)

- The C Programming Language -- Reference Manual (`06.Clang`)

- Yacc: Yet Another Compiler-Compiler (`15.yacc`)

- Lex -- A Lexical Analyzer Generator (`16.lex`)

- The M4 Macro Processor (`17.m4`)

Eine Reihe von Dokumenten aus den ``4.4 BSD Users's Supplementary Documents'' unterliegen nicht mehr dem Copyright und stehen daher ab sofort wieder in `/usr/share/doc/usd` zur Verfügung. Dazu gehören:

- NROFF/TROFF User's Manual (`21.troff`)

- A TROFF Tutorial (`22.trofftut`)

# 3. Aktualisierung einer älteren Version von FreeBSD

Anwender, die schon ein FreeBSD-System im Einsatz haben, sollten auf jeden Fall die ``Hinweise für die ersten Anwender von FreeBSD 5.0'' lesen. Dieses Dokument ist auf den Distributionen in der Regel in der Datei `EARLY.TXT` verfügbar; ansonsten sollte es überall dort verfügbar sein, wo auch die anderen Dokumente der Release Notes verfügbar sind. Das Dokument enthält einige Tipps für die Aktualisierung; viel wichtiger ist aber die Analyse der beiden Optionen Wechsel zu FreeBSD 5.`X` bzw Weitere Verwendung von FreeBSD 4.`X`.

> Wichtig: Sie sollten vor der Aktualisierung von FreeBSD auf jeden Fall Sicherheitskopien aller Daten und Konfigurationsdateien anlegen.

Diese Datei und andere Dokumente zu dieser Version sind bei http://snapshots.jp.FreeBSD.org/verfuegbar.

Wenn Sie Fragen zu FreeBSD haben, lesen Sie erst die Dokumentation, bevor Sie sich an <de-bsd-questions@de.FreeBSD.org> wenden.

Alle Anwender von FreeBSD 5-CURRENT sollten sich in die Mailingliste <current@FreeBSD.org> eintragen.

Wenn Sie Fragen zu dieser Dokumentation haben, wenden Sie sich an <de-bsd-translators@de.FreeBSD.org>.