Общее
- Книга Linux Device Drivers
- The Linux Kernel documentation
- Цикл статей на IBM developerWorks:
- Разработка модулей ядра Linux
- Разработка модулей ядра Linux: Часть 1. Первые шаги
- Разработка модулей ядра 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. Драйвер устройства. Множественное открытие устройства
- Разработка модулей ядра 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. Протоколы сетевого и транспортного уровней
- Разработка модулей ядра Linux: Часть 35. Дополнительные аспекты использования модулей ядра для создания сетевых интерфейсов
- Нестандартные сценарии использования модулей ядра
- Нестандартные сценарии использования модулей ядра: Часть 36. Операции c файлами
- Нестандартные сценарии использования модулей ядра: Часть 37. Создание новых процессов
- Нестандартные сценарии использования модулей ядра: Часть 38. Работа с UNIX-сигналами
- Нестандартные сценарии использования модулей ядра: Часть 39. Поиск символов
- Нестандартные сценарии использования модулей ядра: Часть 40. Оптимальный подход к реализации поиска символов в ядре
- Нестандартные сценарии использования модулей ядра: Часть 41. Выполнение системных вызовов
- Нестандартные сценарии использования модулей ядра: Часть 42. Подмена системного вызова
- Нестандартные сценарии использования модулей ядра: Часть 43. Добавление системного вызова
- Нестандартные сценарии использования модулей ядра: Часть 44. Скрытие системного вызова
- Нестандартные сценарии использования модулей ядра: Часть 45. Загрузка модуля ядра из программного кода
- Нестандартные сценарии использования модулей ядра: Часть 46. Загрузка модуля ядра из кода другого модуля
- Нестандартные сценарии использования модулей ядра: Часть 47. Подключаемые плагины
- Обслуживание периферии в коде модулей ядра
- Обслуживание периферии в коде модулей ядра: Часть 48. Анализ оборудования
- Обслуживание периферии в коде модулей ядра: Часть 49. Подсистема udev
- Обслуживание периферии в коде модулей ядра: Часть 50. PCI-устройства
- Обслуживание периферии в коде модулей ядра: Часть 51. Взаимодействие с PCI-устройствами
- Обслуживание периферии в коде модулей ядра: Часть 52. Использование PCI
- Обслуживание периферии в коде модулей ядра: Часть 53. Организация обмена данными с помощью DMA
- Обслуживание периферии в коде модулей ядра: Часть 54. USB-устройства
- Обслуживание периферии в коде модулей ядра: Часть 55. Взаимодействие с USB-устройствами в коде модулей ядра
- Обслуживание периферии в коде модулей ядра: Часть 56. Обработка прерываний
- Обслуживание периферии в коде модулей ядра: Часть 57. Регистрация обработчика прерываний
- Обслуживание периферии в коде модулей ядра: Часть 58. Создание “верхней половины” обработчика прерываний
- Обслуживание периферии в коде модулей ядра: Часть 59. Создание “нижней половины” обработчика прерываний
- Обслуживание периферии в коде модулей ядра: Часть 60. Тасклеты и очереди отложенных действий
- Обслуживание периферии в коде модулей ядра: Часть 61. Обработка прерываний, примеры и обсуждение
- Обслуживание периферии в коде модулей ядра: Часть 62. Работа с драйверами в пользовательском пространстве
- Инструменты программирования в ядре
- Инструменты программирования в ядре: Часть 63. Механизмы управления памятью
- Инструменты программирования в ядре: Часть 64. Распределители памяти
- Инструменты программирования в ядре: Часть 65. Работа с динамическими структурами памяти
- Инструменты программирования в ядре: Часть 66. Служба времени: базовые понятия
- Инструменты программирования в ядре: Часть 67. Служба времени: измерение интервалов
- Инструменты программирования в ядре: Часть 68. Служба времени: абсолютное время и задержки выполнения
- Инструменты программирования в ядре: Часть 69. Таймеры ядра
- Инструменты программирования в ядре: Часть 70. Параллелизм и синхронизация. Потоки ядра
- Инструменты программирования в ядре: Часть 71. Параллелизм и синхронизация. Новый интерфейс потоков
- Инструменты программирования в ядре: Часть 72. Параллелизм и синхронизация. Синхронизация в коде
- Инструменты программирования в ядре: Часть 73. Параллелизм и синхронизация. Блокировки. Часть 1
- Инструменты программирования в ядре: Часть 74. Параллелизм и синхронизация. Блокировки. Часть 2
- Отладка и тестирование модулей ядра
- Блочные устройства
- Разработка модулей ядра Linux