1

Vochatrak пишет:

То есть, в линуксе драйвер привязан к ядру напрямую? (я могу поставить два ядра и к одному из них драйвер, потом смогу переключаться между свободным  и проприетарным  драйверами, просто загружаясь с "нужного"?

в линуксе "драйверов" нет. Есть модули. Модули можно отключать/включать прямо на ходу(в общем случае).

В вашем случае модуль состоит из двух частей:
1. собственно закрытый модуль, он универсальный, подходит ко всем ядрам
2. прокладка между модулем и ядром. Эта прокладка тоже универсальная, но её надо собирать из исходников для каждого конкретного ядра. Если ядро самосборное, то и прокладку вам собирать. Для дистрибутивных ядер прокладку собирает дистрибьютор.

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

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

2

drBatty пишет:

в линуксе "драйверов" нет. Есть модули. Модули можно отключать/включать прямо на ходу(в общем случае).
В вашем случае модуль состоит из двух частей:
1. собственно закрытый модуль, он универсальный, подходит ко всем ядрам
2. прокладка между модулем и ядром. Эта прокладка тоже универсальная, но её надо собирать из исходников для каждого конкретного ядра. Если ядро самосборное, то и прокладку вам собирать. Для дистрибутивных ядер прокладку собирает дистрибьютор.
Конечно можно и два ядра поставить, и выбирать нужное при загрузке. Каждое ядро со своим набором модулей.

drBatty пишет:

в линуксе "драйверов" нет. Есть модули. Модули можно отключать/включать прямо на ходу(в общем случае).

Ошибаешься, драйвер он и в африке драйвер, хоть в Windows, хоть в Linux, FreeBSD или MacOS. Просто этот драйвер может быть включён при сборке ядра в образ ядра или собран модулем и этот модуль будет подгружаться по желанию.

drBatty пишет:

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

А теперь исправим:
В вашем случае драйвер состоит из двух частей:
1. собственно закрытый драйвер, он универсальный, подходит ко всем ядрам, но тут уже не к ядрам, а к поддерживаемым версиям xorg-server`а.
2. прокладка между драйвером и ядром. Эта прокладка тоже универсальная, но её надо собирать из исходников для каждого конкретного ядра. Если ядро самосборное, то и прокладку вам собирать. Для дистрибутивных ядер прокладку собирает дистрибьютор.
Конечно можно и два ядра поставить, и выбирать нужное при загрузке. Каждое ядро со своим набором модулей.

Так что не надо путать и называть драйвер модулем, модуль - это собранный модульно драйвер, который не включён в образ ядра при его сборке или, в случае проприетарного драйвера Nvidia, модуль - это драйвер, код которого поставляется отдельно от ядра и не может быть включён в ядро ввиду лицензионных ограничений. Даже в случае драйвера Nvidia модуль, хоть и является интерфейсовм между ядром и драйвером для xorg-server`а, так же предоставляет доступ к оборудовнию, видео карте, и так же управляет её работой, в частности управляет частотой графического ядра карты и видео памяти и как следствие режимами работы системы охлаждения, даже без запуска xorg-server`а. Так что модуль Nvidia это тоже драйвер.

3

kostik87 пишет:

Ошибаешься, драйвер он и в африке драйвер, хоть в Windows, хоть в Linux, FreeBSD или MacOS. Просто этот драйвер может быть включён при сборке ядра в образ ядра или собран модулем и этот модуль будет подгружаться по желанию

не ошибаюсь. Это ворос терминологии, та сущность, что в венде называется "драйвер", у нас называется "модуль".

kostik87 пишет:

Так что не надо путать и называть драйвер модулем

ладно, называйте модули драйверами, я не против.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

4 (06.09.2014 10:03:18 отредактировано kostik87)

drBatty пишет:

не ошибаюсь. Это ворос терминологии, та сущность, что в венде называется "драйвер", у нас называется "модуль".

Ты не понял, смотри, вот ты собрал ядро и включи в нём монолитно поддержку файловой системы, к пример ext4 и сетевых карт Atheros на atl1. Что это по твоему? Так вот ты включил в ядро драйверы ext4 и atl1, это уже ни как нельзя назвать модулем, это драйверы. Если ты их при сборке не стал включать в образ ядра, а включил их сборку внеше, то ты получил модули, в которых содержатся драйверы. Не путай, драйвер это и есть драйвер. Если он при сборке не включён в ядро, а собран отдельно, то это драйвер, собранный как подгружаемый модуль к ядру.

drBatty пишет:

ладно, называйте модули драйверами, я не против.

Не путай терминологию.

Ну и ещё, ты знаешь что такой major и minor номер у файла устройства и тип b, c и прочее? Так вот major - указывает на драйвер посредством которого ядро будет обменитьваться данными с соответствующим типом файла устройства, а minor указывает на экземпляр этого устройства.

Если опять считаешь, что я не прав, то сделай хотя бы выборку по логу сообщений ядра по слову "driver":

dmesg | grep -i driver

Ну или запусти

lspci -k

Ещё раз, не путай терминогологию.

5

kostik87, ладно, убедил.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

6

drBatty пишет:

kostik87, ладно, убедил.

А строго говоря - нет. Модуль - и есть модуль. Бывает включенным в ядро, бывает динамически (или другим способом) подгружемым. И это не обязательно драйвер железки (хотя, именно про них и разговор.) Да, это такие же модули.

7

mvt пишет:

А строго говоря - нет.

В общем случае, конечно, не все модули ядра содержат драйверы, некоторые добавляют прочий функционал, например в NETFILTER к модулем может добавляться поддержка NAT. Но drBatty утверждал, что в Linux нет драйверов, а есть только модули, что в корне неверно.

8 (06.09.2014 22:42:09 отредактировано mvt)

kostik87 пишет:
mvt пишет:

А строго говоря - нет.

В общем случае, конечно, не все модули ядра содержат драйверы, некоторые добавляют прочий функционал, например в NETFILTER к модулем может добавляться поддержка NAT. Но drBatty утверждал, что в Linux нет драйверов, а есть только модули, что в корне неверно.

У вас был просто спор о терминологии ab Док даже согласился с Вами ab. Модулем ядра может быть прога, управляющяя железкой? Пусть это будем модуль драйвера ab

9

mvt пишет:

Модулем ядра может быть прога, управляющяя железкой?

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

mvt пишет:

Пусть это будем модуль драйвера

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

mvt пишет:

У вас был просто спор о терминологии

По большей части да, нельзя же всё называть модулем.

mvt пишет:

Док даже согласился с Вами

Почему Док?

В любом случае я не собираюсь разводить полемику ещё и с вами, просто поставил точки на "И".

10

kostik87 пишет:
mvt пишет:

У вас был просто спор о терминологии

По большей части да, нельзя же всё называть модулем.

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

11

kostik87 пишет:

Док даже согласился с Вами

Почему Док?

В любом случае я не собираюсь разводить полемику ещё и с вами, просто поставил точки на "И".

да что спорить о терминологии-то? Это непродуктивно. Ну драйверы? Хорошо, пусть будут драйверы. Я говорил о том, что многие неправильно понимают термин "драйвер", а именно в "маздайном" смысле. Согласитесь, что в Windows™ термином "драйвер" называют несколько другую сущность. Отличие я и подчёркивал.

Т.е. по сути вы правы, но вас поймут неправильно.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

12

drBatty пишет:

Я говорил о том, что многие неправильно понимают термин "драйвер", а именно в "маздайном" смысле. Согласитесь, что в Windows™ термином "драйвер" называют несколько другую сущность. Отличие я и подчёркивал.
Т.е. по сути вы правы, но вас поймут неправильно.

Согласен.