Mozilla et Samsung ensemble sur Servo, un nouveau moteur de rendu
Pour remplacer Gecko ? Pas si sûr
Le 04 avril 2013 à 15h40
6 min
Logiciel
Logiciel
Journée chargée décidément dans le monde des navigateurs : après l’annonce de Google sur Blink et la compatibilité SPDY dans Internet Explorer 11, Mozilla annonce un partenariat avec Samsung pour créer un nouveau moteur de rendu. Nommé Servo, il s’agit pour l’instant d’une expérimentation qui n’aura peut-être pas, à terme, l’objectif de remplacer l’actuel Gecko.
Un nouveau moteur développé à l'aide d'un langage créé pour l'occasion
Jusqu’à récemment, le découpage du paysage des navigateurs penchait fortement dans la direction du moteur de rendu Webkit : Apple, Google et plus récemment Opera en étaient quelques exemples. Ce qui laissait, dans les alternatives principales, le moteur Trident d’Internet Explorer, toujours largement majoritaire, et Gecko de Mozilla. Mais alors que Google et Opera ont annoncé voguer vers Blink, Mozilla prépare peut-être sa prochaine génération de moteur de rendu.
À travers un partenariat avec Samsung, Mozilla annonce le projet Servo. Il s’agit d’un nouveau moteur web entièrement écrit avec un langage spécifiquement créé dans ce but. Nommé Rust, il s’écarte du C++, dont Mozilla juge qu’il ne correspond pas aux besoins recherchés. Il y a donc une ressemblance avec la famille C mais il « diffère de manière significative dans ses détails syntaxiques et sémantiques ». Langage décrit comme « safe » par défaut, Rust vient de passer en version 0.6.
Durant l’année qui vient, Mozilla indique que la première version majeure de Rust sera terminée. Durant ce laps de temps, le code sera nettoyé, la documentation renforcée, des outils seront mis en place et les performances seront améliorées. Durant cette phase de finition, les ressources affectées glisseront doucement vers le moteur de rendu Servo.
Diviser pour mieux régner
Comme Webkit, Servo fait un usage intensif des sous-modules de Git. La fondation tient en effet à ce que chaque composant de Servo puisse être manipulé et trafiqué indépendamment des autres. En outre, il est constitué de processus nommés « Tasks » capable de prendre en charge de manière spécialisée les différents calculs à effectuer en fonction des éléments de la page. Selon Mozilla, il serait ainsi particulièrement adapté aux montées en charge.
Cependant, plusieurs éléments seront communs avec Gecko. C’est le cas notamment du nouveau moteur graphique Azure, actuellement en développement, et dont certaines parties sont déjà présentes dans Firefox. Il permet une abstraction des différentes méthodes de rendu couramment utilisées en fonction des éléments, tels que Cairo, OpenGL et Skia. On ne parle ici d’ailleurs que de graphismes 2D. Selon Mozilla, il sera d’autant plus simple de passer de l’un à l’autre, en prenant en compte le système d’exploitation et la présence d’un GPU pris en charge ou non. Enfin, le moteur JavaScript SpiderMonkey reste le même.
Un projet de recherche au long cours
En dépit des apparences, aucun des deux projets n’est réellement nouveau. Comme l’explique le directeur technique de Mozilla, Brendan Eich, le langage Rust par exemple est en développement depuis plusieurs années. Ce qui change cependant est l’arrivée récente de Samsung dans l’équation. Le responsable explique ainsi que la participation active a déjà permis le fonctionnement du projet sur plateforme ARM, ainsi qu’une infrastructure pour faciliter la compilation pour Android. L’actuelle mouture en développement peut en outre être récupérée depuis son dépôt Github.
L’objectif du duo Rust/Servo est de préparer un nouveau moteur qui sera capable de prendre en compte les nouveaux aspects du parc informatique mondial, réunissant aussi bien les ordinateurs fixes et mobiles, les smartphones que les tablettes. Des architectures hétérogènes, une augmentation rapide des coeurs dans les processeurs et autres SoC, de nouveaux jeux d’instruction et ainsi de suite. Mais Servo veut surtout assurer la sécurité de l’utilisateur en évitant les nids-de-poule habituels des moteurs de rendu. D’où l’utilisation de Rust, conçu pour être plus sûr et mieux armé face au parallélisme des instructions.
Servo n'est pas censé être le remplaçant de Gecko, mais...
Plusieurs précisions sont cependant de rigueur. La plus importante est que Servo, en dépit de l’enthousiasme de Mozilla et de Samsung à son sujet, reste avant tout un projet de recherche. Il est non seulement dans un état expérimental, mais pourrait également le rester. La fondation a par ailleurs déjà précisé qu’il ne fallait pas considérer Servo comme la relève de Gecko. Ce dernier va rester en place, et les plans évolueront peut-être par la suite.
Quant à Samsung, son implication soulève des interrogations. Il est intéressant de noter que ce travail commun prend place dans un contexte de division au sein de la famille Webkit. Samsung, actuellement en tête des ventes de smartphones, est un acteur majeur du monde mobile et un participant actif à Webkit. Voir la firme coréenne travailler sur un tel projet pourrait signifier qu’elle souhaite s’émanciper ou tout du moins qu’elle cherche à explorer d’autres pistes, ce qui ne serait guère étonnant puisqu'elle s'est investie largement dans Tizen.
... pourquoi refuser de tels bénéfices ?
En outre, il est difficile de croire que Mozilla n’a pas déjà des projets concernant Servo. La capacité à prendre en charge les coeurs multiples dans les processus introduit en effet un bénéfice important : l’exécution parallèle des calculs aux éléments divers d’une page, tels que le HTML, les CSS, le JavaScript et ainsi de suite. Un avantage réservé en général à des calculs lourds et particuliers comme ceux de WebGL.
Concrètement, cela signifierait un moteur profitant pleinement de la puissance supplémentaire offerte par des processeurs et des puces évoluant à toute allure. Or, si l’on considère que le moteur de rendu Gecko est maintenant au sein d’un système d’exploitation basé avant tout sur les technologies du web, pourquoi Mozilla ne souhaiterait-il pas utiliser un composant capable de lui assurer une hausse des performances générale ?
Pour l’instant, Servo reste donc un projet et un vivier pour tester de nouvelles idées. Mozilla a cependant une idée bien précise sur la direction à lui donner, et il ne serait pas étonnant de voir l’éditeur en récolter les fruits d’ici quelques années.
Mozilla et Samsung ensemble sur Servo, un nouveau moteur de rendu
-
Un nouveau moteur développé à l'aide d'un langage créé pour l'occasion
Commentaires (29)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 04/04/2013 à 15h45
chaque composant de Servo puisse être manipulé et trafiqué indépendamment des autres
mode " /> ON
SERVO-
Élém. tiré du lat. servus « esclave », entrant dans la constr. de subst. appartenant au vocab. techn.; il introduit l’idée d’un asservissement, d’une dépendance entre divers mécanismes
Pas terrible le choix du nom " />
Le 04/04/2013 à 15h50
Le concurrent du Midori browser (Midori l’os " />) " />
Le 04/04/2013 à 15h51
Espérons qu’il soit rapide, sinon ce sera un Servo lent. " />
Je sors ====>[" />]
Le 04/04/2013 à 15h55
Et pendant ce temps, dans un petit village gaulois, Opera est passé à la version 12.15 " />
Le 04/04/2013 à 15h58
Encore une bonne nouvelle : Google intègre Opus à Chrome 27
Le 04/04/2013 à 20h44
Le 04/04/2013 à 20h54
Le 04/04/2013 à 23h43
Le 04/04/2013 à 23h57
Le 05/04/2013 à 07h12
Le 05/04/2013 à 09h03
le coup de rust ça sent le rant contre le stage-1 de gcc qui impose un compilo c++….. au moins rust a un stage-1 en C.
Le 05/04/2013 à 11h18
Le 05/04/2013 à 13h17
Le 04/04/2013 à 16h02
Le 04/04/2013 à 16h02
rien
Le 04/04/2013 à 16h08
Entre la news sur Blink et Servo, on remarque 2 tons différents, le 1er mettant presque en porte à faux son éditeur, le 2ème essayant de donner le plus de justification possible pour donner raison sur ce choix.
Depuis quand PCi est devenu anti-Google? " />
Le 04/04/2013 à 16h11
Le 04/04/2013 à 16h17
Le 04/04/2013 à 16h21
Le 04/04/2013 à 16h23
Le 04/04/2013 à 16h24
Le 04/04/2013 à 17h05
Il permet une abstraction des différentes méthodes de rendu couramment utilisées en fonction des éléments, tels que Cairo, OpenGL et Skia.
Cairo, OpenGL, ok, mais qu’est Skia ?
Le 04/04/2013 à 17h07
Le 04/04/2013 à 17h07
Le 04/04/2013 à 18h31
Le 04/04/2013 à 19h13
Le 04/04/2013 à 20h09
Le 04/04/2013 à 20h25
C’est pas pire que le langage “go” " />
Le 04/04/2013 à 20h30