Luc Lenôtre:
In my [previous blog article], I have presented Maestro running
gccandg++. This was a crucial step before being able to port many pieces of software to the OS.However, compiling software can often take time, especially when you have only one CPU core available, which was the case on Maestro for a long time.
To remedy this issue, I have implemented SMP (Symmetric MultiProcessing) support, which I am going to detail in this article.
To begin with SMP, we need a way to enumerate the CPU cores present on the system, which can be done with ACPI.
ACPI is one of those things that I’m aware of, but that’s about where my knowledge ends. This post demystifies it somewhat and goes into detail of how it’s used to bring up the other CPUs and cores on SMP hardware. All this in the context of the author’s Linux-compatible kernel implemented in Rust, Maestro.