Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): 2.1.Настраиваем систему для тестов
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
2.1 Настраиваем систему для тестов. hardorsoft 21.10.10 в 11:43 |
|
|
Начиная с этой главы, мы представляем примеры модулей для демонстрации понятий программирования. (Все эти примеры доступны на FTP сайте издательства O'Reilly, как объяснено в первой главе.). Создание, загрузка и модификация этих примеров хороший способ лучше понять как работают драйвера и как они взаимодействуют с ядром. hardorsoft 21.10.10 в 11:44 |
||
|
Примеры кода будут работать почти со всеми ядрами серии 2.6.х, включая их дистрибутивы предоставляемые продавцами. Тем не менее, мы рекомендуем вам придерживаться «основной линии» ядра прямо с сетевого зеркала ketnel.org и установить его у себя на машине. Ядра продавцов, могут быть сильно залатанными (пропаченными) и отклоненными от основной линейки, иногда, патчи (заплатки) продавцов изменяют API ядра, что отражается на драйверах устройств. Если вы пишите драйвер который должен работать на каком то особенном дистрибутиве, вы, конечно, захотиет создать и протестировать его на соответствующем ядре. Но в целях изучения написания драйверов, лучше всего выбрать стандартное ядро. hardorsoft 21.10.10 в 11:44 Примеры модулей должны работать почти с любым ядром версии 2.6.x, включая те, что поставляются с дистрибутивом. Однако, мы рекомендуем использовать ядро с сайта kernel.org. Ядро в дистрибутиве может содержать большое количество патчей и довольно сильно отличаться от исходного. Иногда эти патчи могут менять API ядра, используемый драйверами. Если вы пишете драйвер, который должен работать на конкретном дистрибутиве, вы, конечно, будете собирать и тестировать его на конкретных ядрах, но для целей обучения стандартное ядро подходит лучше всего. ximen 21.10.10 в 16:30 |
||
|
Не взирая на источник ядра, для создаваемых модулей требуется чтобы у вас была система со сконфигурированным и собранным ядром версии 2.6. х. Это требование меняется для предыдущих версий ядра, текущий комплект заголовочных файлов достаточно. 2.6 Связанные модули ядра 2.6 указывают на файловые объекты найденные в дереве исходников ядра, в результате мы имеем более ясную загрузку модуля, но также требование чтобы эти файлы были доступны. Первым делом получите исходное дерево ядра (можно с сайта kernel.org, а можно и от вашего поставщика пакета ядра), соберите новое ядро, и установите его на вашу систему. Причина по которой стоит это сделать станет ясна позже, жить обычно проще если в настоящее время запущено целевое ядро когда вы создаете модуль, (through) это не требование. hardorsoft 21.10.10 в 11:44 Вне зависимости от происхождения вашего ядра, для сборки модулей ядра 2.6.x вам необходимо сконфигурировать и собрать ядро. Это требование является отличительной чертой от более ранних версий, где было достаточно текущего набора заголовочных файлов. Модули для версии 2.6 связываются с объектными файлами, расположенными в дереве исходных кодов ядра. В результате мы имеем более надёжный загрузчик модулей, ценой требования доступности объектных файлов. Таким образом, первым делом вам необходимо получить дерево исходных кодов ядра (с сайта kernel.org или из пакета исходных кодов ядра дистрибутива), собрать новое ядро, и установить его в вашу систему. По причинам, которые станут ясны позже, жизнь становится заметно проще, если вы работаете на том же ядре, для которого собираете модули, хотя это требование не является обязательным. ximen 21.10.10 в 13:46 |
||
|
Есть еще несколько соображений, которые нужно держать в уме, при разработке, тестировании и экспериментах с вашими модулями. Мы делали все чтобы наши примеры модулей были безопасными и правильными, но возможность ошибок всегда присутствует. Ошибки в коде ядра, могут привести к уничтожению пользовательского процесса или порой всей системы. Они обычно не создают проблем больших чем порча диска. Тем не менее, разумно делая эксперименты с вашим ядром в системе не должно быть данных, которые вы не можете позволить себе потерять и не осуществлять в ней какие-то существенные сервисы. Исследователи ядра обычно содержат «жертвенную» систему с целю тестирования нового кода. hardorsoft 22.10.10 в 00:05 |
||
|
Итак, если у вас нет подходящей системы со сконфигурированным и собранным деревом исходников ядра на диске, сейчас самое время её установить. А мы подождем. Раз вы выполнили это задание, значит вы готовы к началу игры с модулями ядра. hardorsoft 22.10.10 в 00:06 |
