проект книги: "Модули ядра Linux"

Здесь будут размещаться ссылки и отзывы на интересные публикации по Linux

Модераторы: Olej, vikos

Правила форума
Запрещается помещать сообщения, не имеющие отношения к обсуждаемой статье. Все такие сообщения будут удаляться непосредствено после обнаружения.
Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 07 ноя 2012, 23:31

smt писал(а):Конечная цель - это да, модули для блочных устройств. В частности, карты расширения с интерфейсом PCI-E. Единственное, пока я изучаю теорию, т.к. нужно сформировать основную базу, понять, как всё строится.
Нужно как можно раньше брать и писать. Так, "через руки" многие вещи сразу становятся намного понятнее.
smt писал(а):Тогда уже будет понятнее и как упрощенную задачу ставить. И тогда уже буду обращаться, спасибо!
Нужно чётко разделить 2 задачи:
- код работы с PCI-E ... более-менее это описано в тексте;
- код работы с блочным устройством - для этого нужно писать модельную задачу;

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

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

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 08 ноя 2012, 03:46

Olej писал(а): Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства
Разработка модулей ядра Linux: Часть 25. Драйвер устройства. Окончание
Разработка модулей ядра Linux: Часть 26. Система /proc. Обзор возможностей и создание модуля
Разработка модулей ядра Linux: Часть 27. Система /proc. Особенности использования
Разработка модулей ядра Linux: Часть 28. Система /sys. Обзор
Разработка модулей ядра Linux: Часть 29. Система /sys. Cоздание модуля, использующего возможности /sys
Разработка модулей ядра Linux: Часть 30. Знакомство с сетевой подсистемой Linux
Разработка модулей ядра Linux: Часть 31. Структуры данных, используемые при работе с сетевой подсистемой
Разработка модулей ядра Linux: Часть 32. Принципы работы с сетевой подсистемой
Обновлено 07.11.2012
Разработка модулей ядра Linux: Часть 33. Виртуальный сетевой интерфейс
Разработка модулей ядра Linux: Часть 34. Протоколы сетевого и транспортного уровней

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 08 ноя 2012, 13:22

smt писал(а):Возник вопрос: вы пишете, что разработка драйверов блочных устройств детально в книге не рассматривается, и одной из причин этого является то, что эта тема хорошо описана в литературе. Но вот меня как раз интересуют блочные устройства. Подскажите, а какая литература освещает эти вопросы?
smt, я вас, кажется, слегка ввёл в заблуждение :oops: :
olej писал(а): Пройдитесь по порядку по этой теме от начала до конца - я находил и давал URL для скачивания почти всех этих книг.
1-я книга, с которой нужно начинать, естественно: «Linux Device Drivers», by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman, (3rd Edition), 2005, 2001, 1998 O’Reilly Media, Inc., ISBN: 0-596-00590-3.
Сделаны отличные переводы (чтоб быстрее пробегать) этой книги, насколько отличные (особенно PDF), что я об этом написал в отдельной теме: ядро Linux: знаменитая LDD3.
Глава 16, Блочные драйверы

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 08 ноя 2012, 13:50

smt писал(а):пока я изучаю теорию, т.к. нужно сформировать основную базу, понять, как всё строится. Тогда уже будет понятнее и как упрощенную задачу ставить.
smt писал(а):Возник вопрос: вы пишете, что разработка драйверов блочных устройств детально в книге не рассматривается, и одной из причин этого является то, что эта тема хорошо описана в литературе. Но вот меня как раз интересуют блочные устройства.
Хорошо, что напомнили.
А вторая причина (по секрету, про неё в книге не написано): когда готовился курс лекций для GlobalLogic, из которого потом выросла книга, "поджимали" часы лекционные, не укладывались в лимит + не было у меня готовых примеров кода ... а тема и вправду не самая-самая нужная. Вот так и осталась она в стороне :-(

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

P.S. Ну, а для обсуждений примеров и деталей кода завести новую специальную тему, где-то в Linux изнутри.
Вот я и сделаю такую тему. ;-)

P.S. Вот она ;-) : модуль ядра блочного устройства.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 08 ноя 2012, 16:48

