Native Client : Google veut accélérer l'adoption de son ActiveX sécurisé

Brad Chen propose une méthode permettant de diffuser des applications sans se soucier de la plate-forme processeur cible.

Le greffon Native Client est un produit permettant d’exécuter du code compilé ‘classique’ à l’intérieur d’un navigateur web. Une sorte de remake des contrôles ActiveX, mâtiné d’une couche de sécurité.

Depuis sa sortie, les choses évoluent tout doucement : les logiciels utilisant la librairie Qt peuvent être compilés pour fonctionner au sein de Native Client, ce qui ouvre une nouvelle voie pour la diffusion d’applications natives au travers d’Internet, en particulier sur certains systèmes d’exploitation centrés sur la Toile, comme le futur Chrome OS.

Brad Chen, qui œuvre au sein de l’équipe de développement du projet Native Client, vient de poster un billet intéressant sur le blogue de Chromium. Il a tenté d’évaluer l’impact de Native Client sur les performances du code exécuté. L’isolation de ce code et son fonctionnement au sein d’un navigateur ont certes une incidence, mais finalement assez faible, puisqu’il fonctionne à 97 % de sa vitesse normale. Un bon point.

Aujourd’hui, Native Client est compatible avec de multiples navigateurs web, et ce, sous Windows, Mac OS X et Linux. Les plates-formes x86 32 bits, x86 64 bits et ARM sont supportées. Voilà qui peut devenir problématique: lors de la diffusion d’une application, comment s’assurer que celle-ci est bien compilée pour le processeur présent sur la machine de l’utilisateur?

Brad Chen apporte une réponse à ce problème: la plupart des compilateurs passent par plusieurs étapes afin de transformer un code source en instructions-machine. Ainsi, LLVM convertit le programme (écrit dans un des langages qu’il supporte) en code intermédiaire (qui n’est pas encore lié à une architecture processeur particulière), lequel sera ensuite compilé en instructions-machine (x86, ARM, etc.). La solution consiste donc à diffuser ces données intermédiaires, qui ne permettent pas d’accéder au code source du logiciel, puis de finir le travail de compilation directement au sein du navigateur. Astucieux.

Performant et portable, Native Client devient décidément de plus en plus séduisant.