我如何检测x86汇编中的内核数量?

我正在为自己编写一个非常简单的操作系统作为学习工具。 我目前的任务是尽可能多地检测硬件。

到目前为止,我已经能够使用CPUID指令找到许多关于CPU的信息。 我似乎无法找到的一件事是数量或物理和/或逻辑内核。 有没有办法使用x86程序集和C的组合来做到这一点?

我正在编写操作系统,因此代码可以以超级用户模式运行,并且没有系统库可以查询此信息。


为了查找系统中的所有处理器,您必须解析ACPI表或英特尔MP配置表。 有关使用MP配置表查找和启动其他处理器的教程,请参阅将SMP引导至UP操作系统。 有关ACPI的更多信息,请访问http://www.acpi.info/spec.htm。 您可能还想查看Detecting CPU Topology,它可以告诉您哪些处理器和内核位于系统内的哪个物理芯片上。

在操作系统时,http://wiki.osdev.org将是您最好的朋友。 它充满了操作系统开发所有不同部分的信息,包括常见的硬件和工具。

链接地址: http://www.djcxy.com/p/82353.html

上一篇: How can I detect the number of cores in x86 assembly?

下一篇: Is it possible to create threads without system calls in Linux x86 GAS assembly?