Ce rapport couvre la période avril-juin 2007. On y retrouve les projets sponsorisés par Google dans le cadre du Google Summer Of Code, les développements de l'OS, les conférences, et les projets dérivés.
Voici un état des lieux des avancées principales de FreeBSD. Ne maîtrisant pas forcément tous les sujets, certains sont plus succincts que d'autres, voire non présentés. Google Summer Of Code
25 projets autour de FreeBSD ont été acceptés par Google dans le cadre du Google Summer Of Code. En voici quelques-uns :
- Le support des MacBook
Le but de ce projet est de permettre un support complet des MacBook sous FreeBSD avec notamment l'ajout de pilotes et de la correction de bugs.
Beaucoup de choses ont déjà été réalisées au sein de ce projet : support du contrôle du rétroéclairage, pilote SMC, pilote msrtemp, support des changements de fréquence CPU (cpufreq(4)). Le support du Bluetooth est pratiquement réalisé. Plus d'informations
- Le projet BSDBintools
Ce projet s'inscrit dans le cadre d'un projet plus large : la refonte complète de la chaîne d'utilitaires gérant le format ELF (ElfToolChain). Il s'agit donc de remplacer les GNU binutils par des équivalents sous licence BSD qui s'appuieront sous la bibliothèque libelf. Le projet bsdbintools concerne plus précisément : ar(1), ranlib(1), strip(1), objcopy(1). Pour ce faire, le support du format d'archive ar a été rajouté à libarchive, et des implémentations basiques de ar(1) et ranlib(1) sont déjà codées. Plus d'informations
- Un nouvel installateur graphique
Il s'agit du développement d'une nouvelle interface d'installation pour FreeBSD, ainsi que d'un nouveau média d'installation. Le but étant de pouvoir offrir deux méthodes d'installation pour FreeBSD 7 : le classique sysinstall par défaut, et le nouveau finstall en option. Par la suite finstall deviendra l'installateur par défaut pour toutes les architectures supportées et sysinstall sera conservé pour celles qui ne permettent pas l'utilisation de finstall.
Finstall se présentera sous la forme d'un LiveCD FreeBSD, et d'une application GTK+ 2 qui fera l'installation. Des captures d'écrans sont déjà disponibles ici. Plus d'informations
- Amélioration du linuxulator : Le SoC de 2006 consistait à implémenter les fonctionnalités liées au noyau linux 2.6 dans la couche d'émulation Linux. Cette année, il s'agit de finir cette implémentation concernant les futex, les appels systèmes manquants (syscall) et epoll/inotify (en cours). Pour la version 7.0 de FreeBSD, le kernel émulé sera le 2.6.16 et la base Linux par défaut disponible via les ports sera Fedora Core 5. Plus d'informations
- Développement d'un service de tunnels
C'est un service sous licence BSD dont le but est de permettre de créer des tunnels encapsulés dans une multitude de protocole possible, comme : IP, ICMP, UDP, TCP, DNS, HTTP, SSH. L'intérêt étant d'obtenir un seul outil modulaire pour pouvoir gérer des tunnels et automatiquement utiliser le protocole le mieux adapté. Les encapsulations devraient pouvoir être changées à la volée sans que ce soit visible pour l'utilisateur. Actuellement, le démon (mtund : Matus/Magic Tunnel Daemon) permet de créer des tunnels TCP et UDP, de charger des plugins et de basculer d'un plugin à l'autre de manière transparente. Plus d'informations - Port du Linux KVM sous FreeBSD
KVM permet d'exploiter les extensions Intel VT-x et AMD-V dans un environnement de virtualisation. Ce projet consiste à importer le code Linux et à l'utiliser à travers le linux-kmod-compat (modules de compatibilité entre les API du noyau Linux et celle de FreeBSD, permettant entre autre d'utiliser les pilotes de webcam Linux sans modifications de code) et d'améliorer ce dernier si besoin. Statut : le pilote a été importé et les modules ont pu être créés, les applications en espace utilisateur ont été importées. Plus d'informations - Import du Framework sensors depuis OpenBSD
Avec la version 3.9 d'OpenBSD est apparu un framework très complet de gestion des sondes matérielles, offrant une interface sysctl(8) très complète. Le port est en cours, le driver lm(4) et quelques API ont déjà été portés, le plus gros reste à venir avec l'interface sysctl.
Noyau et userland
- Support de XEN
Le support de XEN par FreeBSD avance et devrait permettre son inclusion dans FreeBSD 7.0, mais il reste un point noir : il ne compile pas avec gcc-4.2 qui est maintenant le compilateur de FreeBSD-CURRENT. - Amélioration des schedulers et du support SMP
SCHED_ULE a été en lui-même largement corrigé et ses performances ont été très nettement améliorées, Le vieux SCHED_4BSD est maintenant bien dépassé par SCHED_ULE. SCHED_ULE n'est maintenant plus considéré comme instable, ni expérimental.
SCHED_ULE est en fait un fork du SCHED_ULE original sous le nom de SCHED_SMP, il y a maintenant des discussions pour savoir si il sera inclus sous le nom de SCHED_SMP ou SCHED_ULE dans FreeBSD 7.0 - Amélioration de la couche USB
Plusieurs changements ont été opérés au sein de la couche USB de FreeBSD. Les transferts isochroniques USB sont complètement supportés au travers de hubs USB haut débit ; le support pour les pilotes USB Linux est maintenant complet via une couche d'émulation des API. - libarchive/bsdtar
libarchive et bsdtar passent en version 2. Cette version est intégrée à la branche CURRENT et une version 1.9 identique à la version 2 mais qui ne casse pas l'API/ABI vivra dans la branche 6-STABLE.
Au menu des améliorations :- l'écriture des archives est beaucoup plus rapide que dans la version 1 ;
- des corrections de bugs, et amélioration du code pour le rendre plus portable ;
- support de nouveaux formats, dont notamment le format ar nécessaire pour le projet bsdbintools.
La réécriture de cpio a commencé en utilisant libarchive et devrait voir le jour pour une inclusion dans FreeBSD 8. - Mise à jour de PF
Le firewall Packet Filter a été mis à jour et passe ainsi de la version d'OpenBSD 3.8 à celle d'OpenBSD 4.1.
- Amélioration du support 10Gbit
Les pilotes pour supporter le matériel Chelsio ont été ajoutés au noyau. Toutes les cartes 10Gbits du constructeur sont supportées par ce pilote cxgb(4).
Le pilote mxge(4) supportant le matériel Myricom a été largement amélioré.
La société Neterion a ajouté au noyau le support de ses équipements Xframe 10Gbe Server & Storage, et en assurera elle-même le support sous le nom de nxge(4).
Un pilote - ixgbe(4) - pour les dernières cartes 10Gbit Intel est en développement, il viendra compléter le pilote existant ixgb(4) qui lui support déjà les anciennes cartes Intel. - Changement dans le support de l'IPSEC
Kame Ipsec a été abandonné au profit de FAST_IPSEC(4). Désormais il n'y a plus qu'une seule option "IPSEC" pour ajouter le support ipsec au noyau FreeBSD. - Support du Wake On Lan
Le support du Wake On Lan (démarrage ou extinction à distance) a été ajouté à FreeBSD, pour les pilotes suivants :
- Couche de virtualisation réseau
Ce projet devrait permettre au noyau FreeBSD de pouvoir gérer de multiples instances indépendantes d'un état réseau. Le but étant de pouvoir offrir aux jails(8) une indépendance complète vis à vis du système hôte en ce qui concerne la partie réseau : firewall propre, interfaces virtuelles, tables de routages, et IPSEC.
Plus d'informations sur le projet ici - Amélioration du support du WiFi
Une mise à jour très importante a été effectuée au niveau du support des réseaux sans fils 802.11 sous FreeBSD. Parmi les changements : ajouts de modes avancés en mode station : roaming, scan en arrière plan et le support du matériel 820.11n.
Des extensions du protocole spécifique à Atheros ont été ajoutées permettant d'exploiter ces nouvelles fonctionnalités lorsque les clients sont connectés aux points d'accès à base d'Atheros.
Atheros et Marvell ont travaillé de concert avec les équipes FreeBSD concernant ces améliorations.
Plus d'informations sur la technologie Atheros Super G ici.
Les ports
FreeBSD dispose d'une collection de programmes disponibles au travers des ports de plus en plus importante. Actuellement on compte plus de 17 300 ports disponibles.
Le passage de Xorg 6.9 à 7.2 est l'une des plus grosses interventions qui ait eu lieu dans l'arbre des ports, une partie de l'infrastructure des ports a dû être réécrite, et il n'a pas été possible de permettre une mise à jour automatique par les utilitaires habituels portupgrade/portmaster sans intervention manuelle.
Le passage à Xorg 7.2 a aussi entraîné la disparition de /usr/X11R6 ; désormais, les applications graphiques n'utiliseront plus X11BASE mais LOCALBASE soit /usr/local/.
Enfin un hackathon aura lieu ce week-end (14-15 juillet 2007) pour permettre de corriger un maximum de bug des ports liés au passage de gcc-3.4 à gcc-4.2 dans FreeBSD-CURRENT, voir ici.
Aller plus loin
- FreeBSD (54 clics)
- Le rapport (40 clics)
- Le wiki (44 clics)
- La page du SoC (44 clics)
# USB et transferts isochrone?
Posté par reno . Évalué à 3.
Sinon merci pour cette traduction très claire.
[^] # Re: USB et transferts isochrone?
Posté par H_francis . Évalué à 5.
Deux types de transfert utilisent la bande passante tant qu'elle est disponible (contrôle et bloc), tandis que les deux autres (interruption et isochrone) sont conçus pour fournir une bande passante garantie.
USB Host-Side API Model, Linux documentation
# 6.2 > 7.0
Posté par FRLinux (site web personnel) . Évalué à 3.
Ah j'oubliais, un site indispensable : http://wiki.gcu.info/doku.php
# Impressionné...
Posté par gentildemon . Évalué à 10.
- par les changements apportés à FreeBSD.
Je suis d'ailleurs surpris par les contributions indirectes de google qui semblent financer de nombreux projets uniquement liés à FreeBSD. Je trouve positif d'avoir plusieurs OS libres en concurrence, c'est bien que FreeBSD soit soutenu aussi par les grosses entreprises !
# FAST_IPSEC vs KAME
Posté par vjm . Évalué à 10.
Pour développer un peu, IPsec est arrivé dans FreeBSD grâce à la pile IPv6 du projet KAME. Mais il y a quelques années, Saint Sam Leffler (benis soit-il) a développé une seconde pile IPsec qui ajoutait en particulier le support des coprocesseurs cryptographiques (genre chipset hifn qu'on trouve notamment dans les soekris). Résultat, deux piles IPsec à maintenir avec chacune des fonctionnalités intéressantes que l'autre ne supportait pas (pas d'IPv6 dans FAST_IPSEC, pas de copro crypto dans KAME). L'autre avantage notable de FAST_IPSEC c'était d'être adapté au projet SMPng contrairement à KAME.
Suite à la BSDCan 2005, le Bienheureux George Neville-Neil (co-auteur du dernier Design & Implementation of the FreeBSD Operating System) a entrepris de faire le ménage. IPv6 a donc été ajouté à FAST_IPSEC qui s'est vu également bien nettoyé. On arrive donc au bout avec l'import du patchset final de FAST_IPSEC et la suppression de KAME.
Voir
http://lists.freebsd.org/pipermail/freebsd-net/2007-June/014(...)
http://lists.freebsd.org/pipermail/freebsd-net/2007-June/014(...)
http://sources.zabbadoz.net/freebsd/ipv6/fast-ipsec.html
PS : pour les adjectifs religieux, je suis désolé, je sors d'un Cantique pour Leibowitz.
[^] # Re: FAST_IPSEC vs KAME
Posté par Bapt (site web personnel) . Évalué à 3.
[^] # Re: FAST_IPSEC vs KAME
Posté par vjm . Évalué à 5.
Tu permets d'ailleurs d'éviter de me répondre à moi-même pour ajouter également qu'il y a des discussions pour importer (enfin!) le patchset de Yvan Vanhullebus (de NETASQ) ajoutant le support du NAT-Traversal dans FAST_IPSEC mais ça ne devrait pas arriver avant la release de 7.0 et après pas touche à l'ABI donc pas avant 8.0.
Yvan a promis de maintenir ses patchs pour RELENG_6 et RELENG_7 à jour d'ici là (comme il le fait d'ailleurs depuis 2005 !). Voir
http://lists.freebsd.org/pipermail/freebsd-net/2005-August/0(...)
http://lists.freebsd.org/pipermail/freebsd-net/2007-July/014(...)
Dans le même il y a le travail énorme de Marko Zec qui maintient un patchset pour son projet de virtualisation de la pile TCP/IP depuis FreeBSD 4. Et il n'y a a priori aucune chance pour que son projet soit intégré à FreeBSD 7. D'autant plus que le projet est controversé : si le but est d'améliorer les fonctionnalités de virtualisation de FreeBSD (notamment des jails) était-ce la bonne méthode ? Et même si c'est la bonne méthode il y a des choix architecturaux qui font tiquer pas mal de committers (genre variables globales, difficile à locker, etc.). Voir
http://lists.freebsd.org/pipermail/freebsd-net/2007-June/014(...)
Pour apprécier un peu la quantité de travail et l'évolution, on peut comparer le paper Usenix de 2003 et celui de 2007 à la BSDCan :
http://www.usenix.org/events/usenix03/tech/freenix03/full_pa(...)
http://www.bsdcan.org/2007/schedule/events/24.en.html
Allez j'arrête.
# Sortie de la version 7
Posté par Anonyme . Évalué à 1.
[^] # Re: Sortie de la version 7
Posté par Q. (site web personnel) . Évalué à 2.
[^] # Re: Sortie de la version 7
Posté par Bapt (site web personnel) . Évalué à 1.
[^] # Re: Sortie de la version 7
Posté par pwwwet (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.