What does deprecating kernel extension really mean?

WWDC 2019 said "Deprecating Kernel Extensions---In the Future", what does it mean?


Is my USB device loaded with kext currently will be unavailable on macOS 10.16? Or when kext and dext both exist ,the kext will not be loaded?

Replies

"deprecated" means you are advised not to use them for new development. It is also a warning that they may become entirely unsupported in future. Session 702 of WWDC 2019 said that Apple think system and driver extensions are so good that they encourage their immediate adoption. How long a technology is deprecated but nevertheless supported varies - I've seen APIs deprecated since 10.6 which didn't disappear until 10.15.

The same session said that creating a proxy object in user space also creates the real object in the kernel, and that dexts and kexts thus compete. They didn't say what the priority rules are - I expect that given the same match scores, a dext will win because it is presumed newer/better/more secure.

You may want to consider providing an uninstaller for your legacy kext.