Voici donc, depuis le 7 janvier, la version 1.4 de ce système original.
Les nouveautés essentielles concernent une mise à jour profonde de la librairie C et l'introduction du système de packages de NetBSD (PKGSRC). Le compilateur par défaut est maintenant GCC 3.4 (la série 2.95 n'est plus supportée). Le démon NTP (synchronisation du temps) est DNTPD et il devient spécifique à cet OS. TLS (Thread Local Storage) est maintenant en espace utilisateur et les programmes peuvent donc l'utiliser directement (qu'ils soient multithreadés ou pas).
La liste des améliorations et des corrections de bugs est importante et Matt Dillon annonce que cette version 1.4 est la meilleure de toute sur le plan de la stabilité. La seule architecture supportée reste x86 mais un port vers x86-64 a démarré. Dans le cas d'un ordinateur multiprocesseurs la solution logicielle habituelle est l'implantation d'un gros verrou (Big kernel lock) qui empêche deux tâches d'accéder simultanément au noyau. Pour améliorer les performances le système FreeBSD 5.x utilise des verrous fins locaux (mutex pour mutual exclusion). C'est un système extrêmement compliqué et le code est difficile à maintenir.
Selon Matt Dillon cette complexité extrême de FreeBSD 5.x (avec son nouveau modèle de processus, son ordonnanceur de nouvelle génération, l'implémentation de verrous locaux pour les processus au détriment du verrou global, etc.) va empêcher l'obtention d'une grande fiabilité.
Pour DragonFlyBSD c'est la voie de la simplicité qui a été retenue. Le système (LWKT pour Light Weight Kernel Threads) utilise un ordonnanceur par CPU (les processus sont donc compartimentés dans leur CPU) et ils ne peuvent migrer qu'exceptionnellement avec un inter-processor interrupt (IPI). Les mutex de FreeBSD sont remplacés par des sortes de jetons logiciels (serialized tokens) qui garantissent à un ensemble de threads qu'ils ne tourneront jamais en même temps à condition qu'ils ne bloquent pas dans un appel système.
L'avantage principal de LWKT est que la mémoire cache des processeurs est mieux utilisée puisqu'elle duplique beaucoup moins d'informations. Le code est également plus simple, plus lisible et plus maintenable.
Matt Dillon a également beaucoup d'idées originales et singulières pour les versions futures de DragonFlyBSD (en particulier la réécriture du système de fichier virtuel en userspace et utilisant LWKT).
Cet OS mérite certainement qu'on s'y intéresse.
Aller plus loin
- Les nouveautés de la version 1.4 : (1 clic)
- DragonFlyFBSD sur fr.Wikipedia : (3 clics)
- Version plus riche sur en.Wikipedia : (1 clic)
- Le test (critique) de Distrowatch : (0 clic)
- Les plans pour la version 1.5 : (1 clic)
# Et la mascote?
Posté par psychoslave__ (site web personnel) . Évalué à 3.
Ce serait argument de poid ça quand même...
[^] # Re: Et la mascote?
Posté par Jean-Christophe Berthon (site web personnel) . Évalué à 10.
désolé de brider ton imagination !
:-)
[^] # Re: Et la mascote?
Posté par psychoslave__ (site web personnel) . Évalué à 7.
[^] # Re: Et la mascote?
Posté par tuiu pol . Évalué à 3.
[^] # Re: Et la mascote?
Posté par JoeltheLion (site web personnel) . Évalué à 4.
# Motivation?
Posté par Sylvain Briole (site web personnel) . Évalué à 7.
Pour l'instant, j'avais : (merci de commenter ;-))
- NetBSD : portabilité, propreté du code (qualité du code prioritaire sur l'implémentation de la fonctionnalité)
- OpenBSD : sécurité à tout prix (ou presque)
- FreeBSD : mix des deux précédents, avec accent mis sur la fonctionnalité
Puis-je rajouter :
- DragonFly BSD : multi-processeur/multi-tâches, expérimenter des nouvelles voies?
[^] # Re: Motivation?
Posté par patrick_g (site web personnel) . Évalué à 8.
Le multi-processeur/multi-tâches c'est aussi et surtout le credo de FreeBSD puisqu'il se focalise sur les performances.
Pour DragonFlyBSD je dirais qu'un positionnement clair n'a pas encore emergé (du fait de la jeunesse du projet) mais que, d'après les textes de Matt Dillon, ce serait "la performance et l'innovation mais en gardant le code simple".....autrement dit c'est pas gagné pour s'insérer dans le paysage !
Au moment du fork j'y croyais pas trop mais finalement le projet avance et y'a du traffic sur les mailing-lists.
# Commentaire supprimé
Posté par Anonyme . Évalué à 5.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Section de la dépêche
Posté par patrick_g (site web personnel) . Évalué à 5.
C'est pas très important de toute façon.
# Petite Correction TLS
Posté par buju . Évalué à 10.
Description sur wikipedia : http://en.wikipedia.org/wiki/Thread-local_storage
Le paper : http://people.redhat.com/drepper/tls.pdf
[^] # Re: Petite Correction TLS
Posté par patrick_g (site web personnel) . Évalué à 4.
Merci beaucoup pour cette correction !
[^] # Re: Petite Correction TLS
Posté par Nÿco (site web personnel) . Évalué à 4.
Donc voilà, corrigé le drapeau parceque c'est facile...
Corrigé l'acronyme de TLS aussi, mais la phrase a-t-elle un sens maintenant ?
[^] # Re: Petite Correction TLS
Posté par patrick_g (site web personnel) . Évalué à 2.
Oui la phrase continue d'avoir un sens (essentiellement parceque je l'ai entièrement pompée sur l'annonce en anglais et que je me suis contenté de traduire : Implement direct TLS support for programs whether threaded or not.).
# Matt Dillon
Posté par mmbpeople . Évalué à 5.
[^] # Re: Matt Dillon
Posté par reno . Évalué à 1.
# DragonFly_F_BSD ?
Posté par Mathieu Bouju . Évalué à 1.
# Multithread
Posté par GuieA_7 (site web personnel) . Évalué à 2.
En même temps je ne connais pas le nombre de grosses applis du libre qui sont lourdement multitreadées (du genre des threads à 100 % du CPU pendant plusieurs secondes) et qui seraient donc pénalisées...
[^] # Re: Multithread
Posté par patrick_g (site web personnel) . Évalué à 2.
[^] # Re: Multithread
Posté par GuieA_7 (site web personnel) . Évalué à 2.
Je reste donc sur mon impression de 'tous dans le même core', donc un problème potentiel de perfs avec du multithread (ce qui a entraîné les choix de la branche 5 de FreeBSD).
[^] # Re: Multithread
Posté par patrick_g (site web personnel) . Évalué à 3.
In DragonFly, threads are locked to CPUs by design, and each processor has its own LWKT scheduler. Threads are never preemptively switched from one processor to another; they are only migrated by the passing of an "Interprocessor Interrupt" (IPI) message between the CPUs involved. Interprocessor thread scheduling is also accomplished by sending asynchronous IPI messages. One advantage to this clean compartmentalization of the threading subsystem is that the processors' on-board caches in SMP systems do not contain duplicated data, allowing for higher performance by giving each processor in the system the ability to use its own cache to store different things to work on.
The LWKT subsystem is being employed to partition work among multiple kernel threads (for example in the networking code; one thread per protocol), reducing contention by removing the need to share certain resources among various kernel tasks. This thread partitioning implementation of CPU localization algorithims is arguably the key differentiating feature of DragonFly's design.
[^] # Re: Multithread
Posté par vieuxshell (site web personnel) . Évalué à 2.
Ce qui laisse à penser que tous les threads du processus restent sur le même Core. Du coup ça a peu d'interet pour les applis qui ont générallement 1 processus lancant moultes threads.
Mais au vue de la citation de Wikipedia, il semble que ce soit les threads et non les processus qui soient cantonés à 1 Core.
J'ai bon ?
[^] # Re: Multithread
Posté par patrick_g (site web personnel) . Évalué à 4.
Je sais pas si t'a bon mais ça semble être l'explication la plus cohérente.
# BSD Pour les nuls
Posté par Mais qui suis-je ? :) . Évalué à 1.
Histoire de satisfaire ma curiosite
savez vous ou je peux trouver un portrait de famille bsd ecrit en langage humainement comprehensible
Sous entendu pas d'explication technique sur la vie intime du kernell
Mais plutot des resumer disant
tel bsd pour une machine de bureau
tel bsd pour un serveur web
tel bsd pour un serveur de calcul
tel bsd pour un cluster
tel bsd pour ...
etc ...
Puisque les bsd on en parle beacoup mais finalement dans quel domaines c'est interessant et dans quel domaine ca ne l'est pas ?
Merci
[^] # Re: BSD Pour les nuls
Posté par Sylvain Briole (site web personnel) . Évalué à 3.
Juste une pierre à l'édifice que d'autres vont construire : j'utilise personnellement NetBSD par rapport à Linux parce que je préfère le système un peu centralisé de développement par rapport au modèle cathédrale de Linux.
Ainsi, l'évolution d'un noyau NetBSD est relativement lente, et les développeurs réfléchissent à 4 fois avant d'intégrer une fonctionnalité ou un pilote. Les API du noyau évoluent très peu.
Le revers de la médaille : le "quick & dirty" est, dans les noyaux "stables" (pas la version CVS en développement), peu ou prou présent, alors que c'est parfois le cas dans le noyau Linux. Et même dans les version dites stables (e.g. le coup du
#ifdef ALPHA
#define U32 unsigned int
#else
#define U32 unsigned long
#endif
dans un pilote SCSI du noyau 2.4.9)
Pour avoir parcouru le code, je le trouve personnellement plus "propre" que celui de Linux (relativement bien commenté, un style d'écriture de bout en bout, ...).
Mais ce modèle de développement a son revers de médaille : la lenteur d'intégration des fonctionnalités fait que certaines choses ne sont pas encore dans le noyau (e.g.: pas de SMP sous NetBSD alors que cela fait des lustres que c'est présent sous Linux!).
Personnellement, si j'utilise encore Linux, c'est parce que j'ai du matériel ou des applications qui ne peuvent pas tourner sous NetBSD, trop méconnu de certains constructeurs ou développeurs.
En gros, pour des applications qu'on a le temps de valider proprement, qui ont un passé connu, NetBSD fait très bien l'affaire, par contre, pour celui qui veut rester à la pointe de la technologie (matérielle/logicielle), Linux s'en sort souvent beaucoup mieux!
[^] # Re: BSD Pour les nuls
Posté par agmk . Évalué à 4.
C'est pas plutôt par rapport au modèle *bazar* de Linux ? Et cathédrale de NetBSD ?
[^] # Re: BSD Pour les nuls
Posté par Sylvain Briole (site web personnel) . Évalué à 3.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.