我学习了很多学科,从物理到逻辑门到处理器,我还学习了计算机架构,编译器,汇编x86,操作系统,GPU,...
由于某些原因,上面提到的所有主题都没有涵盖“编译器生成可执行文件后”向下到处理器的过程。
请你能为我提供资源解释这些事情。因为我的思维方式让我发疯,如果我不明白为什么事情的工作方式,他们正在工作。
就像我想了解的那样为什么UNIX文件以'elf'开头?如果你告诉我这是惯例.那么作为机器的计算机如何理解一个文件以'elf'开头被传递给它?这是操作系统的工作.那么计算机如何理解操作系统的代码?我知道处理器将读取它表示为二进制.但是计算机如何真正理解二进制?不要通过晶体管和逻辑门来告诉.我需要什么来理解二进制是如何被信号发送到计算机硬件的?硬件是如何真正被实现来理解二进制的?
请把我上面提到的关于这个阶段的资源分享给我?
1条答案
按热度按时间ih99xse11#
二进制实际上只是存储在存储电路中的电信号和少量电荷。二进制数据(例如:0101)只是一个用2个符号表示的数字,而不是10个符号(如基数10或十进制)。重要的是你如何解释这些数字以给予它们意义。
例如,在x64这样的处理器架构中,架构的开发者会创建一个指令集,其中包含一定数量的具有非常特定格式的指令。因此,二进制数据被解释为这些指令。由于CPU在其逻辑电路中被制造为理解这些指令,因此它可以根据架构执行它们。
CPU也被配置为在特定地址开始执行。主板制造商将机器代码以二进制形式放在该地址以启动CPU。这称为固件。操作系统开发人员将其机器代码以常规格式放在硬盘驱动器的常规位置,以便固件可以找到并执行它。
即使是在电气方面,也需要对信号进行传统的解释。主板上的某个芯片可能会将3V解释为高信号,而另一个芯片可能会将5V解释为高信号。重要的是,互连的芯片能够理解彼此的接口。例如,x64处理器可能连接到现代DDR4 RAM。CPU知道如果它应用信号(假设5V方波2600MHz)到该芯片的某些引脚,那么每个振荡将写入或读取选定存储单元中的数据。它知道这一点,因为它希望RAM模块遵循DDR4标准。如果不遵循标准,那么CPU将无法与之交互。