Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Liens connexes

Dépêche modérée par

Dépêche éditée par

Code : Nouvelle avancée du port du Hurd sur L4

Posté par Victor STINNER (page perso, ). Modéré le 19 mai 2005.
GNU
Pour rappel, GNU/Hurd est en train de subir une grosse mutation : l'ancien micronoyau GNU Mach va être à terme remplacé par L4, un micro-noyau plus moderne. L4 relègue notamment toute la gestion de la mémoire virtuelle (partiellement fournie par Mach) et les pilotes de périphériques à l'espace utilisateur : il faut donc les implémenter. Neal H. Walfield avait déjà réalisé le premier pas en janvier, en écrivant un serveur, `physmem', permettant l'allocation (et la déallocation), le partage et le mappage de mémoire physique.

Depuis, il n'a pas chômé car il vient de rajouter la pièce manquante à `physmem' : la copie logique de mémoire physique (copy-on-write et mémoire partagée). Comme ce sont les applications elles-mêmes qui s'occupent de la gestion de leur mémoire virtuelle (décider quelles parties vont en 'swap' et où), il a également amélioré la bibliothèque de gestion de mémoire par défaut, `libhurd-mm' pour permettre aux applications de spécifier de façon simple quelles parties doivent aller dans tel forme de swap (partitions de swap, réseau, mémoire externe dédiée, ...).

Ces avancées concluent le travail initial sur la gestion de la mémoire. Cela permet d'envisager le développement de pilotes de périphériques, qui utilisent intensivement la copie de mémoire : dans un premier temps, un pilote IDE d'un autre système pourrait être porté pour permettre d'avoir un système de fichiers, et dans un second il faudra se concentrer sur Fabrica, le framework de pilotes de périphérique.

Par ailleurs, la version K9 des CDs de Debian GNU/Hurd vient de sortir. Au programme, principalement des paquets mis à jour et quelques bugs embêtants corrigés (une résolution de noms défectueuse dans certains cas, par exemple). Debian GNU/Hurd remplit maintenant 9 CDs, mais seules les quatre premières ISOs sont proposées au téléchargement. Une image DVD sera disponible prochainement.
Toujours sur le front Debian GNU/Hurd, Michael Banck a réussi à faire fonctionner Gnome presque entièrement, témoignant du grand travail mené par l'équipe de Debian GNU/Hurd ces derniers temps.

NdM : Merci à Sebastien Binet d'avoir également proposé une dépêche sur le sujet.

> Lire la dépêche (54 commentaires, moyenne: 3,8).  

Pour rappel, L4 est un micro-noyau de "nouvelle" génération sur lequel le Hurd est en train d'être porté. L4 est plus léger et plus performant que son prédécesseur GNU Mach (dont les origines remontent aux années 1980), mais est vraiment minimal : il délègue tout ce qui est gestion à l'espace utilisateur (mémoire virtuelle, toute la partie "décisionnelle" de l'ordonnanceur, communications entre processus) et ne conserve que les mécanismes de base (map/unmap, création de tâches/threads, changement du thread en cours d'exécution). Le pilote IDE qui se charge de votre disque secondaire a planté ? Pas grave, il suffit de le relancer dans la plupart des cas.

L4 (dont le Hurd utilise l'implémentation Pistachio) promet de meilleures performances que GNU Mach, car il réduit considérablement les coûts liés à la communication entre processus et le nombre de copies nécessaire dans l'envoi de message (en rendant les communications nécessairement synchrones).

Le « Copy-on-Write » (CoW) est une fonctionnalité qui permet de partager des pages entre deux processus (par exemple lors d'un fork(2) ou d'un envoi de message sous Mach) sans pour autant les copier physiquement (on parle de copie logique). C'est seulement lors de la première écriture que la page est physiquement dupliquée. Ceci permet d'améliorer les performances (on évite souvent des copies) et d'économiser la mémoire.

L'originalité de la gestion de la mémoire du Hurd sur L4 est que les tâches sont auto-paginées, c'est à dire que ce sont elles-mêmes qui gèrent leur mémoire. Elles se voient attribuées un quantum initial de mémoire physique (renégociable par la suite) qu'elles peuvent gérer comme bon leur semble, ce qui permet aux applications ayant des besoins spécifiques comme les SGDB ou les applications multimédia de gagner beaucoup en performances. Les applications POSIX qui n'exploitent pas ce mécanisme utiliseront `libhurd-mm', ce qui rend le port transparent.

Enfin, vous pouvez télécharger la version K9 des CDs de Debian GNU/Hurd sur les miroirs suivants :

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

[+] La montre qui fait tout mais ne donne pas l'heure

