- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于 PC 的启动,我在某些方面不是很清楚。
术语:引导 block 、引导扇区、MBR、引导加载程序与 Bootstrap 、bios 与 cmos 及其功能。
这些与当前的引导加载程序(如 grub)有何关系。
我了解启动顺序和启动后高级软件的内容,但我真的很好奇当有人按下电源按钮时这些芯片内部发生了什么。
维基百科似乎有点神秘,所以我想也许 stackoverflow 可以给我一些清晰的答案,或者至少将我指向一个可以找到简单解释的位置。
非常感谢您的帮助。
最佳答案
好的。
首先您需要了解 CPU 的工作原理。有一种称为指令指针 (IP) 寄存器的东西,它指向包含 CPU 要执行的下一条指令的地址。每次启动新程序时,该程序都会加载到内存中,然后将 CPU 的 IP 设置为程序的起始地址。但是当你的 CPU 关闭时你会怎么做。如何让 CPU 运行“启动”程序。
为此,有一个叫做“引导向量”的东西,即 CPU 一上电就会跳转到的地址。
但是,谁会在引导向量处加载程序。自然不能将程序预加载到 RAM 中。因为 RAM 需要电源( volatile )。所以他们有一个叫做“引导闪存”的东西,它是 EEPROM,因此是非 volatile 的。该闪存包含一个名为“BIOS”的程序,其职责是将系统从死亡中唤醒。其想法是它必须具有最低限度和必要的功能。该引导闪存被烧录并固定在系统上,使该程序的启动指令恰好位于 CPU 的“引导向量”处。
现在您需要 BIOS 执行的下一个任务是加载操作系统。但是您的硬盘上可能安装了多个操作系统。因此,您首先要加载一个可以进一步加载操作系统的程序。这个程序叫做引导加载程序(grub 就是一个例子)
那么你是怎么做到的。每个磁盘上都有一个称为“引导扇区”的东西。一般是磁盘的第一个扇区。它的大小一般为 512MB 左右。足以存储一个小程序。您告诉 BIOS 使用哪个磁盘(主要、次要、CD、USB、网络)进行进一步引导。最常见且默认情况下,它使用主硬盘。所以引导加载程序去获取那个程序并跳转到它。引导加载程序知道如何从该点引导操作系统。例如,在 grub 中,您可以指定内核名称等。
主引导记录是另一个术语,它更像是一个 Windows 世界术语。 Window 的引导加载程序假定某种“记录”关于安装在引导扇区上的操作系统的性质。它将该记录称为 MBR。
希望这对你现在有好处。
关于operating-system - 基本启动条款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002089/
我的文件示例: [ { username: 'userA', action: 'click', page: 'home' }, { username: 'u
在 AgdaIntro 中, View 部分解释了: ..that with doesn’t remember the connection between the with-term and the
似乎 In 子句在 Linq 3.0 (trunk) 中不能正常工作 我尝试了以下操作: var l = session.Query.Where(p => searchGroups.Contains(
我想在kibana中创建一个可视化效果,以显示不同数据的平均值。我已经创建了显示在日志中的字段,并且还执行了管理->索引模式->刷新。 现在,当我尝试以可视化方式创建图表时-> e.x(条形图)->汇
想象以下搜索词“棕狐”。 所有文档确实都有另一个字段,称为备用名称。 该字段有时包含诸如“动物”或“狐狸”之类的漂亮术语。有时它包含“不好的”(或人类可读的)术语,例如ED2314或1231-234-
我正在尝试使用 Z3 的 HORN 逻辑(set-logic HORN)对一些命令式程序进行编码,但在定义子句时遇到一些困难(使用 SMT2)。谁能告诉我在哪里可以找到有关 Z3 的此功能的良好文档来
我有一个办公室 ID 数组,该数组可能为空。如果 officeIdsToSelect 数组为空,我希望 EF 查询返回所有 记录,或者如果不为空,则仅返回匹配的记录。然而这: int[] office
我正在使用 ark 从 oracle 下载中下载 jdk7u51。 ark 'jdk' do url 'http://download.oracle.com/otn/java/jdk/7u51-
我正在处理一个项目(其他人的代码),其中一个方法被声明为抛出一堆它不可能抛出的已检查异常。 基本上,该方法如下所示: // Assume E1 extends Exception // Assume
所以,我想我理解级联文件系统的基本术语,但我似乎无法理解 MVC 的“层次结构”。谁能告诉我使用 HMVC 相对于 MVC 的优势以及它的基本预期功能吗? 感谢您的宝贵时间! 最佳答案 HMVC 更适
在C++ draft standard N3337节[expr.const.cast]/8 : The following rules define the process known as cast
我是一名优秀的程序员,十分优秀!