当前位置: > 手游资讯 > 软件教程 > 计算机重启的原理是什么?

计算机重启的原理是什么?

作者:哪吒游戏网 来源:哪吒游戏网 2020-07-13 18:29:39

计算机重启的原理是什么?,哪吒游戏网给大家带来详细的计算机重启的原理是什么?介绍,大家可以阅读一下,希望这篇计算机重启的原理是什么?可以给你带来参考价值。

启动和重启还是有区别的。启动原理的详细描述见这篇文章:计算机启动过程。如果觉得文章太长可以看下面的描述。

CPU通电之后,内部所有寄存器的状态是已知的。在这些寄存器之中,有一个寄存器叫做eip(64位CPU中叫做rip),它的取值代表了CPU即将执行的下一条指令的内存地址。CPU通电之后eip值为0xffff0,而这个地址恰好位于BIOS ROM之中(内存不全是内存条),因此CPU通电之后,首先开始执行的是BIOS中的代码。BIOS会首先进行自我检查(POST),然后寻找可引导设备。一般来说,操作系统都是从硬盘上引导的,这时可引导设备就是硬盘。BIOS只会把可引导设备的第一个扇区(512字节)读入内存0x7c000的位置,并跳转(jmp)到0x7c000的位置开始执行其中的代码。512字节显然装不下一个OS,因此大多数OS都在这512字节内存放引导程序(bootloader),引导程序的作用就是加载完整的OS到内存,并开始执行OS代码。

接下来的事情,就交给OS自己处理了。

下面来说一下重启,这里的重启是指软件控制的重启。DOS系统并没有关机和重启功能,关闭DOS系统的正确方法就是直接拔电源。软件实现重启,就需要具备控制电源的能力,这种能力需要ACPI的支持。

ACPI代表Advanced Coniguration and Power Interface,最初是英特尔、微软和东芝联手制定的一套标准。通过这个标准重启电脑,OS可以向ACPI发送命令,实现对电源的控制。但是由于ACPI过于复杂,多数OS(据我所知)都使用ACPICA(/)作为管理电源的模块。对于重启,只需要向ACPI发送Reset命令,电脑就会自动重启,而OS感觉上就好像用户切断了电源又重新启动一样。

当然,OS在发送ACPI命令之前,必然要停止所有服务,并等待一些操作完成。

此外,我在网上找到了Stack Exchange上的这个回答:reboot - How does a computer restart itself?,值得去看一下。

题外话:如果自己编写OS,实现重启还有另外两种不那么优雅的办法。

第一种方法是用lidt指令加载一个大小为0的IDT,这会导致CPU产生双重错误,CPU遇到这种严重错误就会自动重置,效果就像重启一样。

另一种方法重启电脑,是通过8042键盘控制器向CPU的RESET引脚发送信号,同样能导致CPU重置。

总结:以上内容就是针对计算机重启的原理是什么?详细阐释,如果您觉得有更好的建议可以提供给哪吒游戏网小编,计算机重启的原理是什么?部分内容转载自互联网,有帮助可以收藏一下。



上一篇: 万恶之源!论王者ELO匹配机制

下一篇:

本文标签:
猜你喜欢