LINUX.ORG.RU

Драйвера в Linux vs Драйвера в Windows

 , , ,


0

2

Новичок, сильно не бейте.

Почему я регулярно вижу новости в духе: «в ядро Linux добавили/убрали поддержку/драйвер материнской платы/процессора/видеокарты». С другой стороны, я не вижу подобных новостей про Windows. Для работы достаточно скачать драйвер от производителя и установить его.

Вопрос. В чем отличие модели поддержки устройств на Linux и Windows? Верно ли, что для корректной работы какого-либо устройства в Linux, его драйвер должен быть добавлен в ядро?

Верно ли, что для корректной работы какого-либо устройства в Linux, его драйвер должен быть добавлен в ядро?

Не всегда, но если драйвер нужен в ядре, то лучше, если он входит в официальное дерево исходных кодов. Драйвер в юзерспейсе, очевидно, может поставляться как угодно.

anonymous
()

Это потому что ты простой школо-пользователь, а когда серьезные промышленные устройства заюзаешь, то обнаружишь что драйвер существует только на Linux а для винды не сделали новый драйвер под старое устройство

I-Love-Microsoft ★★★★★
()

В Linux почти все драйвера вшиваются прямо в ядро, поэтому если у тебя старое ядро, нельзя добавить просто еще один драйвер, нужно ставить новое ядро.

Есть драйверы которые скачиваются, но они поддерживают строго определенные версии ядер. Поэтому если производитель приостановит поддержку такого драйвера, то на новых ядрах оно не будет устанавливаться, на более старых чем он поддерживает тоже.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)

В чем отличие модели поддержки устройств на Linux и Windows?

Проблема кроется в истории 30-летней давности. Которая описана в файле stable-api-nonsence.txt в дереве ядра. Простыми словами, в новом ядре старый драйвер может перестать работать. С драйверами в дереве ядра проблем особо нет — их обновляют вместе с ядром, так как их исходники доступны разработчикам ядра и их правят для обеспечения совместимости с новым ядром. Проблема начинается с проприетарными драйверами, где исходники не доступны, поэтому сообщество не может их поправить, и эта работа полностью ложится на разработчика устройства. Не каждый из которых готов тратится на адаптацию под каждую версию ядра.

В винде же api драйверов не меняется весь срок жизни конкретной версии виндоус, поэтому однажды выпущенный драйвер годами работает, не требуя изменений.

Плюсы и минусы есть у обоих подходов. Однажды выпущенный драйвер с открытым кодом может жить в линуксе десятилетия после смерти компании производителя устройства, тогда как в винде он почти наверняка не будет работать в следующей версии. Но проприетарный драйвер в винде может работать годами, тогда как в линуксе всё зависит от доброй воли производителя.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Однажды выпущенный драйвер с открытым кодом может жить в линуксе десятилетия после смерти компании производителя устройства

Это если есть сопровождающий. Иначе выпилят.

ox55ff ★★★★★
()

я не вижу подобных новостей про Windows

Про ядро windows не так много известно, что там в нем можно догадываться. Например nvidia работает из коробки и этого в большинстве случаев достаточно. Поэтому сложно говорить про модель поддержки устройств. Подозреваю, что вновь установленные драйвера, как и в linux, работают по модульной схеме.

dmitry237 ★★★★
()
Ответ на: комментарий от sparkie

Если подумать, то в любом дистре намного больше дров, чем в голой винде дристяточке. Драйверов для всяких езернетов и вай фаев они напихали, а то смешно выходило раньше: семку поставил, а в интернет доступа нима, ибо драйверов нету 😂

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от LamerOk

Я винды этой вашей не видел очень давно. Когда последний раз щупал → надо было ставить. Это был где-то 2016 год.

Имеется ввиду как админ ПК, рабочий не в счет, там за него админ компании отвечал.

