Начиная с этой главы, мы представляем примеры модулей для демонстрации понятий программирования. (Все эти примеры доступны на FTP сайте издательства O'Reilly, как объяснено в первой главе.). Создание, загрузка и модификация этих примеров хороший способ лучше понять как работают драйвера и как они взаимодействуют с ядром.
Примеры модулей должны работать почти с любым ядром версии 2.6.x, включая те, что поставляются с дистрибутивом. Однако, мы рекомендуем использовать ядро с сайта kernel.org. Ядро в дистрибутиве может содержать большое количество патчей и довольно сильно отличаться от исходного. Иногда эти патчи могут менять API ядра, используемый драйверами. Если вы пишете драйвер, который должен работать на конкретном дистрибутиве, вы, конечно, будете собирать и тестировать его на конкретных ядрах, но для целей обучения стандартное ядро подходит лучше всего.
Вне зависимости от происхождения вашего ядра, для сборки модулей ядра 2.6.x вам необходимо сконфигурировать и собрать ядро. Это требование является отличительной чертой от более ранних версий, где было достаточно текущего набора заголовочных файлов. Модули для версии 2.6 связываются с объектными файлами, расположенными в дереве исходных кодов ядра. В результате мы имеем более надёжный загрузчик модулей, ценой требования доступности объектных файлов. Таким образом, первым делом вам необходимо получить дерево исходных кодов ядра (с сайта kernel.org или из пакета исходных кодов ядра дистрибутива), собрать новое ядро, и установить его в вашу систему. По причинам, которые станут ясны позже, жизнь становится заметно проще, если вы работаете на том же ядре, для которого собираете модули, хотя это требование не является обязательным.
Есть еще несколько соображений, которые нужно держать в уме, при разработке, тестировании и экспериментах с вашими модулями. Мы делали все чтобы наши примеры модулей были безопасными и правильными, но возможность ошибок всегда присутствует. Ошибки в коде ядра, могут привести к уничтожению пользовательского процесса или порой всей системы. Они обычно не создают проблем больших чем порча диска. Тем не менее, разумно делая эксперименты с вашим ядром в системе не должно быть данных, которые вы не можете позволить себе потерять и не осуществлять в ней какие-то существенные сервисы. Исследователи ядра обычно содержат «жертвенную» систему с целю тестирования нового кода.
Итак, если у вас нет подходящей системы со сконфигурированным и собранным деревом исходников ядра на диске, сейчас самое время её установить. А мы подождем. Раз вы выполнили это задание, значит вы готовы к началу игры с модулями ядра.
Переведено на сайте www.notabenoid.com
http://notabenoid.com/book/11832/38200
Внимание! Этот перевод, возможно, ещё не готов,
так как модераторы установили для него статус
"идёт перевод"
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.