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

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

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

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

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

Непрочитанное сообщение Olej » 06 сен 2012, 19:26

Olej писал(а):Адрес 1-й части: http://www.ibm.com/developerworks/ru/li ... index.html
Разработка модулей ядра Linux: Часть 2. Анализ полученных результатов
Разработка модулей ядра Linux: Часть 3. Экспорт символов
Разработка модулей ядра Linux: Часть 4. Ядро и модуль
Разработка модулей ядра Linux: Часть 5. Системные вызовы
Разработка модулей ядра Linux: Часть 6. Модули ядра vs пользовательские процессы
Разработка модулей ядра Linux: Часть 7. Анализ выполнения системного вызова
Разработка модулей ядра Linux: Часть 8. Интерфейсы модуля для взаимодействия с ядром
Разработка модулей ядра Linux: Часть 9. Интерфейсы модуля для взаимодействия с пользовательскими процессами
Разработка модулей ядра Linux: Часть 10. Инсталляция модулей
Разработка модулей ядра Linux: Часть 11. Использование параметров при загрузке модуля
Разработка модулей ядра Linux: Часть 12. Инструментарий разработчика модулей ядра
Разработка модулей ядра Linux: Часть 13. Использование текстовой консоли в качестве среды для разработки модулей ядра
Разработка модулей ядра Linux: Часть 14. Компилятор GCC
Разработка модулей ядра Linux: Часть 15. Ассемблерные возможности компилятора GCC
Разработка модулей ядра Linux: Часть 16. Сборка модулей. Основные принципы
Разработка модулей ядра Linux: Часть 17. Сборка модулей. Дополнительные возможности
Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
06.09.2012:
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства

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

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

Непрочитанное сообщение Olej » 12 сен 2012, 16:27

Olej писал(а):Адрес 1-й части: http://www.ibm.com/developerworks/ru/li ... index.html
Разработка модулей ядра Linux: Часть 2. Анализ полученных результатов
Разработка модулей ядра Linux: Часть 3. Экспорт символов
Разработка модулей ядра Linux: Часть 4. Ядро и модуль
Разработка модулей ядра Linux: Часть 5. Системные вызовы
Разработка модулей ядра Linux: Часть 6. Модули ядра vs пользовательские процессы
Разработка модулей ядра Linux: Часть 7. Анализ выполнения системного вызова
Разработка модулей ядра Linux: Часть 8. Интерфейсы модуля для взаимодействия с ядром
Разработка модулей ядра Linux: Часть 9. Интерфейсы модуля для взаимодействия с пользовательскими процессами
Разработка модулей ядра Linux: Часть 10. Инсталляция модулей
Разработка модулей ядра Linux: Часть 11. Использование параметров при загрузке модуля
Разработка модулей ядра Linux: Часть 12. Инструментарий разработчика модулей ядра
Разработка модулей ядра Linux: Часть 13. Использование текстовой консоли в качестве среды для разработки модулей ядра
Разработка модулей ядра Linux: Часть 14. Компилятор GCC
Разработка модулей ядра Linux: Часть 15. Ассемблерные возможности компилятора GCC
Разработка модулей ядра Linux: Часть 16. Сборка модулей. Основные принципы
Разработка модулей ядра Linux: Часть 17. Сборка модулей. Дополнительные возможности
Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства
11.09.2012:
Разработка модулей ядра Linux: Часть 25. Драйвер устройства. Окончание

Всё!
На этом заканчивается большой тематический раздел.

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

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

Непрочитанное сообщение Olej » 03 окт 2012, 18:18

Olej писал(а): 11.09.2012:
Постояли немного и дальше пошли :lol:
Разработка модулей ядра Linux: Часть 26. Система /proc. Обзор возможностей и создание модуля
Разработка модулей ядра Linux: Часть 27. Система /proc. Особенности использования

Поскольку процесс публикаций на IBM, мягко говоря, не быстрый ... :lol:, то материал для них а). перекроился + б). изрядно дополнился (особенно примерами кода) по сравнению с тем, что первоначально (11.2011) было выложено здесь на сайте.

И поменялась радикально сама структура текста (я решил не следовать структуре и порядку изложения книги, как она выложена здесь на сайте).
Теперь он (у IBM) отчётливо разделяется на 3 (пока ... 3-й ещё и не опубликован) цикла:

