【问题标题】:How does a computer boot up?计算机如何启动?
【发布时间】:2015-03-30 17:05:09
【问题描述】:

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

【问题讨论】:

  • 大多数处理器从“复位地址”开始执行。存储在安装/映射到那里的任何内存中的该地址的指令在启动时执行。通常,现代 CPU 会在该复位地址安装 ROM。

标签: memory kernel bootloader bios


【解决方案1】:

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

某些计算机(至少是与 IBM PC 兼容的计算机)在通电后通常会运行此 BIOS(基本输入/输出系统)程序。为此,据我所知,硬件必须跳转到这段代码,并且这段代码必须可以从物理内存访问(即映射),因为 CPU 将从那里执行代码。因此,具有一些只读区域的物理地址空间可以解决此问题。

一旦 BIOS 代码运行,它可以选择下一步如何进行。它可以将一个扇区从硬盘复制到内存,(或从闪存驱动器复制一堆数据)然后跳转到它,或者其他什么。这取决于 BIOS 编写器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2019-03-09
    • 2014-01-01
    • 2014-10-25
    • 1970-01-01
    相关资源
    最近更新 更多