进程与线程(简记)
一切都运行在内存里
开机
- 操作系统在C盘里(macOS的在根目录下多个目录里)
- 当你按下开机键,主板通电,开始读取固件
- 固件就是固定在主板上的存储设备,里面有开机程序
- 开机程序会将文件里的
操作系统加载到内存中运行
操作系统(以 Linux 为例)
- 首先加载操作系统内核(kernel)
- 然后启动初始化进程,编号为1,每个进程都有编号
- 启动系统服务:文件、安全、联网
- 等待用户登录:输入密码登录/ssh登录
- 登录后,运行 shell,用户就可以和操作系统对话了
- bash 是一种 shell,图形化界面可认为是一种 shell
打开浏览器
Chrome.exe
- 你双击 Chrome 图标,就会运行Chrome.exe 文件
- 开启 Chrome 进程,作为主进程
- 主进程会开启一些辅助进程,如网络服务、GPU 加速
- 你每新建一个网页,就有可能会开启一个子进程
浏览器的功能
- 发起请求,下载 HTML,解析 HTML,下载 CSS,解析 CSS,渲染界面,下载JS,解析 JS,执行 JS 等
- 功能模块:用户界面、渲染引擎、JS引擎、存储等
- 上面功能模块一般各处于不同的线程(比进程更小)
- 如果进程是车间,那么线程就是车间的流水线
- JS和渲染引擎是不同的线程,
JS 如果要修改 HTML 和CSS 需要跨线程通信