The vkernel(7) code has been going through a lot of changes, and instead of linking to the many smaller commits, I’ll point at Matthew Dillon’s latest change since it’s detailed. What’s the performance difference? I don’t know yet if this is for performance or for stability.
4 Replies to “Many vkernel changes”
Comments are closed.
Are vkernels mostly used for development and debugging purposes or are there other scenarios where they would be useful?
I think, but am not certain, that since vkernel pushes kernel processing to the user land – it’s can speed up things like networking.
But I could be wrong.
vkernels are close to what Jimmy described – a regular kernel running as a user process. It’s lightweight, similar to jails, except that it’s completely self-contained, like a virtual machine. Sort of a best of both worlds, in my opinion, but it’s only useful if you’re running DragonFly, on DragonFly.
It was originally designed for development, because you can test kernel changes, boot them, and if you have a crash you can come back in a few seconds instead of having to reboot a machine. It’s never been optimized for speed, though I daresay most of the VM/jail implementations out there are not built for speed anyway.
An interesting project would be to treat a vkernel as a container, and see how well they could be deployed/scripted. Something to describe relative performance would also be helpful – I don’t know where they take a hit compared to ‘bare metal’.
Excellent explanation, thank you!