Skip to content

Comment on Microkernels vs. hypervisors (2008)

Comments

At least back in the days of the first Android phones and the original iPhone, smart phones needed at least two cores, and they dedicated one core to a real-time microkernel to run the cellular radio and other to run Linux / Xnu and the Android/iOS applications.

These days, do Android and iOS run paravirtualized kernels on top of the real-time microkernel so that they don't have to dedicate a whole core to managing the radio and other real-time tasks? Do they still dedicate a (smaller?) core to the RTOS? Paravirtualization involves fewer changes than making an existing OS Kernel into a hard-realtime low-latency kernel, but it's also possible that modern Android and iOS phones use hard-realtime low-latency Linux and Xnu kernels. Blackberry's QNX started out using a hard-realtime low-latency kernel as the application kernel, so it's more likely blackberry is using QNX to control the radio and other hard-realtime tasks instead of running a second microkernel on the phone to handle the radio.

When I read "cores" I think "on the same chip," so that took some re-reading to parse. Handling the radio is the job of the baseband processor, which has its own RAM and firmware, in a separate package from the CPU. It looks like, as of the iPhone 5s, it's still a separate processor. I think that the vagaries of FCC licensing will keep it separate; otherwise, you'd have to re-test it for interference whenever you rev'ed your CPU or perhaps even firmware. I think most baseband firmware is proprietary and tightly controlled; for the paranoid, it presents an attack surface that's very hard to examine.

Basically only the iPhone has a separate baseband chip; most other phones put the baseband on the same chip as the application processor.

I've not seen any phone with a baseband on the same chip (or at least, that shared any of the resources of the primary cpu. FCC rules makes that, as the GP mentioned, extremely tricky if possible at all. What phones have you seen that do have a integrated baseband?

Any that use a Qualcomm chip.

As for FCC rules, in general it's safe to assume that the regulated are smarter than the regulators. The baseband core is probably "logically separate" or something to meet FCC regulations.

It's proven to be far simpler to leave the radio's RTOS on a dedicated core and run the user facing OS on its own core(s) -- modern mobile SoCs are not starved for compute resources (not uncommon to see a single chip with a dedicated ARM core + DSP for the baseband, dual/quad/etc ARM cores for the "apps" processor running the user-facing OS, a GPU with additional compute, etc, etc.)

I think the realtime microkernel will run on a different chip, so no, I don't think they've moved this way.

It's possible that the task switching overhead for a paravirtualized kernel is to great to make it worthwhile to save a chip on the board.

IIRC stuff like the radio still runs on separate core(s).

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.