Pull to refresh

Comments 7

Once again, we firstly provide the code, and then explain the example code.

Где же explanation?)

Приводить в пример scull драйвер - это, конечно, сильно, особенно, если вы не собираетесь объяснять, что там происходит. Почему бы не написать обычный "Hello World", как, например, в SimpleLinuxDriver? Есть даже статья, которая достаточно хорошо описывает, что, как и зачем делается, включая то, почему ваше устройство нужно создавать руками через mknod и как это сделать из LKM.

В старых версиях ядра таким же методом загружалось и удалялось само ядро

Что? Приведите, пожалуйста, ссылку на источник, где вы это нашли

и именно в драйвере определяется define/open/read/write

Интересная операция define, никогда о ней не слышал))

Например, совершая операцию “open” (открыть) с устройством под
управлением драйвера, я выполняю функцию scull_open, что эквивалентно
«перехвату» функции open в системном вызове.

Не совсем правда, никто ничего не перехватывает, VFS вызывает ->open(...) и в зависимости от файловой системы -> будут вызваны разные функции для разных FS, т.к. будут получены разные структуры file.

сначала читать книги, чтобы усвоить базовые концепции, а затем искать
информацию по конкретным деталям, когда дойдёт дело до практического
применения

IMHO, этот гайд применим для изучения абсолютно всего, что угодно.

UFO just landed and posted this here

https://gohalo.me/post/kernel-modules.html

Пофиксил.

Можно было бы что-то поприличнее выбрать для перевода.

Или, накрайняк, написать своё.

В частности:

mknod штука, конечно, работающая. Однако есть udev и с помощью конфигурационного файлика можно сделать назначение имени автоматически.

Кстати: MODULE_LICENSE и MODULE_AUTHOR не так важны. Здесь я не буду подробно их разбирать.

Вот это нужно перевести по-другому: "Что это такое - я не знаю и здесь я не буду их разбирать". На деле получается, что некоторые функции вам будут недоступны, если выбирается неподходящая лицензия.

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

Это просто апофеоз статьи. Можно сразу было написать: используйте ваш любимый поисковик, чтобы написать свой первый драйвер.

Что-то подобное я уже читал тут не так давно. И даже не один раз. Почему-то все авторы дальше hello-world не идут, хотя тема обширная и интересная.

Как мне кажется, лучше заменить...

  • "Once again, we firstly provide the code, and then explain the example code."

  • Ещё раз, мы сначала предоставляем код, а затем поясняем пример кода.

Sign up to leave a comment.