一切运行在内存中
计算机开机过程
操作系统在C盘中,按下开机键,主板通电,开始读取固件,开机程序会将文件中的操作系统加载到内存中运行。
固件:就是固定在主板上的存储设备,里面有开机程序
操作系统(以Linux为例)
- 首先加载操作系统内核
- 然后启动初始化进程,编号为1,每个进程都有编号
- 启动系统服务:文件、安全、联网
- 等待用户登录:输入密码登录/ssh登录
- 登录后,运行shell,用户就可以和操作系统对话了
注:1. bash和图形化界面都是shell;2. 真正能控制计算机硬件(cpu、内存、显示器等)的只有操作系统内核kernel,shell只是架设在用户和内核之间的桥梁;3. shell的本质就是让用户能够更加高效、安全、低成本的使用Linux内核
打开Chrome浏览器的过程
- 双击chrome图标,运行chrome.exe文件
- 开始chrome进程,作为主进程
- 主进程会开启一些辅助进程,如网络服务、GPU加速等
- 每新建一个网页都有可能开启一个子进程
浏览器的功能
- 发起请求,下载HTML,解析HTML,下载CSS,解析CSS,渲染界面,下载JS,解析JS,执行JS等
- 功能模块:用户界面、渲染引擎、JS引擎、存储等(引擎是代码)
- 上面的功能模块一般各处于不同的线程(如果进程是车间,那么线程就是车间里的流水线)
注:1. 渲染就是将解析后的HTML和CSS合起来呈现到页面上;2. JS引擎不能直接渲染页面,它要通过跨线程通信联系渲染引擎进行渲染;3. 每开启一个页面,就会开启一个渲染引擎线程,一个JS引擎线程,JS引擎线程是单线程
Chrome浏览器用的是v8引擎
它的主要功能是:
- 编译:把JS代码翻译成机器能执行的字节码或者机器码
- 优化: 改写代码,使其更高效
- 执行JS代码: 执行上面的字节码或者机器码
- 垃圾回收:把JS用完的内存回收,下次继续用
执行JS代码阶段,浏览器会提供好API,比如window、document、setTimeout等,提供的这些功能就是JS的运行环境,当把JS放进页面,就能执行了
网友评论