Zhbert ★★★★★
()
Последнее исправление: Zhbert (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

драйвер существует только на Linux а для винды не сделали новый драйвер под старое устройство

Бочонок рома этому сказочнику.

Под вендой есть драйвера практически любого компьютерного устройства ибо любое устройство делается для венды и исключительно для венды. Под линуксом - все на милость производителя, соизволит ли он. И соизволяют далеко не все.

В мире всяких телефонных arm железок все тоже странно - с одной стороны андроид это типа ядро линукса, с другой - драйвера основной массы железа вы хрена лысого получите. Да они будут зашиты в бинарную прошивку конкретно вашего телефона - но в свободном опенсорсном андроиде их нет не было и с вероятностью 99% никогда не будет.

Qui-Gon ★★★★★
()
Ответ на: комментарий от LamerOk

Ставил винду на ноут, вайфай, разумеется, не завёлся. Производитель в этой серии использовал три разных чипа. Пришлось скачать на линуксе все три и действовать методом подбора. Ну и успехов играть на стандартном драйвере для видяшки (но тут хотя бы не нужно иметь другой компьютер с интернетом, как в предыдущем случае). Да, остальные драйвера можно уже поставить через центр обновления, но без скачивания с сайта производителя, хотя бы чего-то, пока далеко.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от Qui-Gon

Под вендой есть драйвера практически любого компьютерного устройства ...

Есть у меня сканер Mustek Bear Paw 2448TA Pro, под актуальные версии Windows 10/11 драйверов нет, под Debian 12 работает идеально

Jurik_Phys ★★★★★
()
Ответ на: комментарий от Jurik_Phys

актуальной или не актуальной - это дело десятое, но драйвера под венду там есть.

есть много железяк да и софта которые работают под определенной версией венды - особенно в промышленных вещах. До сих пор XP стоит много где. Но это всеравно драйвер под венду.

В поддержке древности - верне в сохранении этой поддержки от версии к версии - у линукса лучше местами, из тех соображений что этих устройств сильно меньше чем под вендой и что поддержка драйверов пилится в рамках самого ядра. Ну как результат не особо что внутри поменяется но под новую версию апи ядра драйвер компилироваться научат. А в модели виндоуз основная масса драйверов делается таки не микрософтом а вендорами - и поставляется в бинарном формате. А вендор железа полностью теряет интерес к поддержке своего железа как только оно снимается с производства и уходит из гарантии.

Отсюда и имеем - в линуксе драйверов котик наплакал, но раз уж что попало в ядро то худо-бедно оно там будет существовать до морковкина заговения. В венде - любая железка идет с драйверами, ибо без драйверов венды ты ничего не продашь. Но производитель не имеет никакого интереса делать драйвера нового железа под старую венду и теряет интерес к поддержанию драйверов по окончании срока гарантии последнего проданного девайса.

Qui-Gon ★★★★★
()
Ответ на: комментарий от sparkie

Поставил я было десяточку другу на компьютер, сетевая realtek определилась и писала что есть соединение. Вот только ip адрес был 169.254., думал проблема с роутером, на котором openwrt и так его настраивал и так сбрасывал, всё не работает. А потом дай скачаю и поставлю драйверы руками. Заработало…

steemandlinux ★★★★★
()
Ответ на: комментарий от hobbit

Хороший вопрос. Трилогия же, как ни крути.

На самом деле не стоит искать тайных смыслов. Просто искал себе уникальный ник, makkammerer в некоторых местах был занят, решил добавить восьмёрку (о тройке даже как-то и не подумал).

mak8kammerer
() автор топика
Ответ на: комментарий от steemandlinux

Очевидно, что в этой вашей десяточке дрова стоят либо базовые, либо от M$.

Я, когда на работе занимался реверсом дров для устройств, которые поддерживались XP, но не поддерживались 10 и младше, много чего интересного нарыл.

sparkie ★★★★★
()
Ответ на: комментарий от Qui-Gon

актуальной или не актуальной - это дело десятое

Для теоретиков на форуме, конечно, десятое, а для владельцев сканера, который через пару лет после покупки превратился в тыкву дело очень даже не десятое.

П.С. с тем, что на момент выхода железа на рынок под Windows драйвера есть никто не спорит

Jurik_Phys ★★★★★
()

Потому что в линуксе бардак в ядре. Там с каждым релизом что то ломают, потом чинят, а потом опять ломают и опять чинят. Поэтому выход один, включать дрова в исходники ядра.

vasya_pupkin ★★★★★
()
Ответ на: комментарий от Jurik_Phys

а для владельцев сканера, который через пару лет после покупки превратился в тыкву дело очень даже не десятое.

Я впиндюрил на 11 винду дрова от висты для древнего мфу без проблем.

Виста 2007 год, 11 винда 2021 год, мфу 2005 год...

vasya_pupkin ★★★★★
()
Последнее исправление: vasya_pupkin (всего исправлений: 3)
Ответ на: комментарий от Jurik_Phys

Mustek Bear Paw 2448TA Pro

Чувак, оно 2003 года выпуска. Ты же наверняка пробовал на 64 битной винде и жалуешься, что под 64 бит дров нет.

vasya_pupkin ★★★★★
()
Последнее исправление: vasya_pupkin (всего исправлений: 2)
Ответ на: комментарий от Qui-Gon

Написал же - промышленные устройства. Какой нибудь принтер под виндой - это я понимаю. Ситуации очень разные бывают. Речь в основном про то что на десктоп и в embedded ситуации могут быть очень различными

А так да, бывают выкинут старый драйвер для Linux 2.6, и мне его приходилось чуть допиливать до современных ядер. Благо устройства не сложные, я как бы не спец, сложное не потянул бы. Речь про embedded

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)

