FreeBSD/alpha 7.0-CURRENT notes de version

Le Projet FreeBSD

$FreeBSD: src/release/doc/fr_FR.ISO8859-1/relnotes/common/new.sgml,v 1.26 2002/10/19 16:26:29 gioria Exp $

Les notes de version pour FreeBSD 7.0-CURRENT contiennent un résumé des changements récents réalisés dans le système FreeBSD de base de la branche de développement 7-CURRENT. Les changements concernant le noyau et les programmes utilisateurs sont mentionnés ainsi que les avis de sécurité applicables au système de base qui ont été découverts depuis la dernière version. Ces notes contiennent également quelques brèves remarques sur la mise à jour.


Table of Contents
1. Introduction
2. Les nouveautés
2.1. Changements concernant le noyau
2.1.1. Support des cartes mères et des processeurs
2.1.2. Gestionnaire de démarrage
2.1.3. Support des interfaces réseau
2.1.4. Protocoles réseau
2.1.5. Disques et Stockage
2.1.6. Systèmes de fichier
2.1.7. Support PCCARD
2.1.8. Support Multimédia
2.1.9. Logiciels externes
2.2. Changements liés a la sécurité
2.3. Changements dans les programmes utilisateurs
2.3.1. Logiciels externes
2.3.2. Collection des Ports/Packages
3. Mise a jour depuis une version précedente de FreeBSD

1. Introduction

Ce document contient les notes de version pour FreeBSD 7.0-CURRENT sur plate-forme Alpha/AXP. Il décrit les nouvelles fonctions de FreeBSD qui ont été ajoutées, modifiées ou retirées dans FreeBSD. Il contient également quelques notes sur la mise à jour depuis la version précédente de FreeBSD.


2. Les nouveautés

Cette section décrit les fonctions nouvelles ou les modifications les plus visibles pour l'utilisateur sous FreeBSD depuis la version 5.3-RELEASE. Il s'agit typiquement de nouveaux gestionnaires de périphériques ou du support de matériels, de nouvelles commandes ou options, de corrections de bugs majeurs, ou de mise à jour de logiciels. Les avis de sécurité pour le système de base découverts après la 5.3-RELEASE sont égalements mentionnés.

De nombreux changements supplémentaires apportés à FreeBSD ne sont pas mentionnés ici par faute de place. Par exemple, la documentation a été corrigée et améliorée, des bugs mineurs ont été corrigés, du code potentiellement dangereux pour la sécurité a été audité et corrigé et le code source a été remis au propre.


2.1. Changements concernant le noyau

acct(2) a été modifié pour ouvrir le fichier d'accounting en mode ajout, comme cela accton(8) peut être utilisé pour activer l'accounting dans un fichier en mode ajout.[MERGED]

Une nouvelle commande show pcpu ajoutée a ddb(4), permet d'obtenir la liste des données par processeur.

devfs(5), permet de créer automatiquement les entrées nécessaires dans le répertoire /dev et le support des périphériques a attachement variable, a été longuement revu. devfs(5) est maintenant activé par défaut et peut etre désactivé par l'option du noyau NODEVFS.

Le sous système de “règles” devfs(5) a été introduit. Les règles DEVFS permettent à l'administrateur de définir certaines propriétés pour chaque noeud de périphérique avant qu'ils soient visibles en mode utilisateur. Les noeuds statiques (ex:/dev/speaker) et dynamiques (e.g./dev/bpf*, certains périphériques démontables) sont supportés. Chaque montage de devfs(5) peut disposer de règles différentes, permettant d'implémenter des politiques différentes pour implémenter dans des jails par ex. Les règles et les ensembles de règles se manipulent avec l'utilitaire devfs(8)

Le gestionnaire de périphérique dgm a été retiré en faveur du gestionnaire digi.

Un nouveau gestionnaire de périphérique digi a été ajouté pour supporter les cartes Digiboard PCI Xr et ISA Xem. Un nouveau programme, digictl(8), permet de ré-initialiser les cartes qui ont des modules de ports externes attachés comme les PC/Xem.

Un nouvel appel système eaccess(2) a été ajouté, similaire à access(2) excepté qu'il utilise les identités effective au lieu des identités réelles.

Chaque environnement jail(2) peut maintenant tourner dans son niveau de sécurité personnel.

Les variables sysctl pour jail(2) ont été déplacées de la hiérarchie jail.* a security.*. Les autres variable sysctl ayant un rapport avec la sécurité ont été déplacées de la hiérarchie kern.security.* a security.*.

L'environnement du noyau est maintenant dynamique, et peut être changé via l'appel système kenv(2).

Le gestionnaire de périphérique labpc(4) a été retirer du a “bitrot”.

Le chargeur et le linker du noyau vérifient via la présence du fichier linker.hints dans chaque répertoire des modules chargeables par le noyau du nom du module et de la version du fichier KLD. L'utilitaire kldxref(8) permet de générer ces fichiers.

** lomac(4), a Low-Watermark Mandatory Access Control security facility, has been added as a kernel module. It provides a drop-in security mechanism in addition to the traditional UID-based security facilities, requiring no additional configuration from the administrator. Work on this feature was sponsored by DARPA and NAI Labs.

FreeBSD supporte maintenant un environnement extensible de Mandatory Access Control. Il permet aux modules chargeables de noyau d'être lier au noyau au moment de la compilation, du démarrage ou de l'exécution et augmente donc la politique de sécurité du système.

Note: L'implémentation de l'environnement MAC est en cours.



Le code de profiling de mutex(9) a été ajouté et est activable via l'option de configuration du noyau MUTEX_PROFILING. Cela permet d'activer la hiérarchie des variables sysctl debug.mutex.prof.*.

Le gestionnaire de périphérique random(4) a été réécrit pour utiliser l'algorithme Yarrow. Il permet d'obtenir une meilleur entropy, depuis différentes sources, incluant la console, les interfaces réseaux Ethernet et PPP, et les périphériques de stockage. L'entropy de random(4) est maintenant périodiquement sauvegardé dans des fichiers dans le répertoire /var/db/entropy, ainsi que au moment de l'arret du système. La sémantique de /dev/random a changé; il ne bloque plus en attendant des bits d'entropy, mais génére un flux de pseudo données aléatoires exactement comme /dev/urandom.

Une nouvelle option du noyau, options REGRESSION, active les interfaces et les fonctionnalités utiles lors des phases de regression et de correction.

Le supportRLIMIT_VMEM support a été ajouté. Cette fonctionnalité définit une nouvelle ressource limite qui couvre l'ensemble de l'espace mémoire virtuel d'un processus, incluant l'espace mmap(2). Cette limite peut être configurée via la nouvelle variable vmemoryuse de login.conf(5). [MERGED]

Le gestionnaire de périphérique syscons(4) supporte maintenant le copier-coller via le clavier, par défaut via les touches Shift-Insert.

Le timer de retransmission du protocole tcp(4) peut maintenant etre manipulé via les variables sysctl: net.inet.tcp.rexmit_min et net.inet.tcp.rexmit_slop.

Le procotole tcp(4) dispose de la possibilité de limiter dynamiquement la fenêtre d'envoi pour maximiser la bande passante et réduire les temps de transit. Cette fonctionnalité est activable via la variable sysctl net.inet.tcp.inflight_enable

Le gestionnaire de périphérique uaudio, permettant de supporter les périphériques audio USB a été ajouté. [MERGED]

Pour augmenter la sécurité, l'option de configuration du noyau UCONSOLE a été retiré.

L'option du noyau USER_LDT est maintenant activée par défaut.

Le gestionnaire de périphériques uvisor(4) permettant de connecter les Handspring Visors via USB a été ajouté. [MERGED]

