Estoy escribiendo un sistema operativo muy simple como una herramienta de aprendizaje para mí. Mi tarea actual es detectar tanto sobre el hardware como sea posible.¿Cómo puedo detectar la cantidad de núcleos en el ensamblaje x86?
Hasta ahora he podido encontrar mucha información sobre la CPU usando la instrucción CPUID. La única cosa que no puedo encontrar es el número de núcleos físicos y/o lógicos. ¿Hay alguna manera de hacerlo utilizando una combinación de ensamblado x86 y C?
Estoy escribiendo el sistema operativo, por lo que el código se puede ejecutar en modo supervisor y no hay bibliotecas del sistema para consultar esta información.
Niza último enlace. ¡Gracias! –
Puede ver cómo Mac OS X resuelve el problema en [xnu/osfmk/i386/cpuid.c] (http://opensource.apple.com/source/xnu/xnu-1504.9.37/osfmk/i386/cpuid. c) (busque 'core_count') y [xnu/osfmk/i386/cpu_topology.c] (http://opensource.apple.com/source/xnu/xnu-1504.9.37/osfmk/i386/cpu_topology.c) . –
¡Excelente! Gracias. – Conlan