I've been trying to grasp the concept of DKMS, and I think I have some understanding but could use clarification. As I understand it, DKMS is a framework that helps compile and manage kernel modules for the version of the kernel currently in use. When you install a package that includes a DKMS module, it provides the source code necessary for rebuilding that module when a new kernel is released. However, I'm concerned about what happens when a new kernel is released after I've already installed a DKMS package. For example, I was looking into VirtualBox, which has a DKMS package associated with it.
5 Answers
In essence, DKMS is like a bridge between your kernel and the modules. If you change kernels, DKMS compiles the modules to match the new kernel interfaces. It's a bit like linking libraries for your programs, but it does this work automatically to keep things smooth when you upgrade your kernel.
You don't need to worry too much about new kernels breaking things, because DKMS automatically attempts to rebuild installed modules from source when a new kernel is detected. This process happens during the kernel installation, so as long as the modules are from the same distribution, you should receive updates to keep them compatible.
Consider thinking of DKMS in terms of modules rather than just drivers. When you add a new DKMS package, it compiles modules using the latest kernel headers. So if a new kernel drops, DKMS takes care of rebuilding those modules for you. This is all done through hooks in the package management system that coordinate with DKMS.
When a new kernel version comes out, there can be issues if the kernel's API changes. In that case, the DKMS build might fail, leading to the module not being available for the new kernel. But generally, designers set up DKMS so that it will automatically try to rebuild your existing DKMS modules any time a new kernel is installed.
DKMS can be a little tricky with things like VirtualBox since it sometimes doesn't have an updated module ready when a new kernel drops. I've switched to KVM for my needs because it's more reliable with kernel updates.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically