- Изучите приведённые примеры взаимодействия с драйверами устройств.
- Выполнитеодноизследующихзаданий(вариантвзятьупреподавателя). Требуется реализовать драйвер, поддерживающий функции открытия, закрытия, записи, чтения и имеющий документацию. При записи в драйвер могут передаваться команды. Для этого нужно проводить общий анализ передаваемых в него строк, чтобы определять какие команды передаются. Одна из них direction [forward/back] – направление дальнейшего чтения из драйвера. Например последовательность команд с драйвером
echo “direction back” > /dev/chardev cp /dev/chardev text
приведёт к чтению строки или буфера драйвера в обратном порядке, если драйвер поддерживает работу со строками. То же для файлов.
a) Драйвер поддерживает чтение и запись сообщений в него через существующие утилиты POSIX:
echo “message text_message” > /dev/chardev
Хранит только одно сообщение. Поддерживает функцию удаления сообщения: msg_delete.
b) Драйвер поддерживает чтение и запись сообщений в него через пользовательский процесс: ioctl_set_msg(file_desc, msg). Поддерживает функцию удаления сообщения: ioctl_msg_delete.
c) Драйвер поддерживает чтение и запись файлов в него через
существующие утилиты POSIX: cat file > /dev/chardev
Хранит только один файл. Поддерживает функцию удаления файла: file_delete.
d) Драйвер поддерживает чтение и запись файла в него через пользовательский процесс: ioctl_write_file(file_desc, file_write_desc). Поддерживает функцию удаления сообщения: ioctl_file_delete.
e) Драйвер поддерживает чтение файла в формате ASCII и запись сообщений в него через существующие утилиты POSIX:
echo “message text_message” > /dev/chardev
Хранит только одно сообщение. Поддерживает функцию удаления сообщения: msg_delete.
f) Драйвер поддерживает чтение файла в формате ASCII и запись сообщений в него через пользовательский процесс: ioctl_set_msg(file_desc, msg). Поддерживает функцию удаления сообщения: ioctl_msg_delete.
Исходный код должен быть реализован в нескольких файлах. Следует обязательно разделить: документацию драйвера, функции инициализации и закрытия, функцию чтения, функцию записи, анализ команд.
Представить отчёт по лабораторной работе, содержащий задание, метод выполнения, возникшие сложности и пути их решения. Сделать собственные выводы о пользе или неэффективности реализованного механизма взаимодействия с драйвером.
Прикрепленные файлы: |
|
|---|---|
|
Администрация сайта не рекомендует использовать бесплатные работы для сдачи преподавателю. Эти работы могут не пройти проверку на уникальность. Узнайте стоимость уникальной работы, заполните форму ниже: Узнать стоимость |
|
Скачать файлы: |
|
|
|
