Mayank Tripathi.
Перед погружением глубоко в ядре Chrome’s V8, сначала давайте сделаем наши основы вниз. Все наши системы состоят из микропроцессоров, то, что сидит внутри вашего компьютера прямо сейчас и позволяет вам прочитать это.
Микропроцессоры являются крошечными машинами, которые работают с электрическими сигналами и в конечном итоге выполняют работу. Мы даем микропроцессоры инструкции. Инструкции находятся на языке, что микропроцессоры могут интерпретировать. Различные микропроцессоры говорят на разных языках. Некоторые из наиболее распространенных являются IA-32, X86-64, MIPS и ARM. Эти языки напрямую взаимодействуют с аппаратным обеспечением, поэтому код, написанный в них, называется машинным кодом. Код, который мы пишем на наших компьютерах, преобразуются или скомпилированы в машинный код.
Вот как выглядит машинный код:
Он состоит из инструкций, которые выполняются на конкретной памяти в вашей системе на низком уровне. Вы должны чувствовать себя повезло, что не нужно писать все это, чтобы запустить вашу программу!
Высокоуровневые языки абстрагируются с машиностроения. На уровне абстракции ниже вы можете увидеть, насколько далеко JavaScript абстрагируется с уровня машины. C/C ++ относительно гораздо ближе к оборудованию и, следовательно, намного быстрее, чем другие языки высокого уровня.
Теперь вернемся к двигателю V8: V8 – мощный двигатель JavaScript с открытым исходным кодом, предоставленный Google. Так что на самом деле это JavaScript Engine? Это программа, которая преобразует код JavaScript на нижний уровень или машинный код, который может понять микропроцессоры.
Есть разные двигатели JavaScript, включая Носорог , JavaScriptCore и Spidermonkey. . Эти двигатели следуют стандартам Ecmascript. Ecmascript определяет стандарт для языка сценариев. JavaScript основан на стандартах Ecmascript. Эти стандарты определяют, как язык должен работать, а какие он должен иметь. Вы можете узнать больше о Ecmascript здесь Отказ
Двигатель Chrome V8:
- Двигатель V8 написан на C ++ и используется в Chrome и Nodejs.
- Он реализует ECMAScript, как указано в ECMA-262.
- Двигатель V8 может запустить автономный вариант, мы можем встроить его с помощью собственной программы C ++.
Давайте понять последний момент немного лучше. V8 может запустить автономный вариант и в то же время мы можем добавить нашу собственную реализацию функций в C ++, чтобы добавить новые функции в JavaScript.
Так например: Печать («Hello World») не является действительным утверждением в Node.js. Это даст ошибку, если мы его скомпилируем. Но мы можем добавить нашу собственную реализацию функции печати в C ++ в верхней части V8, который является открытым исходным кодом в Github Таким образом, создание функции печати работают в результате работы. Это позволяет JavaScript понять больше, чем то, что стандарт ECMAScript указывает, что JavaScript должен понимать.
Это мощная функция, поскольку C ++ имеет больше функций в качестве языка программирования по сравнению с JavaScript, так как он гораздо ближе к аппаратному обеспечению, как дело с файлами и папками на жестком диске.
Позволяя нам написать код в C ++ и сделать его доступным для JavaScript, поэтому мы можем добавить больше функций для JavaScript.
Node.js сам по себе представляет собой реализацию C ++ в двигателе V8, позволяющим программирование на стороне серверов и сетевых приложений.
Давайте теперь посмотрим на какой-то код открытого исходного кода внутри двигателя. Для этого вам нужно пойти на V8/Образцы/Shell.cc папка.
Здесь вы можете увидеть реализацию различных функций, таких как Печать и Читать, которые вначале не доступны в Node.js.
Ниже вы можете увидеть реализацию Печать функция. Всякий раз, когда Печать () Функция вызывается в Node.js, она создаст обратный вызов, а функция будет выполнена.
Точно так же мы можем добавить нашу собственную реализацию различных новых функций в C ++ внутри V8, позволяя его понять Node.js.
Это, безусловно, слишком много, чтобы схватить для простого заявления, и это количество работы V8 двигателя V8 делает под капотом.
Теперь у вас должно быть четкое понимание того, как работает Node.js, и что на самом деле является двигателем Chrome V8.
Спасибо за прочтение этой статьи. Давайте продолжим Twitter , LinkedIn , Github С и Facebook Отказ
Оригинал: “https://www.freecodecamp.org/news/understanding-the-core-of-nodejs-the-powerful-chrome-v8-engine-79e7eb8af964/”