这些东西有些比较常用,有些仅知道个名称,但无论是熟悉还是陌生的,要比较精确地解释这些东西,是有一定的难度,可这些东西对前端开发非常重要,还是需要有明确的概念。

PS:内容点到即止,不然一个东西一篇文章都写不完。

整体认识

在学习方法上,对于互有联系的东西,有一个整体的印象,比起一个个琐碎的认识更为重要,所以标题上的概念,我更喜欢从整体上去认识。

PS:Chrome浏览器和Node的组件构成

从上图可以看出,Node的结构与Chrome非常相似,Node选择JavaScript为实现语言,V8为执行引擎,利用libuv实现基于事件驱动的异步架构。

名词解析

Chrome

一款网页浏览器。

V8

V8(C++开发)是JavaScript的执行引擎,它将JavaScript编译成原生机器码(IA-32, x86-64, ARM, or MIPS CPUs),并且使用了如内联缓存等方法来提高性能,运行速度媲美二进制程序。

sandbox

沙盒(sandbox)是一个 C++ 库,它允许创建沙盒进程 (在非常严格的环境中执行的进程)。沙盒进程可以自由使用的资源仅仅是CPU周期和内存。例如,沙盒进程无法写入磁盘或显示自己的窗口。

PS:https://chromium.googlesource.com/chromium/src/+/master/docs/design/sandbox_faq.md

Node

一个基于 Chrome V8 引擎的 JavaScript 运行环境。

Node是一个运行环境,最需要认识到的是这一点。有人可能会误以为Node是一个前端工程的构建工具,这是不对的,它仅仅是Node的工具类应用,也有人认为Node是一个Web服务器,虽然创建者最初的意图确实是做这个,但随着时间发展,它就不仅仅如此而已,更有人认为Node是一个命令行工具,但显然是一个包含关系,而不等于。

libuv

一个专注于异步 I / O 的跨平台支持库。

npm

npm是帮助Node完成第三方模块的发布、安装和依赖的工具。

npm之于Node,相当于gem之于Ruby,pear之于PHP,Maven之于Java。

参考文献

1、《深入浅出Node》by 田永强

2、http://nodejs.cn/

3、http://libuv.org/

node、npm、chrome、v8、sandbox是什么?的更多相关文章

  1. Node.js和Chrome V8 引擎了解

    说起Node就不得不先介绍一个Chrome V8 引擎. 随着Web相关技术的发展,JavaScript所要承担的工作也越来越多,早就超越了“表单验证”的范畴,这就更需要快速的解析和执行JavaScr ...

  2. [NodeJS] Node.js 与 V8 的故事

    要说Node.js的历史,就不得不说说V8历史.在此之前我们先一句话描述一下什么是Node.js:Node.js是一个基于Google Chrome V8 Javascript引擎之上的平台,用以创建 ...

  3. 浅谈Chrome V8引擎中的垃圾回收机制

    垃圾回收器 JavaScript的垃圾回收器 JavaScript使用垃圾回收机制来自动管理内存.垃圾回收是一把双刃剑,其好处是可以大幅简化程序的内存管理代码,降低程序员的负担,减少因 长时间运转而带 ...

  4. Chrome V8系列--浅析Chrome V8引擎中的垃圾回收机制和内存泄露优化策略

    V8 实现了准确式 GC,GC 算法采用了分代式垃圾回收机制.因此,V8 将内存(堆)分为新生代和老生代两部分. 一.前言 V8的垃圾回收机制:JavaScript使用垃圾回收机制来自动管理内存.垃圾 ...

  5. linux 卸载安装node npm

    1. 卸载node npm (1) 先卸载 npm: sudo npm uninstall npm -g (2) 然后卸载 Node.js. (2.1) 如果是 Ubuntu 系统并使用 apt-ge ...

  6. 卸载安装node npm (Mac linux )

    1. 卸载node npm (1) 先卸载 npm: sudo npm uninstall npm -g (2) 然后卸载 Node.js. (2.1) 如果是 Ubuntu 系统并使用 apt-ge ...

  7. node+npm安裝配置

    控制臺輸入node 根據提示安裝   sudo apt-get install -g npm配置淘寶源 npm config set registry https://registry.npm.tao ...

  8. Mac 安装node npm cnpm vue 以及卸载 node 和 npm 的方法 清空npm缓存的方法

    S01 安装node(内含npm) 首先,到官网下载长期支持版,截止目前,最新的长期支持版本号是10.16.3 https://nodejs.org/zh-cn/download/ 下载完毕后,安装该 ...

  9. Vue 基于node npm & vue-cli & element UI创建vue单页应用

    基于node npm & vue-cli & element UI创建vue单页应用 开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https ...

  10. Chrome V8 引擎源码剖析

    Chrome V8 引擎源码剖析 V8 https://github.com/v8/v8 array & sort https://github.com/v8/v8/search?l=Java ...

随机推荐

  1. 整合多个maven工程时Spring配置加载JDBC问题

    问题叙述: 两个工程都通过JDBC访问mysql数据库,各自运行OK, 但合并成一个maven工程后,发现前一个工程访问数据库异常,貌似拿不到自己的DAO. 解决办法: 发现这两个工程的xml配置中, ...

  2. UILabel(label控件)的详细使用及特殊效果

    转自:http://blog.sina.com.cn/s/blog_af73e7a70101ahlm.html UILabel *label = [[UILabelalloc] initWithFra ...

  3. 使用 Spring 提供的 restTemplate 完成 Http 服务消费

    RestTemplate 介绍 RestTemplate 是 Spring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种便捷访问远程 Http 服务的方法,能够大大提高 ...

  4. 编译安装nginx时配置开机自启

    详细编译安装nginx请参考[Nginx目录结构与配置文件详解]以及[Nginx安装部署],在这里就进行简单安装 安装Nginx 环境介绍 操作系统: [root@localhost ~]# cat ...

  5. HDU-3577-------Fast Arrrangement

    Chinese always have the railway tickets problem because of its' huge amount of passangers and statio ...

  6. php 温故而知新 好久不用 又得继续学习下

    1.php注释:/* */.//.#等三种方式2.echo:向浏览器输出字符串,echo其实是一个函数:返回值:无3.print:向浏览器输出字符串,它也是一个函数:返回值:整型.           ...

  7. 【Seleniuem】selenium.common.exceptions.InvalidSelectorException

    selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illega ...

  8. 通过EF操作Sqlite时遇到的问题及解决方法

    1.使用Guid作为字段类型时,能存,能查,但是作为查询条件时查询不到数据 解决方法:连接字符串加上;binaryguid=False

  9. 垂直方向margin重叠原因与解决方法

    参考博客:https://blog.csdn.net/weixin_33743661/article/details/88755435

  10. linux指令-date

    1.在linux中要显示日期,则可以直接输入指令date 2.如果想以这样2016/12/26的方式输出呢,那就是,Y是年份,m是月份,d是日 date +%Y/%m/%d 3.如果要显示时间,则da ...