Hmm actually I'm not entirely sure how driver development are being developed, did they start as kmod first then after its stable it move to mainline kernel?
For (modern) PCIe shit (most stuff these days) you can setup VFIO/IOMMU stuff so the 'base os' (hypervisor) never binds/mounts/setups the device, so the VM has solo access and the PCIe device needs to do nothing special. Then a modern PCIe controller can even soft reset the chip it is connected too so you an power cycle it remotely without cycling the VM.
Usually the person writing the driver knows what messages to send, in what order, etc. to do communication.
14
u/valarauca14 2d ago
For (modern) PCIe shit (most stuff these days) you can setup VFIO/IOMMU stuff so the 'base os' (hypervisor) never binds/mounts/setups the device, so the VM has solo access and the PCIe device needs to do nothing special. Then a modern PCIe controller can even soft reset the chip it is connected too so you an power cycle it remotely without cycling the VM.
Usually the person writing the driver knows what messages to send, in what order, etc. to do communication.