Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have seen several project by now, that use USB interface. They usually require special driver for Windows, but not for Linux based systems. Why is that? I mean, even Windows has some generic drivers for basic USB device classes, so what does Linux support that Windows does not?

share|improve this question

2 Answers 2

up vote 5 down vote accepted

Also you'll find that on Linux, standard distributions (and sometimes kernel builds) tend to include a ton of interesting and specific hardware drivers already, mostly due to contributions by users over time. Windows doesn't really have a way for arbitrary developers to create drivers for common hardware then include it in all new distributions of Windows. It's a different software and distribution model. With Linux a lot of things make there way into the mainstream over time.

It's not just that Linux has more "generic" drivers (but this is often true, especially when contributors are interested in writing as wide-scoped drivers as possible rather than vendors writing proprietary drivers for their specific hardware), it just ships with a big collection that people can contribute to and quickly make their way into main distributions, forever.

I see all kinds of strange things that ship with Linux. For example, CAN is a serial interface and protocol for use in industrial automation and control. Use is relatively rare, but the kernel that ships with Ubuntu has generic CAN support built-in, and controller card vendor-specific interface kernel modules are shipped with Ubuntu standard. That kind of distribution isn't possible with more controlled operating systems like Windows or OSX. I wouldn't have found out about this had I not worked on a robotics project recently and, much to my surprise, not only were the interface drivers built into the kernel, but modules for my vendor's controller card were also already (surprisingly) included.


Off-topic-ish:

It's also worth noting that even for drivers that don't ship standard, both OS's are much better about it than they were in the past. Popular Linux distributions have been working hard to make obtaining software as easy as possible in order to stay competitive, so in many cases a driver that isn't already on the system is easily obtainable through a package repository (15 years ago it was a lot harder to get random hardware to work on Linux). Windows, in recent years, has been getting better about having a large repository of drivers available online for automatic download when hardware is attached - these days, at least for me, it is much rarer to encounter "a driver for this device could not be located" on Windows.

It will only get better (on all OS's), too. Ease of installation of software and drivers is so ubiquitous today (especially due to advances in "app" style platforms spurred by mobile devices - and now look; you have Ubuntu's Software Center, the Windows 8 Marketplace, the iTunes Store, Google Play, even individual software like Chrome, Firefox, all have new features focused entirely on ease of finding and installing new software) that it's almost expected; it's a bug if you have to hunt around for software, where it used to be a bonus if you didn't.

share|improve this answer

AFAIK Linux includes all the "drivers" in the kernel, but Windows keeps them separate. So Linux does have drivers but they are already included with the heart of the system. Also Linux uses more generic drivers while Windows has more specific drivers to target certain devices.

share|improve this answer
    
Some drivers are included in the kernel, many are built as modules that aren't loaded until they are needed (conceptually equivalent to Windows' DLL-based driver system). Exactly which are built-in vs. included depend on the Linux distribution. –  Jason C Jun 14 '14 at 0:01

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.