Hacker News new | ask | show | jobs
by NooneAtAll3 53 days ago
can such drivers be moved out of kernel? what exactly stops that?

why do they even need to be in kernel repo and not brought at/after install time?

2 comments

Linux is actively hostile to out-of-tree drivers. There is no stable driver API, and interfaces change at the drop of a hat. Maintaining an out of tree driver is a constant nightmare where you're always dealing with interfaces changing out from under you.

I wrote and maintained 10GbE drivers for a small company in the 2000s, and just the SHIM file for our driver on Linux to massage over API differences was well over 1000 lines. I think it was close to the same size as the entire driver for one of the BSDs.

A counterpoint: I recently asked Claude to port an obsolete ~2010 driver to latest kernel by asking Claude to "make it work". Few builds later and few crashes later, I had a working driver, with DMA, modern Io map protection, etc.

It's not a nightmare anymore to port drivers

GP meant moving the driver into userspace, which is much less painful due to the stable userspace APIs.
I’m not sure the GP did mean that, but I agree it’s a much better solution than maintaining an out-of-tree kernel module, which is generally a really bad idea
> why do they even need to be in kernel

People have been asking this question since Linux was first invented…

I could never in a million years have imagined that LLM-slop driven fuzzing would become the ultimate vindication for the microkernel philosophy