Un gestionnaire de périphériques VESA S3 linear framebuffer a été ajouté.

L'infrastructure de gestion des crash noyau a été revue, pour supporter les nouvelles plateformes. L'implication principale est que le format du fichier des crash sur disque a été modifié, et est maintenant indépendant de l'ordre des octets.

Les très grands swap (>67 GB) ne panique plus le système.

Le support pour les threads en émulation Linux a été ajouté.

Les définitions du linker sont maintenant inclues par défaut; gensetdefs(8) n'est donc plus nécessaire et a donc été retiré.

Il est maintenant possible de rajouter des variables d'environnement directement dans le noyau au moment de la compilation en utilisant la directiveENV de config(8) .

**Idle zeroing of pages can be enabled with the vm.idlezero_enable sysctl variable.

The FreeBSD kernel scheduler now supports Kernel-Scheduled Entities (KSEs), which provides support for multiple threads of execution per process similar to Schedular Activations. At this point, the kernel has most of the changes needed to support threading. The kernel scheduler can schedule multiple threads per process, but only on a single CPU at a time. Support for userland programs to create and utilize multiple threads is not yet completed.

Note: KSE is a work in progress.



Le noyau prend en compte maintenant le concept que il y a des unités plus petites que un processus a gérer (mais il ne peut avoir plus d'un thread par processus autorisé a un moment précis).

Le noyau supporte maintenant plusieurs périphériques bas-niveau pour la console. Le nouvel utilitaire conscontrol(8) permet de gérer ces différentes consoles..

Le gestionnaire de périphériques des console supporte maintenant les cartes graphiques de type TGA.

L'allocateur de mémoire du noyau est maintenant un distributeur "galettes" de mémoire, similaire à celui de celui qui est utilisé dans Solaris. C'est un système d'allocation mémoire compatible SMP, qui a une performance quasi-linéaire lorsque le nombre de CPUs augmente. Il réduit aussi la fragmentation mémoire.


2.1.1. Support des cartes mères et des processeurs

Le support multi-processeur SMP a été largement revu, et le code de BSD/OS 5.0 a été incorporé. Une des fonctionnalités importantes de SNMPng ((“SMP Next Generation”) est de permettre a plus de processus de fonctionner en mode noyau, tout en ne nécessitant pas de "spin locks" qui réduisent énormément l'utilité des systèmes multi-processeurs. Les "handlers" d'interruptions ont maintenant leur propre contexte, ce qui permet de les bloquer et donc qui permet de réduire le besoin de poser des "locks" sur les interruptions.

La carte mère API UP1100 est validée .

Les serveurs API CS20 1U sont validés.

Le support pour les AlphaServer 2100A (“Lynx”) a été ajouté.

Du code dans le noyau a été ajouté pour permettre a de vieilles générations de processeurs Alpha(EV4 et EV5) d'émuler les instructions pour les nouvelles générations de processeurs Alphas. Cela permet d'utiliser certains programmes, disponibles uniquement en binaire, comme Adobe Acrobat 4 sur des processeurs EV4 et EV5.

Le support SMP sur Alpha est maintenant opérationnel.

Le support du matériel suivant a été retirer du noyau d'installation pour permettre d'obtenir une disquette 1.44.Mb: Multia, NoName, PC64, EB64, Aspen Alpine, sa (SCSI tape), amr, support du port parallel, vx (3c590, 3c595), pcn (AMD Am79C97x PCI 10/100), sf (Adaptec AIC-6915), sis (SiS 900/SiS 7016), ste (Sundance ST201 (D-Link DFE-550TX)), wb (Winbond W89C840F).

Le support pour les Alpha TurboChannel Alphas a été retiré.


2.1.2. Gestionnaire de démarrage

Le noyau et les modules ont été déplacés dans le répertoire /boot/kernel, pour permettre de les manipuler ensemble de façon plus simple. Le gestionnaire de démarrage a été mise à jour pour refléter ce changement.


2.1.3. Support des interfaces réseau

Le gestionnaire de périphériques dc(4) supporte désormais les cartes à base de composants Xircom 3201 et Conexant LANfinity RS7112.

Le gestionnaire de périphériques ed(4) est supporté.

Le périphérique stf(4) est maintenant clonable.

Le gestionnaire de périphériques tx(4) supporte maintenant réellement le filtrage multicast.

Les périphériques réseaux apparaissent maintenant automatiquement comme des fichiers spéciaux dans /dev/net. Des ioctls matériels su les interfaces ( en excluant le protocol ou le routage) peut etre effectué sur ces périphériques. L'ioctl SIOCGIFCONF peut etre effectué sur le fichier /dev/network.


2.1.4. Protocoles réseau

Un gestionnaire de périphériques gre(4), qui encapsule les adresses IP en utilisant GRE (RFC 1701) ou l'encapsulation minimale pour IP mobile (RFC 2004), a été ajouté.

Les réponses ICMP ECHO et TSTAMPsont maintenant limitées. Les RSTs TCP générés du a des ports ouverts et semi-ouverts sont maintenant limités par des compteurs séparés. Chaque taux de file de limitation a maintenant sa propre description.

IP multicast fonctionne mainetant sur les périphériques VLAN. Plusieurs autres bogues dans le code des VLAN ont été corrigés.

ipfw(4) filtre maintenant correctement sur la présence de bits ECN dans les segments TCP. [MERGED]

Un nouveau noeud netgraph ng_etf(4) permet au paquets de type Ethernet d'etre filtrés sur différents critères sur les "ethertype".

Les noeuds netgraph ng_gif(4) et ng_gif_demux(4) opérants sur les gestionnaires de périphériques gif(4) ont été ajoutés.

Le noeud netgraph ng_ip_input(4), permettant de créer des files d'attentes des paquets IP dans le code d'execution principal de la couche IP a été ajouté.

Les type de noeud ng_mppc(4) et ng_bridge(4) ont été ajouté au sous-système netgraph(4). Le noeud ng_ether(4) est maintenant chargeable dynamiquement. Différents bogues et améliorations ont été effectuées. [MERGED]

Un nouveau noeud netgraph; ng_one2many(4), permettant de multiplexer et démultiplexer les paquets sur plusieurs liens a été ajouté.[MERGED]

Une nouvelle variable sysctl net.inet.ip.check_interface, activée par défaut, permet de vérifier que le paquet arrivant sur une interface a une addresse correspondante à l'addresse de destination du paquet. [MERGED]

Une nouvelle variable sysctl net.link.ether.inet.log_arp_wrong_iface a été ajoutée et permet de supprimer le log des requetes ARP lorsque le retour d'une paquet ARP arrive sur la mauvaise interface[MERGED]

Une nouvelle option noyau options RANDOM_IP_ID permet au champ ID des paquets IP d'etre aléatoire. Cela permet d'empecher a un observateur distant de calculer a quelle vitesse la machine génère des paquets. Précédemment a chaque paquet un compteur était incrémenter.[MERGED]

SLIP a été retiré de l'image disquette mfsroot.

TCP a recu différentes corrections de bogues pour les ACK retardés. [MERGED]

TCP supporte maintenant la modification "NewReno" sur l'algorithme " TCP Fast Recovery". Cette fonctionnalité est controlable via la variable sysctlnet.inet.tcp.newreno. [MERGED]

TCP utilise maintenant une minuterie plus agressive pour les SYN initiaux; cela permet de dropper de façon plus rapide les tentatives de connexions. [MERGED]

L'option noyau TCP_COMPAT_42 a été retirée. [MERGED]

L'option noyau TCP_RESTRICT_RST a été retirée. Une fonctionnalité similaire peut etre trouvée via la variable sysctl net.inet.tcp.blackhole. [MERGED]

Les extensions du RFC 1323 de TCP sont maintenant activées par defaut dans rc.conf(5). [MERGED]

Les extensions des RFC 1323 et TFC 1644 de TCP sont maintenant désactivées si aucune réponse au 3eme SYN envoyé n'est reçue lors d'une demande de connexion. Cette fonctionnalité permet de travailler avec les (tres vieux) serveurs de terminaux ayant une implémentation de l'entete VJ de compression boggué. [MERGED]

L'implémentation TCP de nécessite plus l'allocation d'une structure TCP pour chaque connexion; cela permet de réduire le nombre de tampons utilisés sur des systèmes ayant énormément de connexions. [MERGED]

La taille des tampons TCP par défaut, controllée par les variables sysctl net.inet.tcp.sendspace et net.inet.tcp.recvspace, a été augmentée respectivement à 32K et 64K. Précedemment cette valeur était de 16K pour chaque tampon. Pour essayer d'éviter l'augmentation de la congestion, la valeur par défaut de net.inet.tcp.local_slowstart_flightsize a été changée de l'infini a 4. [MERGED]

Note: Sur des machines très chargées, la nouvelle valeur de la taille des tampons peut nécessiter une augmentation manuelle du paramètre NMBCLUSTERS, soit dans le fichier de configuration du noyau, ou via la variable kern.ipc.nmbclusters. netstat -mb permet de monitorer l'etat des clusters mbuf.



TCP supporte maintenant le RFC 1948(Defending Against Sequence Number Attacks). Cette fonctionnalité est controlable via les variables sysctl net.inet.tcp.strict_rfc1948 et net.inet.tcp.isn_reseed_interval. [MERGED]

L'implémentation TCP de FreeBSD comporte maintenant un cache en réception des segments SYN. L'arrivé d'un segmentSYN ajoute alors une entrée dans le cache en attendant la fin de la séquence d'initialisation des 3 états TCP, a chaque point la mémoire est alloué comme auparavant. En plus touts les numéros de séquences initiale TCP (ISN) sont utilisés comme "cookies", permettant a chaque entrée du cache d'etre détruite, tout en ayant leur ACK correspondant accepté plus tard. La combinaison de ces fonctionnalités appelées “syncache” et “syncookies” permet a une machine d'etre plus resistante aux attaques par déni de services TCP. Cette fonctionnalité est fournie grace au sponsor du DARPA et NAI Labs. [MERGED]

Un bogue dans l'implémentation TCP, figeant une connexion si l'emetteur fixait une fenetre de zero, a été corrigé.. [MERGED]


2.1.5. Disques et Stockage

Le gestionnaire de périphériques ahc(4) a reçu de nombreuses modifications, corrections de bogues et améliorations. Parmi les différentes améliorations il dispose d'une meilleur compatibilité avec les puces en mode “RAID Port” et les systèmes comportant des cartes AAA et/ou ARO, et des améliorations de la performance. Des bogues ont été fixés, comme celui qui figeait les controleurs Ultra2/U160. [MERGED]

Le gestionnaire de périphériques ata(4) supporte maintenant les controleurs ATA100. En plus il supporte maintenant les puces ServerWorks ROSB4 ATA33, CMD 648 ATA66 et CMD 649 ATA100 et Cyrix 5530. [MERGED]

Pour une configuration plus fexible, les différentes options du gestionnaire ata(4) sont maintenant modifiables via le gestionnaire de démarrage, plutot que au niveau du fichier de configuration du noyau.[MERGED]

Le gestionnaire de périphériques ata(4) supporte maintenant le mécanisme de marquage de file, qui est activable via la variable de démarrage hw.ata.tags. [MERGED]

Le gestionnaire de périphériques ata(4) supporte maintenant les “pseudo” controleurs RAID ATA comme les controleurs Promise Fasttrak et HighPoint HPT370.[MERGED]

Le gestionnaire de périphériques ata(4) supporte maintenant un grand nombre de puces SiS, listé dans les Notes Matérielles. [MERGED]

La fonctionnalité BurnProof(TM), disponible sur les graveurs de CDROM ATAPI et maintenant disponible.[MERGED]

Le gestionnaire de périphériques ata(4) supporte dispose du support d'adressage 48-bit. Les périphériques de plus de 137GB sont maintenant supportés. [MERGED]

Le gestionnaire de périphériques ata(4) est maintenant corrigé pour les systèmes utilisant les puces VIA 82C686B Southbridge, qui entrainait une corruption des données. [MERGED]

Les erreurs de récupération CAM ont été mises à jour.

Le gestionnaire de périphériques cd(4) supporte maintenant les écritures. Cela permet d'écrire sur les DVD-RAM, PD et d'autres lecteurs qui sont signalés comme des périphériques CD. Notez que cette modification affecte uniquement les périphériques a accès en écriture aléatoire, et pas les périphériques a accès en écriture séquentielle comme les lecteurs CD-R, qui sont eux supportés par cdrecord(1) (via sysutils/cdrtools de la collection des Ports. [MERGED]

Le gestionnaire de périphériques de disquette fdc(4) a subit de nombreuses améliorations. La sélection de la densité est maintenant automatique; le gestionnaire est aussi plus souple sur la selection de la densité de différents sous- périphériques.

Le gestionnaire de périphériques de disque ida, supporte maintenant la focntion de "crashdump". [MERGED]

Le bogue qui ne permettait pas d'attacher certains lecteurs de CDROM lorsqu'ils étaient connectés sur une carte SCSI gérée par isp(4) a été corrigé.. [MERGED]

Le gestionnaire de périphériques isp(4) permet maintenant de découvrir de façon pro-active les changements de topologie Fibre Channel.

Le gestionnaire de périphériques isp(4) supporte maintenant le mode cible pour les cartes SCSI Qlogic, dont les cartes Ultra2 et Ultra3 et les cartes double bus..

Le gestionnaire de périphériques isp(4) supporte maintenant les cartes PCI Qlogic 2300 et 2312 Fibre Channel.[MERGED]

md(4), le gestionnaire de périphériques de disque mémoire, comporte maintenant les fonctionnalités de vn(4) Les périphériques md(4) peuvent maintenant etre configurés via mdconfig(8). vn(4) a été retiré. Le système de fichiers mémoire (MFS) a été retiré aussi..

Différents problèmes dans la gestion des erreurs de sa(4) ont été corrigés, de meme que le problème “tape drive spinning indefinitely upon mt(1) stat” .

Le gestionnaire de volume vinum(4) a reçu des corrections de bogues et des améliorations.

La compatibilité des gestionnaires de périphériques wd(4) a été retirée des gestionnaires de périphériques ata(4). [MERGED]


2.1.6. Systèmes de fichier

Le support des attributs étendus a été ajouté au noyau de FreeBSD Cela permet au noyau, et certains processus utilisateurs privilégiés, de marqué des fichiers et des répertoires avec des données supplémentaires. Les attributs étendus ont été ajoutés pour supporter le projet TrustedBSD, en particulier les ACL, l'accès via des jetons (voyez le fichier /usr/src/sys/ufs/ufs/README.extattr pour plus de détails).

Suite a un changement dans sa license, les "softupdates" ont été intégrés dans la portion principale des sources du noyau. Cela a pour conséquence de permettre aux "softupdates" de pouvoir etre disponible dans le noyau GENERIC. [MERGED]

La capacité d'effectuer un snapshot a été ajouté a FFS. Plus de détails peuvent etre trouvé dans le fichier /usr/src/sys/ufs/ffs/README.snapshot.

Les "softupdates" pour FFS ont reçus de nombreux correctifs et améliorations.

Lors de l'utilisation des "softupdates" et statfs(2), df(1) affiche le nombre de blocs et de fichiers qui sont pret a etre nettoyés.

Le bogue dans FFS corrompant les superblock sur de grands systèmes de fichier a été corrigé.[MERGED]

Le système de fichier Inode (IFS) a été ajouté; plus d'informations sont disponible dans le fichier /usr/src/sys/ufs/ifs/README.

Le système de fichiers ISO-9660 dispose maintenant d'une routine chargeable a la demande de convertion de caractères. Le port sysutils/cd9660_unicode comporte un ensemble de base de conversions.

kernfs(5) est obsolète et a été retiré.

Un bogue dans le client NFS causant un temps d'accès faux sur les fichiers ouverts par O_EXCL|O_CREAT a été corrigé [MERGED]

Une nouvelle fonction de hashage NFS (basé sur l'algorithme de hashage Fowler/Noll/Vo) a été implémentée et améliore les performances NFS en augmentant l'efficience des tables de hashage de nfsnode. [MERGED]

Les locks NFS coté client on été implémentés.

Le code NFS coté client et serveur dans le noyau a été croisé de manière complexe. Ils ont été séparés pour une meilleure maintenance et de futurs développements..

Le support des listes de controle d'accès (ACLs) sur le système de fichiers a été introduit, permettant de controler de façon plus fine l'accès aux fichiers et répertoires. Ce support vient du projet TrustedBSD. Plus de détails sont disponibles dans le fichier /usr/src/sys/ufs/ufs/README.acls.

L'algorithme préféré de schéma des répertoires pour FFS (dirprefs) a changé. Plutot que de couper les blocs de répertoires a travers un disque, il essaie de grgouper les blocs de répertoire ensemble. Les opérations de traversé de larges structures de répertoire, comme les ports de FreeBSD, a démontré plus de rapidité. Ce changement est transparent et automatique pour les nouveaux répertoires. [MERGED]

Pour rester cohérent les systèmes de fichiers fdesc, fifo, null, msdos, portal, umap et union ont été renommés en fdescfs, fifofs, msdosfs, nullfs, portalfs, umapfs, et unionfs. Les modules et programmes mount_* possibles ont été aussi renommés. La compatiblité avec l'entrée du système de fichiers msdos dans fstab(5) a été ajoutée a mount(8) permettant de fonctionner sans changement.

pseudofs, un canevas pour des pseudo-systèmes de fichiers, a été ajouté. linprocfs(5) et procfs(5) ont été modifiés pour permettre l'utilisation de pseudofs.

Une optimisation très simple sur la recherche de hashage de gros répertoires, appelé dirhash, a été ajouté. Conditionné par l'option noyau UFS_DIRHASH (activé par défaut dans le noyau GENERIC), permet d'augmenter la rapidité de traitement dans les gros répertoires tout en consommant un peu plus de mémoire. [MERGED]

Le sous-système de mémoire virtuel supporte maintenant les nécessités mémoire des répertoires UFS par défaut (cette fonction est controler via la variable sysctl vfs.vmiodirenable). [MERGED]

Un bogue empéchant le montage du système de fichier "root" depuis un CDROM SCSI a été corrigé (les CDROM ATAPI ont toujours été supportés). [MERGED]

Des bogues dans le code des systèmes de fichiers, découvert en utilisant l'utilitaire fsxde test des systèmes de fichiers, ont été corrigés. Dans certaines cas (principalement lors de l'utilisation de NFS) certains bogues causaient la corruption des données ou des paniques du noyau. [MERGED]

Les systèmes de fichiers réseaux (comme NFS et smbfs) listés dans le fichier /etc/fstab peuvent maintenant etre montés au moment de l'initialisation du système; le montage est alors suspendu jusqu'à l'initialisation finale du réseau.


2.1.7. Support PCCARD

Sur les machines modernes, les périphériques PCCARD peuvent etre configurés pour envoyer indifféremment leurs interruptions via les interruptions PCI ou ISA. Le gestionnaire de périphériques pcic(4) a été modifié pour supporter ces deux modes d'interruptions (précedemment juste le mode ISA était supporté). [MERGED] Dans la plupart des cas, la configuration des périphériques PCMCIA sur des ordinateurs portables est simplifié et plus flexible. De plus, plus de ponts de cartes PCI Cardbus ( comme ceux utilisés par les cartes Orinoco PCI) sont supportés. Certaines machines peuvent poser des problèmes, comme des paniques ou des arrets, avec le routage des interruptions PCI; elles peuvent la plupart du temps fonctionner en forçant l'ancien mode de routage des interruptions via le bus ISA. Les lignes suivantes placées dans le fichier /boot/loader.conf, permettent de résoudre ce problème:

hw.pcic.intr_path="1"
  hw.pcic.irq="0"

Lors de l'installation de FreeBSD, taper les lignes suivantes au moment du prompt du gestionnaire de démarrage peut etre très utile pour démarrer pour la première fois FreeBSD :

ok set hw.pcic.intr_path="1"
      ok set hw.pcic.irq="0"

2.1.8. Support Multimédia

snd_maestro3_load="YES"

Le gestionnaire de périphériques bktr(4) a été mis à jour en version 2.18. Cette mise à jour fournit de nombreuses nouvelles fonctionnalités. De nouveaux types de tuner ont été joutés et des améliorations dans les modules KLD et l'allocation mémoire ont été effectués. Des bogues dans devfs(5) lors du chargement et déchargement ont été corrigés. Le support pour les nouvelles cartes Hauppauge Model 44xxx WinTV a été ajouté. [MERGED]

Lorsque les modules sons sont compilés, un seul suffit a charger tous les gestionnaires et l'infrastructure par la commande kldload snd. [MERGED]

Une nouvelle API a été ajoutée pour les cartes sons ayant un controleur de volume matériel.


2.1.9. Logiciels externes

Le language de commande inspiré sur Forth (FICL) du gestionnaire de démarrage a été mis à jour en version 2.05.

Le supporte pour la configuration avancée de gestion d'énergie (ACPI), un standard multi-constructeurs sur la gestion d'énergie, a été ajouté. Cette fonctionnalité est fournié par le projet Intel ACPI Component Architecture, depuis le snapshot ACPI CA 20020214. Une certaine compatibilité pour les applications utilisant l'ancien standard APM est fourni.


2.1.9.1. IPFilter

IPFilter a été mis a jour en version 3.4.20. [MERGED]

IPFilter supporte maintenant IPv6. [MERGED]


2.1.9.3. KAME

La couche IPv6 est maintenant basée sur la snapshot du projet KAME IPv6 en date du 28 Mai 2001. La plupart des ajouts de cette section résultent de cet import. La Section 2.3.1.3 liste les modifications dans les programmes utilisateurs de la couche KAME IPv6 . [MERGED]

gif(4) est maintenant basé sur le RFC 2893 et non plus sur le RFC 1933. Le drapeau d'interface IFF_LINK2 permet de controler le fitrage.[MERGED]

IPSec a reçu de nombreuses améliorations, comme la capacité d'utiliser les algorithmes SHA2 et Rijndael. Le support de IPSec RC5 a été retiré du a des problèmes de license. [MERGED]

stf(4) est maintenant conforme au RFC 3056; le drapeau d'interface IFF_LINK2 permet de controler le fitrage.[MERGED]

IPv6 vérifie mieux les adresses illégales (comme l'adresse de bouclage) sur les réseaux physique. [MERGED]

L'option socket IPV6_V6ONLY est maintenant completement supporté. La façon dont le noyau respecte cette option est controler par la variable sysctl net.inet6.ip6.v6only. [MERGED]

Le RFC 3041 (Privacy Extensions for Stateless Address Autoconfiguration) est supporté. Il peut etre activé par la variable sysctl net.inet6.ip6.use_tempaddr. [MERGED]


2.2. Changements liés a la sécurité

sysinstall(8) permet maintenant a un utilisateur de choisir un des deux “profils de sécurité” au moment de l'installation Ces profils activent ou désactivent alors différents services via le fichier de configuration rc.conf(5) lors de nouvelles installations. [MERGED]

Un bogue qui fixait le système pour des images ELF exécutables malformées a été résolu (voir l'avis de sécurité FreeBSD-SA-00:41). [MERGED]

Un trou de sécurité dans l'émulation Linux a été corrigé (voir l'avis de sécuritéFreeBSD-SA-00:42). [MERGED]

Les appels a la librairie de traitement des chaines ont été corrigés dans beaucoups de programmes, pour réduire la possiblité d'exploitation des dépassements de tampons. [MERGED]

TCP utilise maintenant une fonction plus aléatoire pour le choix du nombre initial lors de l'initialisation de la séquence (voir l'avis de sécurité FreeBSD-SA-00:52). [MERGED]

Différents dépassements de tampons dans tcpdump(1) ont été corrigés (voir l'avis de sécurité FreeBSD-SA-00:61). [MERGED]

Le trou de sécurité de top(1) a été corrigé (voir l'avis de sécurité FreeBSD-SA-00:62). [MERGED]

Un potentiel trou de sécurité du a une erreur potentielle dans gethostbyname(3) a été corrigé (voir l'avis de sécurité FreeBSD-SA-00:63). [MERGED]

Un potentiel dépassement de tampon dans la libraire ncurses(3) permettant l'execution de programme via systat(1) a été corrigé(voir l'avis de sécurité FreeBSD-SA-00:68). [MERGED]

La vulnérabilité de telnetd(8) causant une consommation importante de ressources du serveur a été corrigée (voir l'avis de sécurité FreeBSD-SA-00:69). [MERGED]

La commande nat deny_incoming de ppp(8) fonctionne maintenant correctement (voir l'avis de sécurité FreeBSD-SA-00:70). [MERGED]

La vulnérabilité dans les fichiers temporaires créés par csh(1)/ tcsh(1) permettant d'écraser certains fichiers utilisateurs a été corrigée (voir l'avis de sécurité FreeBSD-SA-00:76). [MERGED]

Le binaire ssh(1) n'est plus SUID root par défaut. [MERGED]

Différentes corrections ont été apportées à l'implémentation de Kerberos IV relatives a des variables d'environnements, un possible dépassent de tampon, et l'écrasement de fichiers de tickets. [MERGED]

telnet(1) nettoie maintenant mieux son environnement.[MERGED]

Différentes vulnérabilités dans procfs(5) ont été corrigées (voir l'avis de sécurité FreeBSD-SA-00:77). [MERGED]

Un bogue dans OpenSSH dans lesquel un serveur n'etait pas capable de désactivé ssh-agent(1) ou X11Forwarding a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:01). [MERGED]

Un bogue dans ipfw(8) et ip6fw(8) traitant des segments TCP entrants comme des connexions établies a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:08). [MERGED]

Un bogue dans crontab(1) permettant a un utilisateur de lire n'importe quel fichier en ayant une syntaxe de crontab(5) valide a été corrigé(voir l'avis de sécurité FreeBSD-SA-01:09). [MERGED]

La vulnérabilité dans inetd(8) permettant l'accès en lecture aux 16 bytes initiaux des fichiers accessibles par le groupe wheel a été corrigé(voir l'avis de sécrurité FreeBSD-SA-01:11). [MERGED]

Un bogue dans periodic(8) qui utilisait des fichiers temporaires de façon peu sécurisée a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:12). [MERGED]

Un bogue dans sort(1) permettant a un attaquant d'arrèter son traitement a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:13). [MERGED]

OpenSSH intègre maintenant un code permettant de prévenir (plutot que de limiter le nombre de connexions) aux attaques permettant de trouver la clef du serveur (pas la clef de la machine) en regénérant une nouvelle clef lorsque un problème RSA est détecté (voir l'avis de sécurité FreeBSD-SA-01:24). [MERGED]

Plusieurs programmes ont subit une correction dans le formattage de l'affichage de sortie des chaines pour réduire le risque de vulnérabilités. [MERGED]

Plusieurs programmes utilisants des fichiers temporaires les utilisent maintenant de façon plus sécurisée. [MERGED]

Un bogue dans ICMP premettant a un attaquant de perturber les “sessions” TCP et UDP a été corrigé. [MERGED]

Un bogue dans timed(8), causant un crash lors de l'envoi de paquets mals formés, a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:28). [MERGED]

Un bogue dans rwhod(8), permettant de le "crasher" lors de l'envoi de paquets mal formés a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:29). [MERGED]

Un trou de sécurité dans les implémentations FFS et EXT2FS de FreeBSD permettant à des utilisateurs l'accès a des données non autorisées, a été corrigé. (voir l'avis de sécurité FreeBSD-SA-01:30). [MERGED]

Un vulnérabilité, exploitable à distance, de ntpd(8) a été réglée(voir l'avis de sécurité FreeBSD-SA-01:31). [MERGED]

Un trou de sécurité dans le mécanisme de "cache" des fragments IP d'IPFilter a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:32). [MERGED]

Un dépassement dans glob(3) permettant l'execution de code dans le serveur de FTP a été corrigé. De plus, pour prévenir certaines formes d'attaques DOS, glob(3) permet de limiter le nombre de répertoires qu'il retourne. ftpd(8) utilise maintenant cette fonctionnalité (voeyz l'avis de sécurité FreeBSD-SA-01:33). [MERGED]

L'initialisation des numéros de séquences TCP est plus aléatoire (voyez l'avis de sécurité FreeBSD-SA-01:39). Suite a des potentiels problèmes de compatiblité, cette fonctionalité de sécurité peut etre activé ou désactivé via la variable sysctl net.inet.tcp.tcp_seq_genscheme.[MERGED]

Un vulnérabilité dans les routines fts(3) (utilisés par des applications pour parcourir de façon récursive un système de fichier) permet à un programme de lire des fichiers en dehors de la hiérarchie de répertoire autorisé. Ce bogue a été corrigé voir l'avis de sécurité FreeBSD-SA-01:40). [MERGED]

L'implémentation de la couche TCP de FreeBSD a été rendue plus résistante aux attaques SYN, en éliminant le segment RST envoyé normalement lors du nettoyage d'une connexion de la file d'attente

OpenSSH prend, maintenant, l'UID de l'utilisateur avant d'essayer d'effacer le fichier d'authentification, annulant les effets d'une "race"

A flaw allowed some signal handlers to remain in effect in a child process after being exec-ed from its parent. This allowed an attacker to execute arbitrary code in the context of a setuid binary. This flaw has been corrected (see security advisory FreeBSD-SA-01:42). [MERGED]

Un dépassement de buffer à distance dans tcpdump(1) a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:48). [MERGED]

Un dépassement de buffer à distance dans telnetd(8) a été corrigé (voir l'avis de sécurité FreeBSD-SA-01:49). [MERGED]

Les nouvelles variables sysctl net.inet.ip.maxfragpackets et net.inet.ip6.maxfragpackets permettent de limiter la quantité de mémoire utilisée par les fragments des paquets IPv4 et IPv6; cela permet de mieux se prévenir contre les attaques par déni de service (voyez l'avis de sécurité FreeBSD-SA-01:52). [MERGED]

Tous les services dans inetd.conf sont maintenant désactivés par défaut pour les nouvelles installations. sysinstall(8) done la possiblité d'activer ou désactiver inetd(8) pour les nouvelles installation, comme l'édition de inetd.conf. [MERGED]

Un bogue dans l'implémentation des règles de ipfw(8) comportant me sur les liens point à point a été corrigé. Les règles de filtrage comportant me matchaient l'adresse IP distante a la place de l'adresse IP local (voyez l'avis de sécurité FreeBSD-SA-01:53). [MERGED]

Une vulnérabilité dans procfs(5), permettant a un processus de lire des informations sensibles depuis l'espace mémoire d'un autre processus, a été corrigée (voyez l'avis de sécurité FreeBSD-SA-01:55). [MERGED]

La vérification d'un nom de machine en mode PARANOID de tcp_wrappers fonctionne maintenant correctement (voyez l'avis de sécurité FreeBSD-SA-01:56). [MERGED]

Un bogue permettant de passer root dans sendmail(8) a été corrigé(voyez l'avis de sécurité FreeBSD-SA-01:57). [MERGED]

Un bogue permettant de passer root a distance dans lpd(8) a été corrigé (voyez l'avis de sécurité FreeBSD-SA-01:58). [MERGED]

Une "race condition" dans rmuser(8) qui rendait brièvement /etc/master.passwd lisible pour tout utilisateur a été corrigée (voyez l'avis de sécurité FreeBSD-SA-01:59). [MERGED]

Un bogue dans UUCP a été corrigé (voyez l'avis de sécurité FreeBSD-SA-01:62). Tous les binaires n'appartenant pas a root dans les "path" système standard ont maintenant le drapeau schg permettant d'empecher l'exploitation de bogues via cron(8), par root, ou par un utilisateur autre que celui auquel appartient le binaire. De plus uustat(1) est lancé maintenant via /etc/periodic/daily/410.status-uucp sous l'utilisateur uucp, et non plus root. Dans FreeBSD -CURRENT, UUCP ne fait plus partie des binaires systèmes, et a été déplacé dans la collection des Ports. [MERGED]

Un trou de sécurité, sous la forme d'un dépassement de buffer, dans l'appel système semop(2) a été corrigé.[MERGED]

Un trou de sécurité dans OpenSSH, permettant a un utilisateur d'executer du code avec des privilèges supplémentaires si UseLogin yes était activé, a été corrigé. Notez que la valeur par défaut de ce paramètre est UseLogin no. (Voyez l'avis de sécurité FreeBSD-SA-01:63.) [MERGED]

L'utilisation de répertoire temporaire par pkg_add(1) pouvait permettre a un attaquant local de modifier le contenu des binaires distribués au moment ou ils allaient etre installé. Ce bogue a été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:01). [MERGED]

Une "race condition" dans pw(8), permettant de lire le contenu du fichier /etc/master.passwd, a été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:02.) [MERGED]

Un bogue dans k5su(8) pouvait permettre a un processus ayant obtenu des privilèges super-utilisateur de les ré-obtenir. Ce bogue a été corrigé (voyez l'avis de sécurité FreeBSD-SA-02:07.) [MERGED]


2.3. Changements dans les programmes utilisateurs

Si le premier argument de ancontrol(8) ou de wicontrol(8) ne commence pas par un -, il est considéré comme une inteface.

apmd(8) peut maintenant monitorer les niveaux des batteries et executer des commandes basées sur le pourcentage ou le nombre de minutes restantes via la directive de configuration apm_battery. Voyez les exemples commentés dans le fichier /etc/apmd.conf pour la syntaxe. [MERGED]

arp(8) affiche maintenant le nom de l'interface correspondante à chaque entrée ARP. [MERGED]

arp(8) affiche maintenant [fddi] ou [atm] pour les adresses d'interfaces de ce type.

atacontrol(8) a été ajouté pour permettre de controler de nombreux aspects du gestionnaire de périphérique ata(4).

burncd(8) supporte maintenant l'option -m pour la création en mode multi-session (par défaut les disques sont fermés en mono-session). Une option, -l, a été ajoutée et permet de prendre une liste des images depuis un fichier. - peut etre utilisé comme un nom de fichier et correspond a l'entrée standard stdin. [MERGED]

burncd(8) supporte maintenant le mode "Disk At Once (DAO)", sélectionnable via l'option -d.

burncd(8) peut maintenant écrire sur les VCDs/SVCDs.

c89(1) a été converti en binaire et certains bogues mineurs ont été fixés. [MERGED]

cat(1) dispose maintenant de la capacité de lire depuis des sockets de type UNIX-domain. [MERGED]

cdcontrol(1) supporte maintenant une commande cdid qui permet de calculer et d'afficher le numéro de série du Cd, en utilisant le meme algorithme que la base CDDB. [MERGED]

cdcontrol(1) utilise maintenant la variable d'environnement CDROM pour choisir le périphérique par défaut. [MERGED]

cdcontrol(1) supporte maintenant les commandes next et prev pour avancer et reculer d'une piste sur un CD audio.[MERGED]

chflags(1) a été déplacé de /usr/bin vers /bin.

chio(1) a maintenant la possibilité de spécifier les élements par volume a la place de leur emplacement physique tout comme la possibilité de remettre un éléments a son emplacement précédent. [MERGED]

chmod(1) supporte maintenant l'option -h pour changer le mode d'un lien symbolique.

chown(8) suit maintenant correctement les liens symboliques s'ils sont spécifiés en arguments de la ligne de commande meme sans l'option -R. [MERGED]

chown(8) n'utilise plus . comme délimiteur utilisateur/groupe. Cette modification a été faite pour permettre de supporter les noms d'utilisateurs contenant un ..

L'inclusion de <sys/param.h> n'est plus obligatoire pour l'utilisation des macros CSMG_*.

col(1) dispose maintenant de l'option -p permettant, dans le cas d'une sequence de controle inconnue, de ne pas en tenir compte. [MERGED]

La distribution compat3x a été mise à jour pour inclure les librairies présentes dans FreeBSD 3.5.1-RELEASE. [MERGED]

Une distribution compat4x a été ajoutée pour la compatibilité avec FreeBSD 4-STABLE.

config(8) convertit maintenant plus de "warnings" qui devaient etre des erreurs en des erreurs fatales avec un code de sortie. Cela permet à make buildkernel de ne plus les ignorer et de générer un noyau boggué dans le cas d'une compilation automatique.[MERGED]

Différents dépassement de buffer dans config(8) ont été corrigés. [MERGED]

La programme daemon(8), une interface en ligne de commande a daemon(3), a été ajouté. Il se détache lui meme du terminal et execute le programme passé en ligne de commande. Cela permet a un utilisateur de lancer un programme comme s'il avait été écrit en démon.

devinfo, un outil permettant d'afficher l'arbre des périphériques et l'utilisation des ressources par périphériques, a été ajouté.

df(1) dispose maintenant de l'option -l permettant d'afficher uniquement les systèmes de fichiers localement montés. [MERGED]

disklabel(8) supporte maintenant l'expression des tailles de partitions en kilobytes, megabytes, ou gigabytes, en plus des secteurs. [MERGED]

dmesg(8) dispose maintenant de l'option -a permettant d'afficher la totalité du message de démarrage, incluant les messages syslogd(8) et l'affichage /dev/console.[MERGED]

du(1) dispose maintenant d'une option -I permettant d'ignorer les fichiers et les sous-répertoires correspondant à un masque spécifié. [MERGED]

dump(8) supporte maintenant l'héritage du drapeau nodump a travers une hiérarchie. [MERGED]

L'option -T de dump(8) n'attend plus forcément un argument supplémentaire. [MERGED]

dump(8) dispose maintenant d'une option -D , permettant de changer le nom du fichier /etc/dumpdates. [MERGED]

dump(8) affiche maintenant une information de progression dans le titre du processus, très utile pour la supervision des sauvegardes automatisées.

edquota(8) dispose maintenant de l'option -f, permettant de limiter la modification du fichier des quotas (spécifié via l'option -p)a un seul système de fichiers. [MERGED]

fbtab(5) accepte maintenant des expressions régulières pour les périphériques cibles, et non plus juste des noms de périphériques ou de répertoires individuels.

fdread(1), a program to read data from floppy disks, has been added. It is a counterpart to fdwrite(1) and is designed to provide a means of recovering at least some data from bad media, and to obviate for a complex invocation of dd(1).

find(1) supporte maintenant l'option -empty qui retourne vrai si le fichier ou le répertoire est vide. [MERGED]

find(1) supporte maintenant les options -iname et -ipath principalement pour ne pas tenir compte de la casse et les options -regexp et -iregexp correspondant aux correpondances par expressions régulières. L'option -E permet maintenant d'activer le support des expressions régulières étendues. [MERGED]

find(1) dispose maintenant des options -anewer, -cnewer, -mnewer, -okdir, et -newer[acm][acmt] permettant la comparaison des dates et heures des fichiers. La dernière option permet de spécifier la valeur en différentes unités de temps. [MERGED]

finger(1) dispose de la possiblité de comparer le nom aux aliases, via le fichier finger.conf(5). [MERGED]

finger(1) dispose maintenant du support du fichier .pubkey.

fmt(1) a été réécrit; la réécriture a permis de corriger un certain nombre de bugs. [MERGED]

fmtcheck(3), une fonction permettant de vérifier la consistence des arguments de formatage de chaine, a été ajoutée. [MERGED]

L'infrastructure de fsck(8) permettant a fsck(8) de travailler sur différents types de systèmes de fichiers (comme mount(8)).

La façon dont fsck(8) gère plusieurs passes (a la /etc/fstab), a été modifié pour lui permettre de s'accomoder des systèmes de fichiers sur plusieurs disques.

fsck(8) dispose maintenant du support de vérification en avant plan(-F) et en arrière plan(-B). Traditionnellement fsck(8)est invoqué avant le montage des systèmes de fichierset toutes les vérifications sont faites a ce moment. Si la vérification en arrière plan est disponible, fsck(8) est invoqué deux fois. Il est invoqué en premier de façon traditionnelle, avant de monter les systèmes de fichier, avec l'option -F pour vérifier les systèmes de fichiers ne pouvant etre vérifier en arrière plan. Il est invoqué une seconde fois, après que le systèmes soit passé en mode multi-utilisateur, avec l'option -B pour vérifier tous les autres systèmes de fichiers pouvant être vérifié en arrière plan. Contrairement à la vérification en avant-plan, la vérification en arrière plan est démarré de façon asynchrone, cela permet donc de permettre à d'autres processus système de démarrer pendant que les systèmes de fichiers sont vérifiés. L'activation de cette fonctionnalité est controllée par la variable background_fsck du fichier rc.conf(5).

Immédiatement avec la réception d'un signal SIGINFO (souvent un control-T depuis le tty de controle), fsck_ffs(8) affiche maintenant une ligne indiquant le numéro et l'information de progression de la phase en cours.[MERGED]

fsck_ffs(8) supporte maintenant la vérification en arrière plan des systèmes de fichiers FFS montés grace a l'option -B (les softupdates doivent être activés sur ces systèmes de fichiers). L'option -F permet de spécifier que le système de fichier doit être vérifier en avant-plan.

Un nouvel utilitaire fsck_msdosfs(8) a été ajouté pour vérifier la consistence des systèmes de fichiers MS-DOS. [MERGED]

ftpd(8) dispose maintenant de l'option -r permettant le mode lecture seule, et l'option -E permettant de désactiver la commande EPSV. Il dispose aussi de plusieurs fixes permettant de réduire la diffusion d'information et la possibilitée de sépcifier un interval de ports au moment de sa compilation. [MERGED]

ftpd(8) supporte maintenant les options -o et -O permettant de désactiver la commande RETR; la première pour tout le monde et la deuxième juste pour les invités. Couplé a l'option -A et des permissions appropriées sur les fichiers, cela permet de créer un FTP anonyme assez propre permettant a d'autres de déposer des fichiers..

Les fonctions getprogname(3) et setprogname(3) ont été ajoutée pour permettre de manipuler le nom du programme courant. Elles sont utilisées par les routines de gestion d'erreurs pour afficher des messages consistents.[MERGED]

gprof(1) dispose maintenant de l'option -K pour résoudre de façon dynamique les symboles du noyau en cours d'execution. Avec cette fonctionnalité, les modules chargeables peuvent maintenant etre profilés.

growfs(8), un utilitaire pour augmenter la taille des systèmes de fichiers FFS a été ajouté. ffsinfo(8), un utilitaire pour afficher les méta-informations d'un système de fichier a été aussi ajouté. [MERGED]

Les scripts shells groups(1) et whoami(1) ne sont plus nécessaires; leur fonctionnalités sont maintenant intégrées dans id(1). [MERGED]

Les scripts ibcs2(8), linux(8), osf1(8), et svr4(8), qui chargeaient les modules d'émulation, ont été retirés. Le système de module actuel charge maintenant les modules nécessaires à la demande en vérifiant les dépendances.

indent(1) dispose de nouvelles options de formattage. [MERGED]

ifconfig(8) peut maintenant affecter l'adresse au niveau de la couche lien d'une interface via le paramètre lladdr.[MERGED]

ifconfig(8) accepte maintenant la notation au format CIDR.[MERGED]

ifconfig(8) supporte maintenant l'affectation de paramètres sur les interfaces sans fil IEEE802.11. Les interfaces supportées sont wi(4) et an(4) ainsi que partiellement awi(4). [MERGED]

ifconfig(8) n'affiche plus la liste des média supportés par défaut. Elle est affichée avec l'option -m. [MERGED]

La syntaxe de inetd(8) avec le support de faithd(8) est maintenant compatible avec les autres BSDs. [MERGED]

Le support du protocol ident dans inetd(8) a été vérifié et mise a jour. [MERGED]

inetd(8) peut maintenant gérer les sockets de type UNIX-domain. [MERGED]

install(1) dispose de plusieurs nouveautés, comme les options -b et -B pour sauvegarder les fichiers cibles existants et l'option -S pour copier de façon “attentive”. L'option -c (copie) est maintenant active par défaut et l'option -D (debug) a été retirée. install(1) affiche maintenant un warning si l'option -d (créer les répertoires) et l'option -C (copie des fichiers modifiés uniquement) sont utilisées ensemble. [MERGED]

IP Filter est maintenant supporté par le fichier de configuration du démarrage rc.conf(5)[MERGED]

ipfstat(8) supporte maintenant l'option -t pour lui permettre un affichage à la top(1). [MERGED]

ipfw(8) n'affiche plus les règles dynamiques sauf si on lui passe l'option -d. L'option -e permet d'afficher la liste des règles dynamiques expirées. [MERGED]

ipfw(8) permet de vérifier les paquets sur les interfaces ayant des adresses IP dynamiques (via me). [MERGED]

ipfw(8) dispose du type limit pour les règles, qui permet de limitter le nombre de sessions entre deux adresses. [MERGED]

Les règles de filtrage de ipfw(8) peuvent maintenant vérifier la valeur du champ de précédencee IPv4.

ip6fw(8) peut maintenant utiliser un pré-processeur et dispose de l'option -q (quiet) pour la lecture depuis un fichier. [MERGED]

kenv(1), une commande permettant d'afficher l'environnement noyau, a été ajouté. [MERGED]

keyinfo(1) est maintenant un programme C, plutot qu'un script Perl. [MERGED]

killall(1) est maintenant un programme C plutot qu'un script Perl. L'option -m utilise donc maintenant la syntaxe des expressions de regex(3) a la place de celles de perl(1). [MERGED]

killall(1) permet maintenant aux utilisateurs non-root de tuer les processus SUID root qu'ils ont lancé, de la meme façon que la version Perl. [MERGED]

L'utilitaire kldconfig(8) a été ajouté pour permettre de manipuler plus facilement le path de recherche des modules noyau. [MERGED]

last(1) implémente maintenant l'option -d qui permet de voir qui s'est logguer a une date et a une heure spécifique.. [MERGED]

L'utilitaire lastlogin(8), permettant d'afficher le dernier login d'un utilisateur, a été importé de NetBSD. [MERGED]

ldconfig(8) vérifie maintenant le propriétaire du répertoire et les permissions pour plus de sécurité; ces vérifications peuvent etre désactivés via l'option -i. [MERGED]

ldd(1) peut maintenant etre utilisé sur les librairies partagées, en plus des executables. [MERGED]

ldd(1) dispose maintenant de l'option -a pour lister l'ensemble des objets nécessaire pour chaque objet chargeable.

libc est maintenant thread-safe par défaut; libc_r contient uniquement des fonctions "thread-able".

libcrypt et libdescrypt ont été unifié pour fournir une fonction de hashage d'authentification des mots de passe configurable. Les méthodes de hashage des et md5 sont fournies sauf si la fonction de hashage des est spécifiquement retirée. [MERGED]

libcrypt supporte maintenant l'algorithme Blowfish pour le hashage des mots de passe. [MERGED]

libstand supporte maintenant les fichiers compressés en bzip2 dans les systèmes de fichiers. [MERGED]

libstand peut maintenant écraser le contenu d'un fichier sur des systèmes de fichiers UFS (il ne peut pas élargir ou tronquer des fichiers, car le système de fichiers ne serait pas consistent).

L'intervalle par défaut des ports TCP utilisés par libfetch lors de FTP passifs a changé; cela affecte les fonctionnalités de fetch(1), qui dispose maintenant de l'option -U pour utiliser l'ancien intervalle. [MERGED]

libfetch supporte maintenant l'authentification. [MERGED]

libfetch peut maintenant utiliser la variable d'environnement HTTP_USER_AGENT. [MERGED]

libgmp a été remplacé par libmp.

Les fonctions de libposix1e ont été intégrés dans libc.

ln(1) dispose maintenant de l'option -i pour demander a l'utilisateur la confirmation avant d'écraser un fichier existant. [MERGED]

ln(1) supporte maintenant l'option -h pour empécher de suivre une cible qui est un lien, l'option -n a été ajoutée pour la compatibilité. [MERGED]

logger(1) peut maintenant envoyer des messages directement a un syslog distant. [MERGED]

login(1) exporte maintenant les variables d'environnements mis en place par les modules PAM. [MERGED]

lpc(8) a été amélioré; lpc clean est maintenant plus sur, et une nouvelle commande lpc tclean permettant de vérifier quels fichiers seront effacés par lpc clean a été ajoutée. [MERGED]

lpd(8) dispose de deux nouvelles options: -c qui loggue toutes les erreurs de connexion dans syslogd(8), et -W qui permet d'autoriser les connexions depuis des ports non réservés. [MERGED]

lpd(8) supporte maintenant dans ses fichiers de controle des actions d'impressions le type o, qui lui permet d'imprimer les fichiers PostScript générés par MacOS 10.1. [MERGED]

lpr(1), lpq(1), et lpd(8) ont reçus certaines améliorations. [MERGED]

lpr(1), lpd(8), syslogd(8), et logger(1) sont maintenant compatible IPv6, comme d'autres utilitaires réseaux du système de base. [MERGED]

lprm - supporte maintenant la gestions des files d'impressions distantes. [MERGED]

ls(1) peut maintenant produire une sortie en couleur lorsque l'option -G lui est passé (et que le terminal supporte cette fonction). La variable d'environnement CLICOLOR peut etre mise en place pour activer par défaut cette fonctionnalité. [MERGED]

mail(1) supporte maintenant l'option -E pour éviter d'envoyer des messages avec le corps vide. [MERGED]

make(1) dispose des modificateurs de variables :C/// (substitution des expressions régulières), :L (minuscule), and :U (majuscule). Ils ont été ajouté pour réduire les différences entre FreeBSD et OpenBSD/NetBSD. [MERGED]

Différents bogues dans make(1), comme ceux incluant les suffixes vide, mauvaises suppositions sur les permissions des répertoires, et certains dépassements de tampon potentiels, ont été fixés. [MERGED]

La nouvelle variable CPUTYPE dans make.conf permet de controler les optimisations spécifiques à certains processeurs dans différentes parties du code, comme dans OpenSSL. [MERGED]

L'infrastructure de Makefile de FreeBSD supporte maintenant la directive WARNS venant de NetBSD. Cette directive controle l'addition des options de warnings au compilateur via CFLAGS de façon neutre. [MERGED]

man(1) n'est plus installé SUID man, dans le but de réduire les vulnérabilités associées lors de la génération de “catpages” (les pages de manuel cachées pour leur lecture répétées). Comme résultat man(1) ne peut plus créer des pages de manuels cachées pour un utilisateur. Il peut continuer a le faire si l'utilisateur à la possibilité d'écrire dans le répertoire des catpages ( par ex une page de manuel lui appartenant) ou si l'utilisateur le lancant est root.

La commande mdmfs(8) a été ajoutée; c'est un wrapper de mdconfig(8), disklabel(8), newfs(8) et mount(8) qui permet d'utiliser les options de en ligne de commande de mount_mfs(8).

mergemaster(8) inclut maintenant le fichier et /etc/mergemaster.rc et demande maintenant a l'utilisateur de lancer les commandes recommandées (comme newaliases)) si nécessaires. [MERGED]

moused(8) supporte maintenant l'option -a pour controler l'accélération de la souris. [MERGED]

mtree(8) peut utiliser un fichier comportant la liste des répertoires à exclure lorsqu'il crée ou vérifie les prototypes. Cela permet d'utiliser plus facilement mtree(8) comme outil de détection d'intrusion système.[MERGED]

natd(8) dispose maintenant de l'option -log_ipfw_denied pour logguer les paquets qui ne peuvent etre ré-injectés suite a des règles de ipfw(8). [MERGED]

Le pourcentage d'utilisation affiché par netstat(1) reflète maintenant correctement le pourcentage de mbufs réseaux utilisés[MERGED]

netstat(1) dispose maintenant du paramètre de ligne de commande -W qui lui permet de ne pas tronquer les adresses, meme si elles sont trop longue pour s'afficher dans la colonne nécessaire. [MERGED]

netstat(1) garde maintenant une trace des paquets en entrée et en sortie par adresse pour chaque interface. [MERGED]

netstat(1) dispose maintenant du paramètre de ligne de commande -z permettant la remise à zéro des statistiques. [MERGED]

netstat(1) dispose maintenant du paramètre de ligne de commande -S permettant d'afficher les adresse en format numérique tout en gardant les noms symbolique des ports. [MERGED]

newfs(8) implémente maintenant les écritures combinées, cela permet la création des nouveaux systèmes de fichiers jusqu'a sept fois plus rapidement. [MERGED]

newfs(8) dispose maintenant de l'option -U, permettant l'activation des softupdates sur un nouveau système de fichiers. [MERGED]

Le nombre de cylindres par groupe de