Memory 计算机如何启动?

Memory 计算机如何启动?,memory,kernel,bootloader,bios,Memory,Kernel,Bootloader,Bios,据我所知,计算机会加载称为BIOS的第一个内存扇区,该扇区在硬件上运行诊断,然后继续加载操作系统。我想我的问题倾向于硬件方面。计算机如何知道从哪个内存启动(RAM、ROM、闪存等)。我理解内存和计算机从硬盘引导的区别,但我正在尝试制造一台带有z80微处理器的8位计算机,它需要从ROM或闪存引导。唯一的问题是,处理器只从地址引脚连接到的任何内存中读取,ram和rom没有单独的地址引脚。由于读/写时间比ram慢得多,因此在rom或闪存上运行系统也是不切实际的。据我所知,z80没有从rom和ram读取

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

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

某些计算机(至少是与IBM PC兼容的计算机)通电后,通常运行此BIOS(基本输入/输出系统)程序。为了实现这一点,据我所知,硬件必须跳转到此代码,并且此代码必须可以从物理内存访问(即映射),因为CPU将从物理内存执行代码。因此,一个物理地址空间,其中包含一些只读区域,这些代码是硬连接到这些区域的


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

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