Роберт Лав - Разработка ядра Linux

Тут можно читать онлайн Роберт Лав - Разработка ядра Linux - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Разработка ядра Linux
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2006
  • Город:
    Москва
  • ISBN:
    5-8459-1085-4
  • Рейтинг:
    3.67/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Роберт Лав - Разработка ядра Linux краткое содержание

Разработка ядра Linux - описание и краткое содержание, автор Роберт Лав, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.

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

Разработка ядра Linux - читать онлайн бесплатно полную версию (весь текст целиком)

Разработка ядра Linux - читать книгу онлайн бесплатно, автор Роберт Лав
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

insmod fishing

Удалить модуль можно аналогичным образом с помощью утилиты rmmod. Для этого от пользователя root нужно просто выполнить команду.

rmmod module

Например, удалить модуль управления удочкой можно следующим образом.

rmmod fishing

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

Для загрузки модуля в ядро с помощью утилиты modprobeнеобходимо от пользователя root выполнить команду

modprobe module [ module parameters ]

где параметр module— это имя модуля, который необходимо загрузить. Все следующие аргументы интерпретируются как параметры, которые передаются модулю при загрузке. Параметры модулей обсуждаются ниже в одноименном разделе.

Утилита modprobeпытается загрузить не только указанный модуль, но и все модули, от которых он зависит. Следовательно, это наиболее предпочтительный механизм загрузки модулей ядра.

Команда modprobeтакже может использоваться для удаления модулей из ядра. Для этого с правами пользователя root необходимо выполнить ее следующим образом.

modprobe Pr modules

где параметр modules— имя одного или нескольких модулей, которые необходимо удалить. В отличие от команды rmmod, утилита modprobeтакже удаляет и все модули, от которых указанный модуль зависит, если последние не используются.

В восьмом разделе страниц руководства операционной системы Linux приведен список других, менее используемых ключей этой команды.

Управление конфигурационными параметрами

В предыдущих разделах рассматривалась компиляция модуля управления удочкой при условии, что установлен конфигурационный параметр CONFIG_FISHING_POLE. Конфигурационные параметры рассматривались в предыдущих главах, а теперь давайте рассмотрим добавление нового параметра в продолжение примера модуля управления удочкой.

Благодаря новой системе компиляции ядра "kbuild", которая появилась в серии ядер 2.6, добавление нового конфигурационного параметра является очень простым делом. Все, что необходимо сделать, — это добавить новую запись в файл Kconfig, который отвечает за конфигурацию дерева исходных кодов ядра. Для драйверов этот файл обычно находится в том же каталоге, в котором находится и исходный код. Если код драйвера удочки находится в каталоге drivers/char/, то необходимо использовать файл drivers/char/Kconfig.

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

source drivers/char/fishing/Kconfig

в существующий файл Kconfig, скажем в файл drivers/char/Kconfig.

Конфигурационные записи в файле Kconfigдобавляются очень просто. Для модуля управления удочкой эта запись может выглядеть следующим образом.

config FISHING_POLE

tristate "Fish Master XL support"

default n

help

If you say Y here, support for the Fish Master XL 2000 Titanium

with computer interface will be compiled into the kernel

and accessible via

device node. You can also say M here and the driver

will be built as a

module named fishing.ko.

If unsure, say N.

Первая строка определяет, какой конфигурационный параметр создается. Обратите внимание, что префикс CONFIG_указывать не нужно, он добавляется автоматически.

Вторая строка указывает на то, что параметр может иметь три состояния ( tristate ), которые соответствуют следующим значениям: статическая компиляция в ядро ( Y), компиляция в качестве модуля ( M) или не компилировать драйвер вообще ( N). Для того чтобы запретить компиляцию кода, который соответствует конфигурационному параметру, в качестве модуля (допустим, что этот параметр определяет не драйвер. а просто некоторую дополнительную функцию) необходимо указать тип параметра boolвместо tristate. Текст в кавычках, который следует после этой директивы, определяет название конфигурационного параметра и будет отображаться различными утилитами конфигурации.

Третья строка позволяет указать значение этого параметра по умолчанию, который соответствует в данном случае запрещению компиляции.

Директива helpуказывает на то, что остальная часть текста будет интерпретироваться как описание данного модуля. Различные конфигурационные утилиты могут при необходимости отображать этот текст. Так как этот текст предназначен для пользователей и разработчиков, которые будут компилировать ядро, то он должен быть коротким и ясным. Обычные пользователя, скорее всего, не будут компилировать ядро, а сели будут, то тогда они должны понимать, что в этом описании сказано.

Существуют также и другие директивы файла конфигурации. Директива dependsуказывает на конфигурационные параметры, которые должны быть установлены перед тем, как может быть установлен текущий параметр. Если зависимости не будут удовлетворены, то текущий параметр будет запрещен. Например, можно указать следующую директиву.

depends on FISH_TANK

При этом текущий модуль не будет разрешен, пока не будет разрешен модуль, соответствующий конфигурационному параметру CONFIG_FISH_TANK.

Директива selectаналогична директиве depends, за исключением того, что она принудительно включает указанный конфигурационный параметр, если включается текущая конфигурационная опция. Ее не нужно использовать так же часто, как директиву depends, потому что она включает другие конфигурационные опции. Использовать ее так же просто.

select BAIT

В этом случае конфигурационный параметр CONFIG_BAITавтоматически активизируется при включении конфигурационного параметра CONFIG_FISHING_POLE.

Как для директивы select, так и для директивы dependsможно указывать несколько параметров с помощью оператора &&. В директиве dependsс помощью восклицательного знака перед параметром можно указать требование, что некоторый конфигурационный параметр не должен быть установлен. Например, следующая запись указывает, что для компиляции текущего драйвера необходимо, чтобы был установлен конфигурационный параметр CONFIG_DUMB_DRIVERSи не был установлен параметр CONFIG_NO_FISHING_ALLOWED.

depends on DUMB_DRIVERS && !NO_FISHING_ALLOWED

После директив tristateи boolможно указать директиву if, что позволяет сделать соответствующий параметр зависимым от другого конфигурационного параметра. Если условие не выполняется, то конфигурационный параметр не только запрещается, но и не будет отображаться утилитами конфигурации. Например, следующая строка указывает, что функция " Deep Sea Mode" будет доступна, только если разрешен конфигурационный параметр CONFIG_OCEAN.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Роберт Лав читать все книги автора по порядку

Роберт Лав - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Разработка ядра Linux отзывы


Отзывы читателей о книге Разработка ядра Linux, автор: Роберт Лав. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x