The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Глава 6, Расширенные операции символьного драйвера

Глава 6, Расширенные операции символьного драйвера

Предыдущая  Содержание  Следующая V*D*V

Глава 6

 

В Главе 3 мы построили завершённый драйвер устройства, пользователь может писать в него и читать из него. Но реальное устройство обычно предоставляет больше возможностей, чем синхронные read и write. Теперь, когда мы оснащены средствами отладки на случай, если что-то пойдёт наперекосяк и твёрдым пониманием вопросов конкуренции, чтобы избегать проблем, мы можем смело идти вперед и создать более совершенный драйвер. В этой главе рассматриваются несколько концепций, которые вам необходимо понять, чтобы писать полнофункциональные драйверы символьных устройств. Мы начинаем с реализации системного вызова ioctl, который является общим интерфейсом, используемым для управления устройством. Затем мы разберём различные способам синхронизации с пользовательским пространством; к концу этой главы вы будете иметь хорошую идею, как помещать процессы в сон (и будить их), реализовывать неблокирующей ввод/вывод, а также информировать пользовательское пространство, когда ваши устройства доступны для чтения или записи. Мы заканчиваем просмотром, как в рамках драйверов реализовать несколько различных политик доступа к устройству. Идеи, обсуждаемые здесь, демонстрируются несколькими модифицированными версиями драйвера scull. Напомним ещё раз, всё осуществляется с использованием находящегося в памяти виртуального устройства, так что вы можете опробовать этот код самостоятельно без необходимости иметь какое-либо особенное аппаратное обеспечение. К настоящему времени вы, возможно, хотите запачкать ваши руки, работая с реальным оборудованием, но этого придётся подождать до Главы 9.

Предыдущая  Содержание  Следующая