Posté par Brice Arnould ( un_brice ) (page perso, ) le 19/05/2005 à 07:14. (lien). Évalué à -5.

Le pilote IDE qui se charge de votre disque secondaire a planté ? Pas grave, il suffit de le relancer dans la plupart des cas.
Enfin, ça c'est pour dans quelques mois. Quand Hurd supporteras l'IDE.
Question de priorité je suppose -_^.

Au passage, vous avez déjà réussi à faire planter le pilote IDE vous ?

--
Respect à RMS.

Avancement futur?

Posté par arnaudus () le 19/05/2005 à 07:33. (lien). Évalué à 5.

Pensez-vous qu'il est possible d'avoir une sorte de "planning" prévisionnel de l'avancée de Hurd? Par exemple, à quand les premiers hurds fonctionnels pour la vie de tous les jours sur un PC "compatible"? A quand une "MandrakeHurd"? Quand est-ce que Hurd fonctionnera sur mon portable, avec support du winmodem et de l'ACPI? Parce que pour l'instant, Hurd c'est bien, c'est rigolo, on peut faire des blagues dessus, mais les dev doivent bien avoir l'ambition de faire marcher ce truc un jour, non?

Question bète

Posté par Nicolas Boulay () le 19/05/2005 à 08:03. (lien). Évalué à 8.

Est-ce que la VM arrive à gérer les pages de tailles différentes ?

A prioiris, hurd file un max de mémoire au processus et leur réclame ensuite si d'autre processus en ont besoin. J'image qu'il serait possible de filer de suite 3 pages de 4Mo par processus (à redeécouper ensuite) (1RO, 1RW, 1 Execute)

Debian Gnu tout court?

Posté par Dalton joe (page perso, ) le 19/05/2005 à 10:08. (lien). Évalué à 3.

A quand le Hurd en option dans l'installeur de Debian?
Avec le choix Hurd et ou Linux?

Donc, Debian GNU.

screenshot

Posté par Étienne Bersac (Jabber id, page perso, ) le 19/05/2005 à 14:15. (lien). Évalué à 1.

Comment faire une capture d'écran ??? J'ai pas trouvé de import etc.

Comment installer les bout de gnome qui marche partiellement ?

Et sinon, j'ai un GNU OS 0.3 qui traine sur une bonne bécane (à coté d'une ubuntu breezy et d'une kubuntu breezy), mais j'ai l'impression de ne pouvoir qu'attendre et regarder : je suis incompétent.

Que faire ?

Merci pour toute les réponses.

--
E Ultreïa !

Hurd a un gros défaut congénital

Posté par Ontologia (page perso, ) le 26/05/2005 à 23:28. (lien). Évalué à 0.

Je vais me faire moinsser mais tant pis...

Je pense que Hurd est un OS conceptuellement très interessant sur plein de points, notamment la fin du noyau monolithique qui permet de modulariser a peu près tout et n'importe quoi.

La gestion des droits d'utilisateurs par exemple est très interessante, en ce qu'elle permet de se dépatouiller de n'importe quel situation en permettant de changer n'importes quels droits d'un processus.

Je ne liste pas les avancées conceptuels de Hurd, vous les connaissez mieux que moi.


Néanmoins, et pour rejoindre le titre provoquant que j'ai choisi, je pense AMHA que le Hurd a pour gros défaut d'être écrit en C.

Le C était un langage vraiment génial pour l'époque et l'est encore aujourd'hui. Mais son approche trop bas niveau, la nécessité de gérer les pointeurs, bref de tout faire à la main, implique que tous projet d'une certaine envergure atteint très vite ses limites et que l'on tombe très vite sur des bugs classique, stupide de surcroit.

Windows en est un bon exemple, et l'étude de ses sources (celle de Windows 2000 qui circulèrent sur le net) achève la preuve (ie. On se trouve devant un code très bien écrit, très bien commenté, où l'on se rend compte que c'est la complexité intrinsèque du projet qui est le problème majeur)

Je crois que les recherches récentes sur les compilateurs, et en particulier
http://smarteiffel.loria.fr/(...)
http://www.loria.fr/~zendra/publications/oopsla97.ps(...)

et surtout http://fr.wikipedia.org/wiki/Lisaac(...) (qui intègre des fonctionnalités étendues de programmation système) permettent maintenant de concevoir des systèmes d'exploitation objet écrit dans un langage de haut niveau, avec de très bonne performances.

L'absence de pointeurs dans ces langages, leurs librairies évoluées (collections, tables de hashages, types chaîne évolué, etc...), le multi héritage, etc... permettent de faciliter le développement et la maintenance.

Bref, Hurd bien que très intéressant et plus moderne que les OS installés est déjà dépassé.

Revenir en haut de page