Topic: Kernel Extension vs. System Extensions - Practical Differences?

I understand running kernel extension drivers provides "better performance" than system extension drivers, but I haven't been able to figure out what that really means in practice.  What difference would I notice as a user?  Another way to put the question... when Apple finally prevents kernel extension drivers altogether, as they apparently will at some point, what performance are we going to lose out on?

Re: Kernel Extension vs. System Extensions - Practical Differences?

For the most part, to the end user, they are equivalent, except under system load.

Apple argue that the reliability of the system increases when using DK as extensions can't crash the kernel anymore.
But the cost of that is the "isochronous" reliability of the extension features (e.g. audio may stutter or drop out).

The kernel extension driver is able to run with elevated privileges, so it is less likely to get interrupted when something else hogs the system. In that regard RME's kernel extension drivers have for me been very stable over the years, especially over Firewire. But USB (2) is more loosely managed.

I think DriverKit client extensions run in the User tier, which means another device has the potential to keep the system more occupied with other transfers (e.g. a Thunderbolt-connected NVMe drive transferring files), instead of filling up audio buffers for uninterrupted playback.

It's clear from RME's video on the subject that RME and Apple have differences in their approach to drivers. I wish they'd collaborate on resolving those differences, so we can again have the "rock-solid" drivers we're used to, even on older interfaces like FF UCX.

Alas, things have been complicated on the M-series Macs. Some people have reported that MacOS Sonoma fixes their issues (i.e. makes Driverkit drivers a viable replacement for Kext). The audio interrupts I experience while doing simple things like previewing a folder of raw photos, have not been resolved in Sonoma. The DK driver reports running out of buffer data to play.

Lastly, that Apple have kept this mechanism around (kext/firewire) suggests that Apple too are more aware of this issue than they'd like to be. Hope this helps.

Fireface UCX, Focusrite OctoPre, Sound Devices MixPre-D, Mac Studio M2 max, macOS Sonoma

3

Re: Kernel Extension vs. System Extensions - Practical Differences?

Nice summary!

Regards
Matthias Carstens
RME

Re: Kernel Extension vs. System Extensions - Practical Differences?

Yes, thank you.  That does clear things up.

I'm having major problems with a Dell XPS laptop (Win 11) I've been using with Studio One for location recording with a UFX II (USB). I'm quite certain the UFX isn't the issue (same UFX, Studio One and Win 11 run flawlessly on my desktop).  Just something about the Dell.  In any event, it's to the point I'm considering replacing the Dell with a Mac Mini M2.  So I've been trying to learn as much as possible about RME/M2 issues.  I think I'm ready to take the plunge, but will definitely be using kernel extensions and keeping my fingers crossed for a better long-term, solution than system extensions.

Re: Kernel Extension vs. System Extensions - Practical Differences?

jslator wrote:

I think I'm ready to take the plunge, but will definitely be using kernel extensions and keeping my fingers crossed for a better long-term, solution than system extensions.

macOS Sonoma and later will nag you every now and then about that kernel extension. It's OK to ignore it for the time being, but if you're like me, it will give you an uneasy feeling that it might stop working in a point update.

Fireface UCX, Focusrite OctoPre, Sound Devices MixPre-D, Mac Studio M2 max, macOS Sonoma