我可以从操作系统中看到有关硬盘、RAM 和 CPU 的信息。但我从未告诉过操作系统这些信息。
- 我的操作系统怎么知道这一点?
- 硬盘、CPU 或 RAM 中是否有某个地方存储此类信息?
- 这类信息的格式有没有什么标准?
答案1
您不需要告诉它,因为每个设备都已经知道(或有办法)来识别自己。
如果你认为每个设备都是通过地址和数据线访问的,那么在某些情况下仅有的数据线,那么您就会意识到,在这些数据线中,您需要某种“协议”来确定您如何与这些设备通信。
在该协议中,您可以使用命令“读取这个”和“发送那个”或“把这个放到那边”。还有一个相对容易的命令是“识别自己”,它不是读取磁盘或内存块或将像素涂成特定颜色,而是返回一个预制的字符串或一组字符串,告诉驱动程序或操作系统该设备是什么。使用一系列身份命令,您可以发现设备类型、它的功能以及哪个驱动程序可以使用它。
你不需要告诉设备它是什么,因为它已经知道了。你也不需要告诉操作系统它是什么,因为它可以询问设备本身。
你不会告诉别人他们叫什么名字,他们怎么说话,你问他们。
每个设备都有自己的消息协议,并且它们不会存储其他设备的详细信息,因为这样做是疯狂的,而且几乎没有用处,因为您可以随时移除任何设备。除了操作系统用来与其通信的驱动程序外,您的硬盘驱动器不需要存储有关内存或显卡的信息。
个人电脑UEFI 规范将定义一组核心系统规范每一个计算机具有允许处理器加电并让存储在 EEPROM 中的程序开始进行必要的基本系统探测,以确定处理器、设置 RAM、查找磁盘和显示器,从而继续启动计算机。
从那里,UEFI 系统将移交给具有更详细的探测和识别程序的操作系统,但一切都从最基本的“我有一个处理器,我周围有什么?”的情况开始。