内存图与JS世界 ---笔记(一)

一切运行在内存中

计算机开机过程

操作系统在C盘中,按下开机键,主板通电,开始读取固件,开机程序会将文件中的操作系统加载到内存中运行。
固件:就是固定在主板上的存储设备,里面有开机程序

操作系统(以Linux为例)
  1. 首先加载操作系统内核
  2. 然后启动初始化进程,编号为1,每个进程都有编号
  3. 启动系统服务:文件、安全、联网
  4. 等待用户登录:输入密码登录/ssh登录
  5. 登录后,运行shell,用户就可以和操作系统对话了
    注:1. bash和图形化界面都是shell;2. 真正能控制计算机硬件(cpu、内存、显示器等)的只有操作系统内核kernel,shell只是架设在用户和内核之间的桥梁;3. shell的本质就是让用户能够更加高效、安全、低成本的使用Linux内核
打开Chrome浏览器的过程
  • 双击chrome图标,运行chrome.exe文件
  • 开始chrome进程,作为主进程
  • 主进程会开启一些辅助进程,如网络服务、GPU加速等
  • 每新建一个网页都有可能开启一个子进程
浏览器的功能
  1. 发起请求,下载HTML,解析HTML,下载CSS,解析CSS,渲染界面,下载JS,解析JS,执行JS等
  2. 功能模块:用户界面、渲染引擎、JS引擎、存储等(引擎是代码)
  3. 上面的功能模块一般各处于不同的线程(如果进程是车间,那么线程就是车间里的流水线)
    注:1. 渲染就是将解析后的HTML和CSS合起来呈现到页面上;2. JS引擎不能直接渲染页面,它要通过跨线程通信联系渲染引擎进行渲染;3. 每开启一个页面,就会开启一个渲染引擎线程,一个JS引擎线程,JS引擎线程是单线程
Chrome浏览器用的是v8引擎

它的主要功能是:

  1. 编译:把JS代码翻译成机器能执行的字节码或者机器码
  2. 优化: 改写代码,使其更高效
  3. 执行JS代码: 执行上面的字节码或者机器码
  4. 垃圾回收:把JS用完的内存回收,下次继续用
    执行JS代码阶段,浏览器会提供好API,比如window、document、setTimeout等,提供的这些功能就是JS的运行环境,当把JS放进页面,就能执行了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容