我正试图从零开始构建一个CPU (从或门)在模拟器中,然后在面包板上。
只是想弄清楚事情是怎么运作的。
现在,由于我的CPU将是新的,我将如何指示一个操作系统,比如说arch linux来使用它?
BIOS将扮演什么角色?我需要写一个包含汇编程序的BIOS吗?
我也需要在操作系统上写一些程序吗?
因此,它开始与我的CPU进行通信。
P.S:我是一个程序员,所以我很清楚事情是如何进行到组装阶段的。
只想知道硬件级别是如何在程序集之外工作的。
换句话说,第一台计算机在BIOS上写了什么?
它是如何引导的?
发布于 2022-05-22 22:58:59
我可以向您推荐“计算结构”系列文章:https://jeelabs.org/202x/tfoc/
在每台计算机中都会有一些初始代码,但是它所做的完全取决于你!在嵌入式系统中,"bios“是一个完整的应用。
直接从焊接门走是一条漫长而艰巨的道路。我正在FPGAs上做CPU设计,我是一门课程的撰稿人,这门课程把你从逻辑的第一步带到一个完整的RISC-V CPU和编译的C程序:
https://github.com/BrunoLevy/learn-fpga
祝好运!使用FPGA,实际上可以使用自定义设计来引导Linux:
发布于 2022-05-22 18:56:04
只是想了解事情是如何运作的。
事情的工作原理是CPU只是系统的一部分。没有RAM,它是无用的;没有某种形式的持久存储,它是无用的;没有某种与外界对话的IO (例如,一个串行端口)--它是无用的。
,BIOS将扮演什么角色?
"BIOS“(或者更准确地说,系统打开时使用的某种ROM )扮演”存储“的角色-- CPU获得初始化其他存储设备和加载更多可执行代码所需的可执行代码的一种方式。
对于您的"NOR关卡遍布数百块面包板“,您可能最终会将一个非常小的" OS”直接放在ROM中,这样您就不必担心提供额外的持久存储;经过大约10年的奉献,您最终可能会看到最小的操作系统工作3次(在厌倦“本周哪条线路连接不好?”之前)。(连续断裂)
从某种角度来看,1位RAM将花费你4个或4个门,所以一个微不足道的512字节RAM将花费你16384或门(行/列选择逻辑更多)。这就产生了超过4000 "74LS02四倍两输入或门“芯片。如果您可以将这些芯片中的40片打包到一块面包板上,那么您将看到大约100个面包板,只是为了没有足够的RAM来运行任何操作系统。
发布于 2022-05-22 22:49:05
操作系统可以非常简单--如果你只想让系统启动,做一些像设备和线程之类的事情,但不想要一个完整的操作系统的所有保护和功能。
您真正需要的是响应中断并向用户级软件发送数据就绪(缓冲输入)或设备准备就绪的信号的能力,而用户级软件可以表示(例如,通过syscalls)发送到设备(缓冲输出)或从设备获取数据。可以为一个中断处理程序(一个小型操作系统)装配数百行程序。
但是有很多系统甚至没有这样的复杂程度。一些程序微控制器简单地运行一个程序,没有中断,他们有一个主事件循环,持续检查按钮按下或其他。
https://stackoverflow.com/questions/72339537
复制相似问题