Hacker News new | ask | show | jobs
by filmor 2549 days ago
Version compatibility is not an issue for in-kernel drivers, only for the few remaining external ones. On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista, on Linux, once a driver is in the kernel it's continuously adjusted to driver API changes and will keep working. You can still run a current kernel on a 386 if you want to.

I'm running a quite current Dell on an essentially unpatched kernel (just includes Gentoo's default patches) with no additional modules involved and everything I tested up until now works, even fancy things like Dell's mini-dock.

1 comments

> On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista,

I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.

Heck, for more obscure drivers[1], it seems necessary to recompile for every kernel patch. Perhaps that's the fault of that driver's developer for not following the correct way to build kernel drivers, or there's something unique about this particular device - I don't know.

[1] an example: https://github.com/milesp20/intel_nuc_led

> > On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista,

> I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.

I'm not. I'm talking about the fact that drivers for devices older than me that have been merged into the kernel keep on working today while on Windows for some subsystems (like graphics or sound) you can't expect things to work after "just" 15 years. I admit that this is a long time, it's still a huge difference.

And yes, on Linux you are expected to recompile drivers for every new kernel version, that's intentional (https://github.com/torvalds/linux/blob/master/Documentation/...). Since the driver API is reasonably stable, the code doesn't need to be adjusted for every version, and if the driver has landed in the kernel, this is done while changing the API.