В винде есть какое-то базовое ядро, тупо для того чтобы система запустилась. Всё остальное: звуковуха, гпу, принтеры, ставится дополнительно. В линуксе немного по другому.

Skullnet ★★★★★
()
Ответ на: комментарий от Qui-Gon

актуальной или не актуальной - это дело десятое, но драйвера под венду там есть.

Ну вот пример: у видеокарт AMD нет драйверов Rocm под винду. Ни под старую, ни под новую. Они нужны, если захочется работать с нейросетками, написанными на PyTorch с GPU AMD.

Можешь убедиться сам: https://pytorch.org/get-started/locally/ выбор Windows и Rocm приводит к надписи: «NOTE: ROCm is not available on Windows»

Вроде правда что-то пишут все же и под винду, но оно еще сырое и неюзабельное. Или конкретно PyTorch не апдейтнут под это. Так или иначе, нейросетки в винде будут работать только с Nvidia, если карта AMD - нужно использовать Linux.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)

Верно ли, что для корректной работы какого-либо устройства в Linux, его драйвер должен быть добавлен в ядро?

Про отличие уже сказал, про обязательность - далеко не факт. Куча дров есть на том же github доступных в сорцах, но отсутствующих в ядре на текущий момент или в дистре, который ты поставил, причин «почему так» может быть много. Есть различные инструменты которые поддерживают автосборку таких дров в момент обновления ядра в дистре. У меня так wifi работает - так что не всё так плохо.

Так же есть устройства, которыми занимается не ядро - принтера, сканеры, etc. Соответственно их драйвер в ядре не нужен и может быть и проприетарным и i386 и вообще времён мамонтов. Драйвер на мой принтер - i386 и скачан лет 10 назад 3-4 дистра назад, а выпущен вообще страшно представить когда, работает как часы.

vitus@vitus-home:/tmp$ dpkg --list | grep -i Brother
ii  brother-udev-rule-type1                    1.0.2                                   all          Brother udev rule type 1
ii  brscan-skey                                0.3.2-0                                 amd64        Brother Linux scanner S-KEY tool
ii  brscan4                                    0.4.11-1                                amd64        Brother Scanner Driver
ii  dcpt310pdrv:i386                           1.0.1-0                                 i386         Brother Inkjet Printer Driver 
vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 2)