Le moteur JavaScript V8
Le moteur JavaScript V8
-
Objectifs
- Connaitre le rôle de Chrome V8 dans Node.js
- Comprendre le rôle que Chrome V8 peut jouer dans les architectures sans serveur
-
Présentation
- V8 est un moteur JavaScript open-source développé par le projet Chromium pour les navigateurs Web Google Chrome et Chromium.
- V8 est le nom du moteur JavaScript qui alimente Google Chrome. C’est la chose qui prend notre JavaScript et l’exécute tout en naviguant avec Chrome.
- V8 est le moteur JavaScript et WebAssembly hautes performances et open source de Google écrit en C++. Il est utilisé dans Chrome et dans Node.js, entre autres.
- Le créateur du projet est Lars Bak. La première version du moteur V8 a été publiée en même temps que la première version de Chrome, le 2 septembre 2008.
- Il a également été utilisé dans Couchbase, MongoDB et Node.js côté serveur.
- Le moteur JavaScript V8 est libre et open source. En plus d’être intégré dans les navigateurs Chromium et Google Chrome, il est aussi utilisé sur la plateforme node.js.
-
Autres moteurs JS
- D’autres navigateurs ont leur propre moteur JavaScript:
- Firefox a SpiderMonkey
- Safari a JavaScriptCore (également appelé Nitro)
- Edge était à l’origine basé sur Chakra mais a été plus récemment reconstruit en utilisant Chromium et le moteur V8.
- et bien d’autres existent également.
- Tous ces moteurs implémentent la norme ECMA ES-262 , également appelée ECMAScript, la norme utilisée par JavaScript.
-
Qu’est-ce que le Javascript Moteur?
- Les moteurs JS sont des programmes convertissant du code JavaScript en code de bas niveau ou en code machine. Ils suivent les normes ECMAScript qui définissent les fonctionnalités et le processus d’exécution.
- La même chose que V8 était un remarquable pièce de machinerie, le moteur V8 JS s’est trouvé une niche. Très probablement, vous avez déjà « rencontré » Vee-huit en face à face. Dans le cadre de Chrome, ce moteur exécute le JavaScript lorsque vous visitez une page Web.
- En d’autres termes, V8 fournit l’environnement d’exécution pour JS. Et les API de la plateforme Web (Interfaces de programmation d’application) sont déjà fournies par le navigateur.
- À l’exception des navigateurs, V8 est intégré à des technologies côté serveur, telles que Node.js, MongoDB et Couchbase.
- V8 est écrit en C ++ et peut fonctionner de manière autonome ou être intégré à l’application C ++.
-
Qu’est-ce que le sandboxing?
- Un « bac à sable » est un environnement pour exécuter des logiciels qui est isolé et partitionné des autres environnements, même ceux sur la même machine.
- Le sandboxing est une fonctionnalité clé de Chrome V8. Chaque processus est mis en bac à sable, ce qui garantit que les fonctions JavaScript s’exécutent séparément et que l’exécution d’un morceau de code n’affecte aucun autre morceau de code. (Contrairement à de nombreux produits d’entreprise de sandboxing, qui ouvrent et exécutent des fichiers exécutables dans des machines virtuelles isolées, le sandboxing V8 ne ralentit pas les performances.)
- La technique de la sandbox permet de créer un environnement de test isolé dans un système.
- Le sandboxing consiste essentiellement à protéger votre système d’exploitation contre les codes ou les logiciels malveillants (malware) et donc à le préserver.
- Le sandboxing n’est pas un concept récent, il est apparu en même temps que le premier système de PC. Dans les années 1970, les programmeurs utilisaient des sandbox pour effectuer des tests et des simulations. Ils voulaient ainsi vérifier si un code donné fonctionnait dans un environnement fermé.
-
Quelle est la relation entre Node.js et V8?
- NodeJS est essentiellement une application C ++ qui utilise le moteur V8 pour exécuter du code JavaScript. Le moteur V8 compile JavaScript directement dans le code machine avant de l’exécuter. Il existe plusieurs autres modules dans NodeJS pour exécuter différentes fonctions.
- V8 est le moteur Javascript à l’intérieur de node.js qui analyse et exécute votre Javascript. Le même moteur V8 est utilisé à l’intérieur de Chrome pour exécuter javascript dans le navigateur Chrome. Google a ouvert le moteur V8 et les constructeurs de node.js l’ont utilisé pour exécuter Javascript dans node.js.
- Node.js peut-il fonctionner sans V8?
- Non. Le binaire node.js actuel ne peut pas fonctionner sans V8. Il n’aurait pas de moteur Javascript et donc pas de capacité à exécuter du code qui le rendrait évidemment non fonctionnel. Node.js n’a pas été conçu pour fonctionner avec un autre moteur Javascript et, en fait, toutes les liaisons de code natives fournies avec node.js (comme le module fs ou le module net) reposent toutes sur l’interface V8 spécifique entre C ++ et Javascript.