2021年1月

今天安装了 Ubuntu 虚拟机用来做 node.js 开发,在选择网络模式时我选择了 NAT 模式,因为这样可以在主机处于不同网络环境下使虚拟机都有着同一个 IP 地址,方便管理。

但是在此时中发现,虚拟机可以正常访问主机及外网,但是主机无法通过分配的 NAT 地址来 ssh 访问虚拟机。查询后发现这是正常现象。可以通过设置端口转发来将虚拟机端口映射到主机端口来实现对虚拟机的访问。

阅读全文



V8 JavaScript Engine

V8 是 chrome 浏览器的 JavaScript Engine 名称,它是用来在 chrome 中获取和执行 JavaScript 代码的工具。V8 提供了一个 JavaScript 的运行环境,DOM 及其他 web API 是由 browser 提供的。

JavaScript Engine 是独立于其所寄生的浏览器的,这一特性才使 node.js 得以诞生。node.js 选择了 V8 Engine 且随着 node.js 的不断成长,大量服务端通过 JavaScript 编写的程序使用 v8 Engine。

基于 V8 同样可以创造桌面应用,例如 Electron 项目。

不同的浏览器有着各自的 Engine:

  • Firefox has SpiderMonkey
  • Safari has JavaScriptCore (also called Nitro)
  • Edge was originally based on Chakra but has more recently been rebuilt using Chromium and the V8 engine.

所有的 Engine 都遵守 ECMAScript 标准。

阅读全文


Node.js 是一个开源跨平台的 JavaScript 运行环境,它是时下最流行的工具,能够应用于几乎所有的项目。Node.js 运行 V8 JavaScript engine。它是 chrome 的核心,这让 Node.js 可以脱离浏览器运行 JavaScript 代码。

一个 Node.js app 运行在一个线程中,不会给每个 request 建立一个进程。Node.js 在其标准库中提供了一个 asynchronous I/O primitives 异步 IO 原生语法库来防止阻塞,同时 Node.js 中的库使用一种 non-blocking paradigms 无阻塞范式,将阻塞作为一种 exception 来处理。

当 Node.js 执行 IO 动作,例如读取文件,访问数据库等,不同于等待进程,占用 CPU 资源,Node.js 会在收到 request 响应后再去处理后续操作。这将使 Node.js 可以在一个 server 上同时处理上千条链接而不会引入大量的进程而导致 bug 出现。

Node.js 的另一大优势是使用 JavaScript 的前端开发者可以同时编写 server 端的代码而不用学习新的语言。

最新的 ECMAScript 标准可以在 Node.js 中使用,你不需要等待用户去更新浏览器。通过使用不同版本的 Node.js 来切换不同的 ECMAScript 标准。

阅读全文


随着升级到 macOS Big Sur 后,虚拟机 parallels desktop 也更新到了 16 版本。我当然是继续安装破解版啦。

但是安装好后,启动虚拟机会有一个报错:Network Initialization Failed,启动后会发现虚拟机无法联网,网络设置中无法正常在各种模式中切换。

在寻找解决方案期间,了解到了这可能是由于破解的原因,正版用户没有这个问题。网上有人提供了一个方法,执行一条命令就启动虚拟机就可以正常联网了。但是会导致虚拟机无法访问主机的共享目录及无法访问 USB 设备。而且一旦重启 parallels desktop 后又回恢复之前的状态,我也就没有去做。

这两天看到网上终于有人找到的解决方法,测试后的确可用,所以介绍给大家参考。

阅读全文