计算机如何启动?

How does a computer boot up?

我知道计算机会加载称为 BIOS 的第一个内存扇区,它 运行 对硬件进行诊断并继续加载 OS。我想我的问题倾向于硬件方面。计算机如何知道从哪个内存启动(RAM、ROM、FLASH 等)。我理解内存之间的区别,我理解计算机从硬盘驱动器启动,但我试图制造一台带有 z80 微处理器的 8 位计算机,这需要从 ROM 或闪存启动。唯一的问题是处理器只从地址引脚连接到的任何内存中读取,并且 ram 和 rom 没有单独的地址引脚。由于与 ram 相比 read/write 时间慢得多,因此对于 运行 rom 或 flash 上的系统也是不切实际的。据我所知,z80 没有单独的命令来读取 rom 和 ram,即使有也没关系,因为 ram 在通电时会是空白的。计算机如何选择仅在启动时从 rom 读取,然后在加载 OS 后切换到 ram。使用逻辑门是硬连线的吗?加载 OS 后,计算机如何选择写入闪存或硬盘驱动器而不是 ram?闪存会被视为一种设备吗?或者这是否也使用逻辑门硬连线到主板?抱歉提供了这么多背景知识,我只是不想让你浪费时间解释我已经掌握的东西。我刚刚对此进行了很大程度的研究,并连续思考了几个小时,但似乎无法弄清楚,而且我看过的所有地方都没有解释计算机如何选择要读取的内存,它只是说它会。谢谢

我不确定我是否回答了你的问题,但我会试一试。

有些电脑(至少是IBM PC兼容电脑),开机后,通常是运行这个BIOS(Basic Input/Output System)程序。为此,据我所知,硬件必须跳转到这段代码,并且这段代码必须可以从物理内存访问(即映射),因为那是 CPU 将执行的地方代码来自。因此,物理地址 space 和一些只读区域,在这些只读区域中,此代码硬连接到这些区域就可以解决问题。

一旦BIOS代码为运行ning,就可以select下一步如何进行了。它可以将一个扇区从硬盘复制到内存,(或从闪存驱动器中复制一堆数据)然后跳转到它,或其他任何东西。这取决于 BIOS 编写器。