boot - 在现代计算机上启动时,在第一微秒内究竟发生了什么?
问题描述
这里和其他地方有很多关于一般启动顺序和逻辑设计的问题和答案。但是,我很难理解从根本上一开始到底发生了什么。
例如,描述第一步的常用方法是“一旦主板通电,它就会初始化自己的固件——芯片组和其他花絮——并尝试让 CPU 运行。” 来自:https ://manybutfinite.com/post/how-computers-boot-up/
关键问题在于“它初始化”。“它”的确切性质以及“初始化”的含义根本不清楚。
(我也不太确定什么时候可以认为固件已经“启动”)
我可以理解为“电源开关”打开的前几纳秒,然后再过几纳秒以允许电源跨越距离到达主板上“初始化”电路的任何位置。然后大概开始了一些电脉冲序列,然后???然后机器代码执行开始。
据我所知,这差不多。
那么在“初始化”发生的剩余时间内会发生什么?
解决方案
当主板上电时,不仅 CPU,而且所有其他芯片和设备(内存、定时器、中断控制器、DMA、视频、磁盘等)都进入明确定义的状态。
我猜这就是Gustavo Duarte 所说的固件初始化。实际上固件是一个固定在 ROM 中的程序,它不会初始化。RAM 中较低地址的 BIOS 内存变量稍后将由 CPU 执行Power-On-Self-Test和其他杂务来初始化。
有关更多详细信息,请参阅
Wikipedia 上的引导,
英特尔处理器如何引导?,
引导英特尔系统架构。
推荐阅读
- python - 在表达式数据集python中删除值
- javascript - 为什么我的状态没有立即反映在反应中?
- karate - 如何使用空手道处理浏览器中的地理位置弹出窗口?
- react-native - 反应本机日期时间选择器选择
- mysql - Windows 10 上的 MySQL 8 - 时区
- c++ - 错误含义;以二进制形式打印数字
- reporting-services - 可以对 ssrs 组中的记录进行排名
- qt - QT 组合框的项目边框是通过 QAbstractItemView 的半径看到的
- vue.js - 如何在 vuejs 中获取复选框的状态是否已选中
- java - 登录android studio后尝试将用户重定向到新页面