

Github GitHub - plctlab/v8-internals: 面向编译器开发人员的V8内部实现文档
source link: https://github.com/plctlab/v8-internals
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

深入V8引擎
面向想要成为 Google V8 开发人员的MOOC。
V8 是 Google Chrome 浏览器和微软 Edge 浏览器的 JavaScript 执行引擎。本课程介绍如何成为 V8 的开发人员。注意这是硬核技术培训,每次视频请预留10个小时的上机编程练习时间。
NOTICE: 目前处于连载状态,预计连续更新到2020年底。 可以关注B站 @lazypaser 接收课程更新的推送。
课件(Slides)、开源电子书、配套代码及相关资料存放在本仓库:
https://github.com/lazyparser/v8-internals
我们从2020年4月开始逐步对V8官方博客进行评论和内容有效性的梳理,请参考 v8-blog-comments.md, 同时我们非常欢迎提交 Pull Request 分享你的文章或评论。
课程视频和幻灯片列表
Video Slides Author Title av83746754 01.pdf 吴伟 第01课:上手开始看 V8 Ignition 解释器的字节码(Bytecodes) av87260107 02.pdf 邱吉 第02课:从零开始分析V8的构建系统构成 av89142028 03.pdf 邱吉 第03课:V8的构建系统构成Part2 BV1N7411N73m 04.pdf 邱吉 第04课:V8的构建系统构成Part3 TBD TBD 吴伟 第05课:TBD,Ignition Bytecodes 解析 TBD TBD 吴伟 第06课:TBD,torque TBD TBD 吴伟 第07课:TBD,torque TBD TBD 邱吉 第08课:TBD淦!移植个V8不可能这么难!
Video Slides Author Title BV1hp4y1t7Mx
20210416 - 邱吉 - Security Strategies in V8
BV1hp4y1t7Mx 02.pdf 20210430 - 陆亚涵 - LinearScanRegisterAllocation 算法分析
20210514 - 邱吉 - V8后端代码生成:常量池及其实现
V8 相关的技术分享和资源
v8中LinearScanRegisterAllocation的伪代码和源码分析-陆亚涵-20210430-PLCT实验室
WebAssembly Compilation Pipeline - 姜宇辰 - 20210127 - PLCT实验室
https://www.bilibili.com/video/BV19o4y1R71F
How to debug V8 学习报告 - 梁斌 - 20210113 - PLCT实验室
https://www.bilibili.com/video/BV1jU4y147eD
王建中 - 在 V8 中添加一个 RISC-V B 扩展指令 - 20201216 - PLCT实验室
https://www.bilibili.com/video/BV1Gt4y1k7Bx
陆亚涵:V8中的指针压缩及其实现源码分析【第12届开源开发工具大会(OSDT2020)】
https://www.bilibili.com/video/BV1oK4y1572D
陶立强:V8寄存器分配源码分析——以添加RISCV-C扩展为背景【第12届开源开发工具大会(OSDT2020)】
https://www.bilibili.com/video/BV19X4y1M7Ax
RISC-V V8 移植调试记录:关于一次奇怪的 int32 的值 - 陆亚涵 - 20200801 - PLCT实验室
https://www.bilibili.com/video/BV1SZ4y1T7Rw
V8 for RISC-V 开发小结 - 陈家友 - 20200729 - PLCT实验室
https://www.bilibili.com/video/BV1cD4y1U74R/
RISC-V <3 V8 w/ Keynote: The Roadmap of V8 RISC-V Porting - Peng Wu |OSDT Meetup
https://www.bilibili.com/video/BV1da4y1a7JD
V8中的浮点转整型 - 陆亚涵 - 20200624 - PLCT实验室
https://www.bilibili.com/video/BV1yA411v7m2
V8:几个Torque语句分析 - 杨文章 - 20200610 - PLCT实验室
https://www.bilibili.com/video/BV1sZ4y1W7YQ
V8引擎TurboFan后端代码浅析 - 邱吉 - V8技术讨论会 - OSDT社区 - 20200607
https://www.bilibili.com/video/BV1oZ4y1n7E8
V8中的Snapshot机制分析 - 杨文章 - 20200606 - PLCT实验室
https://www.bilibili.com/video/BV1UV411r7Nq
杨文章-Dive-Into-V8-Torque-PLCT实验室-20200527
https://www.bilibili.com/video/BV1JK411s7Pv
邹小芳-V8移植简介-PLCT实验室-20200527
https://www.bilibili.com/video/BV11K4y1t76G
V8单元测试框架 - 陆亚涵 - 20200513 - PLCT实验室
https://www.bilibili.com/video/BV1pp4y1Q71M
深入V8引擎-技术分享:V8 Assembler 学习小结 - 陈家友
https://www.bilibili.com/video/BV1cc411h747
PLCT实验室分享 - 深入V8引擎:V8 Call Interface Descriptors - 邹小芳
https://www.bilibili.com/video/BV1TE411N7k7
PLCT实验室技术分享-V8解释器字节码代码浅析 - 张江涛
https://www.bilibili.com/video/BV1q741137GB
Sigurd Scheider- Inside V8- The choreography of Ignition and TurboFan
https://www.bilibili.com/video/BV1uJ411H7ok
V8- an open source JavaScript engine
https://www.bilibili.com/video/BV15J411J7sr
BlinkOn 6 Day 1 Talk 2- Ignition - an interpreter for V8
https://www.bilibili.com/video/BV15J411J7Gf
What’s new in JavaScript (Google I-O ’19)[00]
https://www.bilibili.com/video/BV1RJ411J7ZD
Embedding V8 in the real world by Stanimira Vlaeva - JSConf EU 2019
https://www.bilibili.com/video/BV1RJ411J7Wf
Franziska Hinkelmann- JavaScript engines - how do they even? - JSConf EU
https://www.bilibili.com/video/BV1oJ411J7kD
Franziska Hinkelmann - Performance Profiling for V8 - Script17
https://www.bilibili.com/video/BV1RJ411J7Y6
Franziska Hinkelmann- A Trip to the Zoo- SpiderMonkey, SquirrelFish, Nashorn, V8
https://www.bilibili.com/video/BV1oJ411J7z8
Mathias Bynens - V8 internals for JavaScript developers
https://www.bilibili.com/video/BV1oJ411J7j1
JavaScript Engines- The Good Parts™ - Mathias Bynens & Benedikt Meurer - JSConf
https://www.bilibili.com/video/BV1oJ411J72X
Orinoco: The new V8 Garbage Collector Peter Marshall
https://www.bilibili.com/video/BV1TJ411n7pi
Understanding Why The New V8 Is So Fast, One Demo At A Time
https://www.bilibili.com/video/BV1TJ411n78Y
MNUG 2017.03.23 TurboFan: A new code generation architecture for V8
https://www.bilibili.com/video/BV137411e7TQ
关于本项目的一些脚注
这个项目的目标是为了写一本书,能够让读者对于 V8 引擎的内部架构和源代码有所了解。 如果你翻阅过本仓库的提交历史,就会注意到这个仓库的首次公开commit可以追溯到2015年。 那个时候我正在念编译技术方向的博士(后来退学了),熟悉了 Spidermonkey 并进行了一些不成功的实验,对 JavaScript 执行引擎有着很高的兴趣。 但是写一个 V8 这种体量的分析是非常苦难的,我只是刚开始就咕咕咕了好几年。以上是第一阶段。
第二阶段则到了2020年,我成立了PLCT实验室,并跟邱吉一起启动了 V8 for RISC-V 的项目。 我们当时谁都没有看过(仔细研究过)V8的源代码,所以很自然的,第一步就是组织小组进行自我学习。 在这个过程中,我们自然的进行组内技术分享,并发送到了B站进行公开。这个过程启发我重新启动了本项目,并期待 V8 小队可以团体写一本书。 在这个过程中我们继续输出了一些技术分享视频、一些零散的文档,之后就奔命于追赶 upstream 的进度,跟FutureWei一起将 RISC-V 后端送入 V8 仓库。 于是又咕了一年。
第三阶段是2021年4月份开始。这个时候写书的权责已经完全落于邱吉的肩上,而此时《V8 Internals》这本书的出版印刷已经注定要跳票半年。 「来不及了,先出门课程吧!」 在2021年春节之后的会议上我这么对邱主管提议到。 于是就有了目前正在B站连载的《淦!移植个V8不可能这么难!》系列讨论班(笑)。 计划是保持最低两周一次技术报告的输出,让我们在追赶 upstream 的同时,能确保自己在写书和公开课这个任务上持续有产出。
由于已经不再是个人项目,本项目于2021年5月12日从 gh/lazyparser/ 移动到了 gh/plctlab 账号下,正式成为PLCT实验室的团队项目。邱吉主管是本项目的 owner。 感谢杨文章同学、陶立强同学即使在实习结束之后依然积极贡献本书的写作。我会敦促新的owner努力赶上进度的 :-P
@lazyparser on 2021-05-12 22:40 CST
Recommend
-
43
【51CTO.com快译】Node.js用于基于事件驱动的非阻塞输入/输出模型和单线程异步编程,构建快速、高度可扩展的网络应用程序。 Web应用程...
-
45
尽管许多用户可以从命令行轻松地使用Git,但有多种GUI客户端可以大大加快你的工作流程,尤其是在你不熟悉平台的情况下。 如果你正在寻...
-
52
好记性不如烂笔头,记录下来的才是永恒!这里是JavaQ大本营,诚邀关注。本文已收录入GitHub:https://github.com/wind7rui/JavaHub。 聊聊Oracle 2013年“去IOE”这个话题在IT圈火热起来,它是由阿里巴...
-
16
什么是在线代码编辑器?在线代码编辑器是驻留在远程服务器上的工具,可以通过浏览器访问。一些在线代码编辑器具有与文本编辑器...
-
7
-
9
代码安全指南 面向开发人员梳理的代码安全指南,旨在梳理API层面的风险点并提供详实可行的安全编码方案。 基于DevSecOps理念,我们希望用开发者更易懂的方式阐述安全编码方案,引导从源头规避漏洞。 规范 最后修订日期
-
9
面向 JavaScript 开发人员的 5 大物联网库 作者:devpoint最近元宇宙的概念火遍互联网,自 Facebook 改名 Meta 以来,国内外越来越多的企业...
-
8
作为程序员,编写代码也需要大量的技巧。好的代码可以让人耳目一新、通俗易懂、舒适自然,同时又充满成就感。因此,整理了...
-
10
Ballerina 面向全栈开发人员:创建后端 API 的指南作者:Imesha SudasinghaAlexGuo
-
7
新浪VR > 正文页 据报道:Meta将仅面向开发人员发布其首款AR眼镜...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK