Why do we need Kies (ADB driver) in Windows but not in Linux? Why do we need an ADB driver in Windows but not in Linux?

I have been working on Android for the past few months in Windows. To run my project on my Samsung device I had to install Kies first. Similarly for my LG device there is a LG ADB driver, and another for HTC.

But when I shifted to Ubuntu Linux recently, I didn't require any other drivers like Kies and ADB. I was able to debug directly without any third party driver. Why is that?

I know it is something very common, but I haven't found anything which explains why this is the case.
Chor WaiChun mentioned this on a locked question you posted on StackOverflow:


  I've seen somewhere stated that this behaviour is because both android
  and linux run on same kernel, and same situation goes to developing
  android on mac. Both OS runs in very similar OS kernel with Android,
  that is why they don't need any drivers. These are just something I
  remembered seeing from other threads, can't give 100% sure


UPDATE #1: The Android site also mentions this:


  If you are developing on Windows and would like to connect an
  Android-powered device to test your applications, then you need to
  install the appropriate USB driver. ...
  
  If you're developing on Mac OS X or Linux, then you probably don't need to install a USB driver. To start developing with your device,
  read Using Hardware Devices.


UPDATE #2: There's a comment on StackOverflow regarding libusb. I think this may be the reason why Linux does not need additional drivers.


  Actually adb under Linux accesses USB devices using libusb without any
  specific kernel driver. Also adb has a list of vendor IDs which it is
  allowed to use, but this does not explain the problem in question,
  because vendor IDs for both phones are the same. And in case of
  permission problems due to missing udev rules adb devices clearly
  shows “no permissions” in the list, so this is also not the cause of
  this problem.