Olej писал(а): 3. Трюки ... :lol: - это части от 36-й и далее... :
Почему я специально уделяю внимание публикациям на IBM? Ведь есть же здесь на сайте книга целиком + время от времени прикрепляются файлы обновлённых её редакций...

1. Во-первых, потому, что над статьями у IBM работает профессиональный редактор: поскольку он профессиональный (в IT), то мы вместе исправляем ошибки и неточности содержания, а поскольку он редактор, то он исправляет опечатки, грамматику, или плохо читаемые места (стилистику).

2. Во-вторых, т.к. идёт работа над текстами (см. п.1), то обязательно что-о добавляется и освежается. Не всегда эти улучшения относятся и в редакцию книги "одним куском" (не всегда руки доходят).

3. Опубликовано уже 34 части. Начиная с 36-й - начинается экзотика и хакинг :lol: (здесь порядок изложения изменён по отношению к книге). По этой части мелких изменений ещё больше, чем по предыдущим.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 09 ноя 2012, 10:48

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

smt
Интересующийся
Сообщения: 3
Зарегистрирован: 07 ноя 2012, 22:33
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение smt » 11 ноя 2012, 18:44

Olej, спасибо за подробную информацию. Вникаю.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 13 ноя 2012, 01:15

smt писал(а):спасибо за подробную информацию. Вникаю.
smt, ваш интерес к блочным устройствам подвиг меня провести небольшое исследование по написанию модулей блочных устройств в API современных версий ядра (3.0 и далее), потому, что большинство опубликованных описаний и примеров просто не компилируются с этим ядром (они писались для 2.6.29 - 2.6.31).
То что получалось, я по ходу комментировал вот здесь: модуль ядра блочного устройства.
Но там довольно рвано ("по ходу")...
На сегодня я считаю, что там всё понятно, работающие примеры отлажены, неясные вопросы выяснены... теперь сел оформить итоги в виде связного изложения:
- на сейчас уже готово 15 страниц OpenOffice,
- для меня это будет новый раздел в книгу "Модули ядра Linux" (очередная редакция ;-) )
- а для вас я выкину этот текст сюда в тему, пораньше, пока будет кроиться большая книга...
- думаю, что это вопрос 1-2-х дней.

Пользуйтесь. ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 13 ноя 2012, 03:56

Olej писал(а): smt, ваш интерес к блочным устройствам подвиг меня провести небольшое исследование по написанию модулей блочных устройств
...
- думаю, что это вопрос 1-2-х дней.
...
Пользуйтесь. ;-)
Получилось раньше срока.
Смотрите.
Вложения
BLOCK_DEV.odt
(62.72 КБ) 596 скачиваний

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: проект книги: "Модули ядра Linux"

Непрочитанное сообщение Olej » 14 ноя 2012, 00:11

Olej писал(а): Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства
Разработка модулей ядра Linux: Часть 25. Драйвер устройства. Окончание
Разработка модулей ядра Linux: Часть 26. Система /proc. Обзор возможностей и создание модуля
Разработка модулей ядра Linux: Часть 27. Система /proc. Особенности использования
Разработка модулей ядра Linux: Часть 28. Система /sys. Обзор
Разработка модулей ядра Linux: Часть 29. Система /sys. Cоздание модуля, использующего возможности /sys
Разработка модулей ядра Linux: Часть 30. Знакомство с сетевой подсистемой Linux
Разработка модулей ядра Linux: Часть 31. Структуры данных, используемые при работе с сетевой подсистемой
Разработка модулей ядра Linux: Часть 32. Принципы работы с сетевой подсистемой
Разработка модулей ядра Linux: Часть 33. Виртуальный сетевой интерфейс
Разработка модулей ядра Linux: Часть 34. Протоколы сетевого и транспортного уровней
Обновлено 13.11.2012
Разработка модулей ядра Linux: Часть 35.Дополнительные аспекты использования модулей ядра для создания сетевых интерфейсов

На этом заканчивается рассмотрение сетевых устройств, и полностью заканчивается весь цикл "Драйверы".

Ответить

Вернуться в «Публикации, книги и обсуждения»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя