Using multiple CPU cores is very different depending on architecture you want to use.
On x86 this is typically done through ACPI tables. These tables are provided by BIOS that informs OS how to use different parts of hardware, including multiple cores. ACPI has pretty complex specification that provides ability to run interpreter on specific bytecode. Yeah, it's crazy - to start modern OS you need to run interpreter.
Anyways, here's a good overview of what you need to do to find out how to enable running code on specific core through ACPI:
https://www.codeproject.com/Artic...ide-CPU-Raw-Multicore-Programming