Operating system 像Windows或Linux这样的现代操作系统如何知道特定于芯片组的内存映射?

Operating system 像Windows或Linux这样的现代操作系统如何知道特定于芯片组的内存映射?,operating-system,hardware,hardware-interface,chipset,Operating System,Hardware,Hardware Interface,Chipset,外围设备的内存映射由芯片组定义。然而,像linux和Windows这样的现代操作系统几乎可以从每个芯片启动(如果编译的架构正确的话)。据我所知,像USB主机这样的内存映射设备不包括在体系结构标准中。操作系统如何仍能引导、加载驱动程序并正常工作?我想在描述芯片组的地方一定有一些规范 公式有点不同:芯片组的标识是如何工作的,什么标准定义了芯片组和处理器之间的通信,使其在不同的硬件上工作,内核如何知道不同外设的正确物理地址?开放系统通常使用设备树,这是连接硬件的规范,以及连接方式。还有另一个系统,AC

外围设备的内存映射由芯片组定义。然而,像linux和Windows这样的现代操作系统几乎可以从每个芯片启动(如果编译的架构正确的话)。据我所知,像USB主机这样的内存映射设备不包括在体系结构标准中。操作系统如何仍能引导、加载驱动程序并正常工作?我想在描述芯片组的地方一定有一些规范


公式有点不同:芯片组的标识是如何工作的,什么标准定义了芯片组和处理器之间的通信,使其在不同的硬件上工作,内核如何知道不同外设的正确物理地址?

开放系统通常使用设备树,这是连接硬件的规范,以及连接方式。还有另一个系统,ACPI,它支持传统PC。这两个系统都允许操作系统定位和配置所需的总线和相关外围设备

它从来没有像那样100%容易。例如,操作系统可以知道在地址1000的总线1上有一个scsi控制器;但是,如果scsi驱动程序的代码不在加载的os映像中,那么这些知识就没有什么用处,因为它无法加载驱动程序

英特尔ACPI规范试图通过将微小的驱动程序实现烘焙到平台、设备本身或两者的固件中来解决这一问题。由于设备不一定知道它将在什么类型的cpu上运行,这些微型驱动程序被写入虚拟指令集中,主机操作系统需要一个解释器

UEFI提供了一种替代方法,通过更通用的机制来解决引导依赖性,从而使用迷你引导驱动程序实现同样的目的