D
D
Dmitrii Solovev2016-05-26 17:01:23
linux
Dmitrii Solovev, 2016-05-26 17:01:23

What is the difference in Linux, OS X and Windows drivers?

Can you please explain the difference between the drivers in these systems, and what is the driver in each of them?
In Windows, as I understand it, the driver is most often a graphical installer that needs to be installed for almost every device. Even flash drives at the first start, they install something there.
In Linux and OS X, everything is somehow different. Most of the devices can do it out of the box. I read that the drivers are "built into the kernel", but I can't figure out what that means?
Why does it happen that Linux with a bunch of built-in drivers takes up less space than a freshly installed Windows?
Why is such a policy adopted, to sew everything into the kernel, and drag a bunch of possibly unnecessary drivers, if the PC often has a strict set of components / peripherals that do not change so often?
If in Windows the driver is an installer, then what is the driver in Linux and OS X?
Why, for example, devices such as a 3g modem, on Windows, require the installation of drivers and the installation of a separate hyperterminal program to enter commands, while on OS X, there is simply a device in /dev/tty.3gModem , to which you can connect via screen without any drivers?

Answer the question

In order to leave comments, you need to log in

5 answer(s)
S
Saboteur, 2016-05-26
@dimonnwc3

"a driver is most often a graphical installer"
"If in Windows a driver is an installer, then what is a driver in Linux and OS X?"
Don't equate the driver installer with the driver itself. The driver in Windows can be a single .inf file, and not have any installer.
In general, you are very confused about what a driver is, and as a difference between drivers between systems, you see only the installation method, but all systems need drivers.
You just need to understand the principles of software distribution in different operating systems.
In Linux, it is customary to use repositories, and rarely download something from the site (usually if you download, then there are sources that you also need to collect)
On Mac, the manufacturer of hardware and the OS are the same, so it comes with the OS, but for some devices it is also on disk or from the site, but since there is only one manufacturer, it is easy to organize automatic downloads, and even third-party peripherals are certified by Apple, which simplifies automation .
Windows comes with a lot of built-in drivers that do not require you to do anything to work. The older the Windows, the more devices that will determine themselves.
But many devices are released without much interaction with MS, just using their recommendations, WHQL drivers are considered stable, but anyone can write a driver for their device, post it on their website, and it is clear that MS may not know about it.
In Linux, the kernel is developed by some people, while the Linux distribution and the tools included in the distribution are developed by others. Therefore, it is often stated that the driver is built into the kernel (that is, it will be present on all Linuxes).
Linux does a better job with the standard device type, so all features and capabilities may not always work, but the standard driver built into the kernel will support many more devices of this type without using all the features of the device.
If you take a video card that supports DirectX12, then Linux does not have it (DirectX) at all, and Linux will not be able to use all the features provided by the card, that's the answer why Linux works with many devices with standard drivers, while Windows requires individual ones.

S
spotifi, 2016-05-26
@spotifi

Well, firstly, there are tricky NDIS drivers that are compatible .... more precisely, they are not so deeply tied into the operating system that they are portable.
In general, it's all about optimization, finding the "best way", etc.
Therefore, all programs (and drivers are programs) are either not compatible at all or very limitedly compatible with various operating systems.
Each operating system has its own rules that the program (including the driver) must follow in order to work in this operating system. The common name for these rules is API or ABI.
UPD:
In Linux and OS X, everything is somehow different. Most of the devices can do it out of the box. I read that the drivers are "built into the kernel", but I can't figure out what that means?
Т.н. монолитная архитектура vs микроядерная.
Есть еще и хитрые комбинации - прочитайте про ядро Mach например.
Или про то как устроены драйвера в FreeBSD - одни и те же драйвера в FreeBSD могут как встраиваться в ядро FreeBSD (как в Linux), так и существовать как отдельные модуля (как в Windows).
UPD:
Разница в архитектуре операционных систем и, следовательно, во внутреннем устройстве драйверов настолько велика, что даже имея доступ к исходным текстам, перенести драйвера из Linux в FreeBSD, к примеру - это много работы, много усилий. Скажем драйвера от последнего GPU i3/i5/i5 переносили пару-тройку лет.

Александр Аксентьев, 2016-05-26
@Sanasol

Почему так получается, что линукс с кучей вшитых драйверов, занимает меньше места чем свежеустановленная винда?

В винде-то уж точно побольше драйверов, чем в линуксе.
Вы вообще в магазинах периферии для ПК были?
Каждый Вася покупает рандомный набор из тысяч железок, гордо именует его компьютер.
Поэтому ОСь должна уметь работать со всем железками, чтобы у Васи не было нужды ставить вручную драйвер на каждую плату, схему, мышку и т.д.
Исключениями являются крупные сложные аппараты типа принтеров, в которых пачка драйверов всегда своя. В любом случае их надо ставить.
инсталлятор != драйвер
Может потому что в винде в принципе консоли можно сказать нет, когда как линуксах это есть одна большая консоль.
Я уже не говорю о том зачем вообще может понадобиться лезть в консоль 3г модема обычному пользователю.

Сайпутдин Омаров, 2016-05-26
@generalx

тут мы все поняли?

Никита Кит, 2016-05-26
@ShadowOfCasper

Just Venda is Venda. Venda has its own core with its own jokes. And unix-like operating systems work with iron at a lower level than venda. The ext and ntfs file system alone is heaven and earth. Unixes have console programs, editors - kernel modules that use the same universal script for all pieces of hardware, which is not for kingston or silicon power, but for USB controllers, chips that store data and their buses.
For clarity, let's consider the mount module - a script for binding flash drives, different media to the system - to a certain directory specified by the kernel. In some assemblies, mount is executed by default, in some handles it is necessary. When you type sudo mount with arguments (device and mount directory), the kernel event accepts this command, its code executes the mount function (arguments are thrown here), and executes instructions to output data from here to there ...
And why is it easier - in vend there is a lot of any g *** on by default with graphics. in Linux, most programs, for example, analogues of the control panel of the Vendovskaya, are console. Without a graphical shell. For example top, kill + process name, creating archives with the tar command. And the graphic component usually weighs ten times more than the logic itself, if not all a hundred. There are much fewer graphical shells of modules in the line. In Venda, 1% of the weight of the distribution is logic, the rest is graphics. There are 8-16 percent in the line, I guess. Distribution dependent.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question