Установка вашей тестовой системы

Предыдущая  Содержание  Следующая V*D*V

Начиная с этой главы, для демонстрации концепций программирования мы представляем примеры модулей. (Все эти примеры доступны на FTP сайте O’Reilly, адрес его можно найти в Главе 1.) Сборка, загрузка и модификация этих примеров является хорошим способом улучшить ваше понимание того, как драйверы работают и взаимодействуют с ядром. Модули примеров должны работать практически с любым ядром версии 2.6.x, в том числе и распространяемым поставщиками дистрибутивов. Тем не менее, мы рекомендуем вам получить "основное" ядро непосредственно с группы сайтов kernel.org и установить его на вашей системе. Ядра поставщиков могут быть сильно изменены внутри и отличаться от основных; иногда поставщики патчей могут изменять API ядра, видимый драйверами устройств. Если вы пишете драйвер, который должен работать на определённом дистрибутиве, вам наверняка придётся собрать и протестировать его с соответствующими ядрами. Но с целью изучения написания драйверов стандартное ядро лучше. Независимо от происхождения ядра, сборка модулей для 2.6.x требует, чтобы вы имели сконфигурированное и собранное дерево ядра на своей системе. Это требование является изменением относительно предыдущей версии ядра, когда текущего набора заголовочных файлов было достаточно. Модули в версии 2.6 связаны с объектными файлами в дереве исходных текстов ядра, в результате получается более надёжный загрузочный модуль, но это также требует, чтобы эти объектные файлы были доступны. Так что ваши первые шаги в деле - получить дерево исходных кодов ядра (либо из сети kernel.org или из пакета исходных кодов ядра вашего дистрибьютора), собрать новое ядро и установить его на вашей системе. По причинам, которые мы рассмотрим позже, жизнь, как правило, упрощается, если вы на самом деле работаете на том же самом ядре, для которого собираете модули, хотя это и не обязательно.

 

Предупреждение

Вы должны также подумать о том, где вы проводите с модулем экспериментирование, разработку и тестирование. Мы сделали всё от нас зависящее, чтобы сделать наши примеры модулей безопасными и корректными, но возможность ошибок всегда остаётся. Ошибки в коде ядра могут привести к прекращению процесса пользователя или, иногда, всей системы. Они обычно не создают более серьёзных проблем, таких, как повреждение диска. Тем не менее, желательно проводить ваши эксперименты с ядром на системе, которая не содержит данных, которые вы не можете позволить себе потерять, и которая не занята выполнением основных задач. Исследователи ядра обычно держат "жертвенную" систему для тестирования нового кода.

 

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

Предыдущая  Содержание  Следующая