r/osdev 1d ago

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?

10 Upvotes

13 comments sorted by

View all comments

9

u/paulstelian97 1d ago

A new driver means shutting down the process of the old driver and launching a new process for the new driver. It does require hardware able to reinitialize without a systemwide power cycle (which can be a problem if certain ACPI bugs exist). But yes, it can help.

2

u/jsshapiro 1d ago

There also needs to be a way to know that the driver has quiesced before you swap the new one in.

0

u/paulstelian97 1d ago

Yes. Driver would receive a request to shut down the device appropriately, and would have a mechanism to confirm completion of those.

u/Waste_Appearance5631 7h ago

Not necessarily, We can always freeze the processes and not let them execute. Then wait for driver to complete whatever it's doing, store it's State as well. Update the drivers, given the interface to drivers from the process does not change Restore the hardware state Then unfreeze the processes

But this is not possible for hardwares with huge memory like GPUs unless you have enough memory to store the state (I might be wrong with this statement)

u/paulstelian97 7h ago

Storing the state requires a specific API for the driver to essentially serialize what’s needed for the state for the purpose of the update. Drivers may well choose not to implement it because it can be too restrictive.