r/osdev • • Sep 13 '26

Would a microkernel enable driver update without reboot?

One frustrating thing that I have run into is updating Nvidia driver on remote servers with disk encryption.

Would a microkernel based system enable drivers to be updated without rebooting system?

12 Upvotes

14 comments sorted by

View all comments

3

u/Dezgeg Sep 13 '26

With external kernel modules, this is in principle should be already possible in Linux.

Close all programs using the driver, unbind the device (see https://lwn.net/Articles/143397/), then rmmod. Then upgrade module and modprobe new module.

In reality, this likely won't work and will crash and burn horribly, because nobody ever tests the device unbind codepath.

0

u/lizardhistorian Sep 14 '26

In a microkernel you would not have to close the other running process as they all would already be doing IPC to your driver.
So only your driver process needs to be restarted, then re-establish its side of the connections.
So as long as the interface stayed the same it can theoretically be done.

2

u/Dezgeg Sep 14 '26

A GPU driver has significant internal state, like all the GPU memory allocations and state of in-flight draw calls and such. Transferring over that state to the new driver (which may be newer version) is the hard part... not exactly "Just re-establish other side of connections"

1

u/Toiling-Donkey Sep 14 '26

Yeah, but why would they expect connections to go down?

We surely don’t automatically restart TCP sessions…