1. Общие вопросы техники программирования модулей ядра ("хочешь писать модуль - делай так"), части 1-17:
Olej писал(а): Адрес 1-й части: http://www.ibm.com/developerworks/ru/li ... index.html
Разработка модулей ядра Linux: Часть 2. Анализ полученных результатов
Разработка модулей ядра Linux: Часть 3. Экспорт символов
Разработка модулей ядра Linux: Часть 4. Ядро и модуль
Разработка модулей ядра Linux: Часть 5. Системные вызовы
Разработка модулей ядра Linux: Часть 6. Модули ядра vs пользовательские процессы
Разработка модулей ядра Linux: Часть 7. Анализ выполнения системного вызова
Разработка модулей ядра Linux: Часть 8. Интерфейсы модуля для взаимодействия с ядром
Разработка модулей ядра Linux: Часть 9. Интерфейсы модуля для взаимодействия с пользовательскими процессами
Разработка модулей ядра Linux: Часть 10. Инсталляция модулей
Разработка модулей ядра Linux: Часть 11. Использование параметров при загрузке модуля
Разработка модулей ядра Linux: Часть 12. Инструментарий разработчика модулей ядра
Разработка модулей ядра Linux: Часть 13. Использование текстовой консоли в качестве среды для разработки модулей ядра
Разработка модулей ядра Linux: Часть 14. Компилятор GCC
Разработка модулей ядра Linux: Часть 15. Ассемблерные возможности компилятора GCC
Разработка модулей ядра Linux: Часть 16. Сборка модулей. Основные принципы
Разработка модулей ядра Linux: Часть 17. Сборка модулей. Дополнительные возможности
2. Как пишутся драйвера в Linux (вопросов модуля и взаимодействия с системой здесь не касаемся), сюда кроме драйверов устройств (/dev) отошло и всё, что касается а)./proc, б)./sys, в).сетевой подсистемы - части 18-35 (пока выложено только 27):
Olej писал(а): Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства
Разработка модулей ядра Linux: Часть 25. Драйвер устройства. Окончание
Разработка модулей ядра Linux: Часть 26. Система /proc. Обзор возможностей и создание модуля
Разработка модулей ядра Linux: Часть 27. Система /proc. Особенности использования
3. Трюки ... :lol: - это части от 36-й и далее... :
- операции привычные из юзерспейс из модуля: запуск нового процесса, чтение-запись в файловую систему, посылка и приём UNIX сигналов...
- выполнение кода системных вызовов, но прямо из модуля ядра;
- использование не экспортируемых (всех существующих!) функций ядра из модуля;
- создание (динамически, без компиляции ядра) собственного нового системного вызова;
- подмена существующих системных вызовов;
- ... и ещё ряд мелочей в ядре.
(Все достаточно обновлённые версии текстов и примеров выложены здесь на сайте, но не в HTML версии для чтения, а в более поздних вложениях для скачивания).

Вот такая изменённая программа изложения для IBM.

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

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

Непрочитанное сообщение Olej » 19 окт 2012, 10:42

Olej писал(а): 2. Как пишутся драйвера в Linux (вопросов модуля и взаимодействия с системой здесь не касаемся), сюда кроме драйверов устройств (/dev) отошло и всё, что касается а)./proc, б)./sys, в).сетевой подсистемы - части 18-35 (пока выложено только 27):
Olej писал(а): Разработка модулей ядра Linux: Часть 18. Модуль как драйвер. Теоретические аспекты
Разработка модулей ядра Linux: Часть 19. Модуль как драйвер. Пример реализации
Разработка модулей ядра Linux: Часть 20. Модуль как драйвер. Динамические устройства.
Разработка модулей ядра Linux: Часть 21. Модуль как драйвер. Управление устройством с помощью ioctl().
Разработка модулей ядра Linux: Часть 22. Создание драйвера устройства с поддержкой асинхронного ввода-вывода.
Разработка модулей ядра Linux: Часть 23. Тестирование драйвера устройства с поддержкой асинхронного ввода-вывода
Разработка модулей ядра Linux: Часть 24. Драйвер устройства. Множественное открытие устройства
Разработка модулей ядра Linux: Часть 25. Драйвер устройства. Окончание
Разработка модулей ядра Linux: Часть 26. Система /proc. Обзор возможностей и создание модуля
Разработка модулей ядра Linux: Часть 27. Система /proc. Особенности использования
Ещё 2 части добавилось (17.10):
Разработка модулей ядра Linux: Часть 28. Система /sys. Обзор
Разработка модулей ядра Linux: Часть 29. Система /sys. Cоздание модуля, использующего возможности /sys

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

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

Непрочитанное сообщение Olej » 26 окт 2012, 17:55

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

28 авг 2012 здесь же в этой теме я прикреплял уже файлы:
Olej писал(а): Выкладываю достаточно свежую редакцию текста + архив примеров, подогнанный под этот текст:
редакция 3.162
21.07.2012г.
Теперь объём рукописи составляет 344 страниц формата OpenOffice, а это почти вдвое больше того, с чего начинался этот текст, и как он выставлен в HTML для чтения на сайте.
Вот ссылки на эти файлы:
BOOK_KERN_162.odt
Kexamples.162.tgz
1-я ссылка здесь (и ниже) - это сам текст, а 2-я - это архив примеров программного кода к этому тексту.

Следующий источник - на Yandex:
http://yadi.sk/d/nSdGZtXBTnyL (BOOK_KERN_162.odt)
http://yadi.sk/d/nQKUAUweTnyh (Kexamples.162.tgz)

Ещё один источник - на Google:
https://docs.google.com/open?id=0B__cqm ... Ws2NXU3X2s (BOOK_KERN_163.odt)
https://docs.google.com/open?id=0B__cqm ... XppNm9QVHc (Kexamples.162.tgz)

Это не один и тот же набор файлов: на Yandex немного более поздний, чем здесь в форуме, а на Google чуть более поздний, чем на Yandex. Но изменения между ними касались только стилистических правок, исправления опечаток и т.п. Поэтому я могу считать их одной и той же редакцией.

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

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

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

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

off-topic: ;-)
Olej писал(а): Мне очень повезло с этим делом:
- крупная международная софтверная компания Global Logic заказала провести занятия с их работниками...
- результатом которых и есть вот этот обсуждаемый текст...
Компания Global Logic (по инициативе которой и для которой первоначально писалась эта книга), большая и лучшая часть разработческого потенциала которых находится в Украине, вошла в мировые TOP-100 2012 года, практически по всем отраслевым номинациям: The 2012 GS100 Companies

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

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

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

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
Двинулись дальше...
01.11.2012 - группа статей относительно сетевой подсистемы Linux:

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

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

Непрочитанное сообщение smt » 07 ноя 2012, 22:42

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

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

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

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

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

Операции с блочными устройствами описаны (более-менее) с том списке литературы в конце текста.
Пройдитесь по порядку по этой теме от начала до конца - я находил и давал URL для скачивания почти всех этих книг.

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

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

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

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

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

Ответить

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

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

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