Предупреждения относительно разработки драйверов устройств

Драйверы устройств входят в состав ядра операционной системы и поэтому не ограничены в своих действиях. Создание или изменение драйверов устройств так же влияет на защиту, как и модификация самого ядра. К сожалению, пользователям часто требуется создавать или изменять драйверы устройств. Это следует делать очень осторожно.

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

Драйверы устройств не должны выполнять никаких операций, кроме простого управления устройствами. Драйверы устройств, созданные прежде всего для добавления новых системных вызовов в систему, включая многие драйверы псевдоустройств, таких как /dev/kmem, должны рассматриваться как новые системные вызовы и разрабатываться соответствующим образом. Рекомендации этого раздела относятся преимущественно к тем драйверам, которые являются стандартными администраторами устройств.

Прежде чем создавать новые драйверы устройств, вы должны изучить существующие стандартные драйверы. Основные действия по защите, осуществляемые драйверами устройств, - это действия, связанные с выполнением системных вызовов open и ioctl.