我的操作系统如何获取有关磁盘大小、RAM 大小、CPU 频率等的信息
How does my operating system get information about disk size, RAM size, CPU frequency, etc
我可以从我的 OS 中看到关于我的硬盘、RAM 和 CPU 的信息。但是我从来没有告诉我的OS这些信息。
- 我的OS怎么知道的?
- 硬盘或CPU或RAM中是否有存储此类信息的地方?
- 这种信息的格式有什么标准吗?
SMBIOS(以前称为 DMI)包含大部分此类信息。 SMBIOS 是一个数据 structure/API,它是 BIOS/UEFI 固件的一部分,包含计算机品牌和型号等信息。
其余的由OS查询硬件直接收集。
你不需要告诉它,因为每个设备都已经知道(或有办法)识别自己。
如果您认为每个设备都是通过地址和数据线访问的,并且在某些情况下仅数据线,那么您就会意识到在这些数据线中您需要某种 "protocol" 来决定您如何与这些设备通话。
在该协议中,您可以使用 "read this" 和 "send that" 或 "put this over there" 命令。有一个命令说 "identify yourself" 也相对容易,它不是读取磁盘或内存块或为像素绘制特定颜色,而是 return 一个预制字符串或一组字符串告诉驱动程序或操作系统 该设备是什么。使用一系列身份命令,您可以发现设备类型、它的功能以及可以使用它的驱动程序。
您不需要告诉设备它是什么,因为它已经知道了。而且你不需要告诉操作系统它是什么,因为它可以询问设备本身。
你不会告诉别人他们叫什么以及他们怎么说话,你问他们。
每个设备都有自己的这些消息协议,并且它们不存储其他设备的详细信息,因为这样做会很疯狂并且几乎没有用,因为您可以随时删除任何设备。除了操作系统用来与之通信的驱动程序外,您的硬盘驱动器不需要存储有关内存或显卡的信息。
PC UEFI specification 将定义 每台 计算机都具有的一组核心系统规范,允许处理器启动并用于存储在 EEPROM 中的程序开始进行必要的基本系统探测,以确定处理器、设置 RAM、查找磁盘和显示器,然后继续启动计算机。
从那里 UEFI 系统将移交给操作系统,操作系统将进行更详细的探测和识别过程,但这一切都从最基本的 "I have a processor, what is around me?" 情况开始。
我可以从我的 OS 中看到关于我的硬盘、RAM 和 CPU 的信息。但是我从来没有告诉我的OS这些信息。
- 我的OS怎么知道的?
- 硬盘或CPU或RAM中是否有存储此类信息的地方?
- 这种信息的格式有什么标准吗?
SMBIOS(以前称为 DMI)包含大部分此类信息。 SMBIOS 是一个数据 structure/API,它是 BIOS/UEFI 固件的一部分,包含计算机品牌和型号等信息。
其余的由OS查询硬件直接收集。
你不需要告诉它,因为每个设备都已经知道(或有办法)识别自己。
如果您认为每个设备都是通过地址和数据线访问的,并且在某些情况下仅数据线,那么您就会意识到在这些数据线中您需要某种 "protocol" 来决定您如何与这些设备通话。
在该协议中,您可以使用 "read this" 和 "send that" 或 "put this over there" 命令。有一个命令说 "identify yourself" 也相对容易,它不是读取磁盘或内存块或为像素绘制特定颜色,而是 return 一个预制字符串或一组字符串告诉驱动程序或操作系统 该设备是什么。使用一系列身份命令,您可以发现设备类型、它的功能以及可以使用它的驱动程序。
您不需要告诉设备它是什么,因为它已经知道了。而且你不需要告诉操作系统它是什么,因为它可以询问设备本身。
你不会告诉别人他们叫什么以及他们怎么说话,你问他们。
每个设备都有自己的这些消息协议,并且它们不存储其他设备的详细信息,因为这样做会很疯狂并且几乎没有用,因为您可以随时删除任何设备。除了操作系统用来与之通信的驱动程序外,您的硬盘驱动器不需要存储有关内存或显卡的信息。
PC UEFI specification 将定义 每台 计算机都具有的一组核心系统规范,允许处理器启动并用于存储在 EEPROM 中的程序开始进行必要的基本系统探测,以确定处理器、设置 RAM、查找磁盘和显示器,然后继续启动计算机。
从那里 UEFI 系统将移交给操作系统,操作系统将进行更详细的探测和识别过程,但这一切都从最基本的 "I have a processor, what is around me?" 情况开始。