Обновить

Комментарии 5

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

ПО, обменивающееся данными с устройством через готовый механизм ОС.

Выглядит как определение драйвера, имхо

Драйвер не только обменивается данными, но и предоставляет сервис для конечного ПО в том виде, как это принято в данной конкретной ОС. Ну типа /sys/class/blablabla во всяких линуксах, набор функций API в baremetal (если считать это тоже как бы ОС) и т.п.

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

Я не великий специалист, конечно, но

предоставляет сервис для конечного ПО в том виде, как это принято в данной конкретной ОС

вот тут ошибочка закралась, имхо. Драйвер для конечного ПО никакого сервиса не предоставляет. Конечное ПО не в курсе, какой драйвер получает команды - оно с ОС общается.

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

А по поводу того что "пользовательское ПО" - тут по реализации вообще разницы нет, пользовательское оно или в ядре живет. Например, если нам понадобится драйвер USB-мыши написать, мы просто напишем буквально софтину, которая будет по некоторому таймеру опрашивать мышь по USB на тему "куда тебя там шевелили" и писать результат в /dev/mouse. Оно в линуксе прям настолько просто, драйвер - вполне обычная софтина.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации