The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Представлен kmod, новый инструментарий управления модулями ядра Linux

16.12.2011 14:14

Анонсирован первый выпуск проекта kmod, в рамках которого началось формирование нового набора утилит и библиотеки для управления загрузкой модулей ядра Linux. Ключевым отличием от утилит, подобных modprobe и insmod, является использование в качестве основы библиотеки libkmod, функции которой можно использовать в любых других программах. Использование библиотеки позволит избавить от необходимости вызова внешних утилит такие приложения, как udev, инсталляторы, утилиты работающие на раннем этапе загрузки. Код всех компонентов нового инструментария распространяется под лицензией GPLv2.

В десктоп-дистрибутивах и некоторых встраиваемых системах на этапе загрузки для проверки доступного оборудования используется udev, который создаёт устройства в директории /dev и на основании содержимого псевдофайловой системы /sys загружает необходимые для обеспечения взаимодействия с оборудованием модули ядра. Так как модулей загружается достаточно много, утилита modprobe может вызываться сотни раз, при этом не каждый запуск modprobe приводит к загрузке модуля так как модуль может уже быть загружен. Подобные действия приводят к большой паразитной нагрузке и замедляют процесс загрузки. Используя libkmod все операции по проверке активности и загрузке модулей могут производиться через обычные библиотечные вызовы, занимая при этом минимум ресурсов, так как файлы конфигурации и индексы со списком имеющихся в наличии модулей будут разобраны один раз, а не при каждом обращении к утилите modprobe.

В настоящее время в kmod входит реализация утилит kmod-lsmod, kmod-insmod, kmod-rmmod, kmod-modprobe, в которых обеспечена совместимость и реализована функциональность, аналогичная утилитам lsmod, insmod, rmmod и modprobe. Библиотека libkmod предоставляет API для вывода уже загруженных ядром модулей; получения информации о заданном модуле, включая такие данные как зависимости, размер и позиция в адресном пространстве ядра; поиска модулей по заданным критериям (алиас, имя модуля и путь); загрузки модулей с передачей параметров конфигурации; удаления модулей; использования чёрных списков; получения данных о поддерживаемых модулем опциях; управления индексом с данными о модулях. В настоящее время разработчики kmod обсуждают вопрос использования libkmod с мэйнтейнерами проектов udev и systemd.

  1. Главная ссылка к новости (http://www.politreco.com/2011/...)
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: module, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (34) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.3, Прохожий (??), 14:51, 16/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А modinfo ?
     
  • 1.48, kuku (?), 16:49, 16/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Так как модулей загружается достаточно много, утилита modprobe может
    >вызываться сотни раз, при этом не каждый запуск modprobe приводит к
    >загрузке модуля так как модуль может уже быть загружен. Подобные
    >действия приводят к большой паразитной >нагрузке и замедляют
    >процесс загрузки.

    Хорошо.
    вводное: Каждое устройство имеет PCI идентификатор.
             Этому ID соответствует модуль, который
             может зависить от других модулей.
             Либо он есть, либо его нету.
             Полагаю что имя модуля уникально.
    И как она может вызываться "сотни" раз ?
    Если вызывается, по списку загруженных модулей
    пройтись не судьба ?

    Дальше.
    Для ускорения загрузки Linux конфигурация и
    компиляция ядра уже не нужна ?

    А вообще, одебилить всё можно, но не дебилам
    как бы от этого не легче.

    От этого Linux более конкурентноспособным
    не станет.
    Для серверов это нахер ненадо.

    А тем, кому нравится перезагружать Linux,
    типа "I like to move it, move it", пусть
    выберут что-нибудь другое.

     
     
  • 2.54, Ваня (?), 16:59, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • –16 +/
    При загрузке драйвер может получать список драйверов. Напр. (абстрактно) драйвер кэша диска проверяет что загружен драйвер диска, или драйвер брандмауэра проверяет наличие хотя бы одного драйвера сетевой карты, и т.п.

    Как это делать? Сейчас через вызов утилиты и парсинг текстовика. Хмм... 21 век вроде...

    Теперь будет API, который будет возвращать структуры и возможно (не знаю) даже энумератор, как в Windows, сокращающий нагрузку и затраты памяти (по сути энумератор - ссылка на элемент существующего L1, поэтому при запросе достаточно найти первый элемент, соответствующий отбору, а не выбирать весь список).

    Драйверов много и вызовов тоже много.

     
     
  • 3.56, Lain_13 (?), 17:01, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Он предложил конфигурировать и собирать ведро на каждой конкретной железяке. 21 век вроде на дворе… Дальше можно было его не читать и даже не отвечать.

     
  • 2.62, Hugo Reyes (ok), 17:28, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    есть системы, где скорость загрузки критична.
    вполне уже сейчас можно применять linux с RT-патчами в системах управления, когда важна скорость восстановления системы при различных аппаратных сбоях и случайных ошибках. Рестарт должен длиться доли секунды.
     
     
  • 3.71, arisu (ok), 18:41, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Рестарт должен длиться доли секунды.

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

     
     
  • 4.83, Аноним (-), 23:48, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > и там не используют кастомное ядро без всяких удевов, а ставят полновесную
    > универсальную систему?

    Ну так будет поменьше плясок с бубнами и в таких случаях. Или тебе нравится когда система работает в стиле виндус висты, загружаясь 5 минут?

     
     
  • 5.95, arisu (ok), 11:20, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну так будет поменьше плясок с бубнами и в таких случаях.

    в каких? чего «меньше»? хинт: система, неоптимайзнутая производителем под его железо, называется «халтура».

     
     
  • 6.97, cjayho (?), 12:59, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>хинт: система, неоптимайзнутая производителем под его железо, называется «халтура».

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

     
     
  • 7.99, cjayho (?), 13:00, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    *пЕрекомпилировав
     
  • 7.101, Aleksey Salow (ok), 13:12, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >>>хинт: система, неоптимайзнутая производителем под его железо, называется «халтура».
    > Вы это разработчикам netBSD скажите, которые годами пилят архитектуру своей оси так
    > чтобы ее можно было запустить на любом поддерживаемом компилятоом железе без
    > изменения кода, только прекомпилировав под соотв. платформу.

    Кто вам такое сказал? Там есть прослойка аналогичная HAL в винде которую и нужно писать под конкретное железо чтобы можно был взлететь. Компиляция спасёт только если кто-то уже постарался до вас.

     
  • 4.93, Аноним (-), 08:22, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    В потребительских девайсах - да, полновесную универсальную систему. И да, там нажна скорость загрузки.
     
     
  • 5.96, arisu (ok), 11:21, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В потребительских девайсах - да, полновесную универсальную систему. И да, там нажна
    > скорость загрузки.

    и RT-ось, угу. посколькув оригинале ляпнул чушь, начал съезжать. abtreten!

     
  • 5.100, Aleksey Salow (ok), 13:09, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > В потребительских девайсах - да, полновесную универсальную систему. И да, там нажна
    > скорость загрузки.

    А можно пример этих самых потребительских девайсов?

     
  • 3.92, Aleksey Salow (ok), 04:34, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё наши деды поняли что там где это критично проще продублировать (3, 4 системы в резерве) чем городить непонятно что.
     
     
  • 4.104, asipin (??), 01:03, 18/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Ещё наши деды поняли что там где это критично проще продублировать (3,
    > 4 системы в резерве) чем городить непонятно что.

    И лучше разных.

     
  • 2.82, Аноним (-), 23:46, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Для серверов это нахер ненадо.

    Зато в куче других мест - очень даже надо. Холодильники, телефоны и прочие точки доступа должны стартовать настолько быстро насколько возможно.

     
     
  • 3.103, anonymous (??), 16:25, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/

    В холодильниках, телефонах и прочих embedded, производитель собирает систему под конкретный девайс и обходится без всяких udev, как было сказано выше. Система стартует мгновенно, просто загрузив ядро.

     

  • 1.66, lucentcode (ok), 18:26, 16/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Давно пора. Хорошо, что такое важное новшество всё же запилили.
     
     
  • 2.72, arisu (ok), 18:42, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Давно пора. Хорошо, что такое важное новшество всё же запилили.

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

     
     
  • 3.87, Аноним (-), 00:36, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > есть мнение, что не такое уж оно и важное, раз до сих
    > пор вполне нормально без него жили.

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

     
     
  • 4.110, Аноним (-), 20:15, 21/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    нет, на 640К оперативки
     
  • 3.111, lucentcode (ok), 05:52, 07/01/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Давно пора. Хорошо, что такое важное новшество всё же запилили.
    > есть мнение, что не такое уж оно и важное, раз до сих
    > пор вполне нормально без него жили.

    С сегодняшнего дня этот инструментарий установлен у меня на машине, люблю всё новое.


     

  • 1.75, Аноним (-), 19:31, 16/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Использование библиотеки позволит избавить от необходимости вызова внешних утилит

    А что, execve(2) у нас уже дорогой стал? Объясните, зачем линковаться динамически с библиотекой? Что, оверхэд у libc такой злой, что тратится куча времени?

    modprobe/insmod, ясен пень, после первых запусков будут в кэше, mmap и готово. А то и раньше — заранее readahead положит.

    Не осознаю.

     
     
  • 2.81, Аноним (-), 22:34, 16/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Начало моего сообщения под номером 8 80 Я думаю дело в гибкости системы То чт... текст свёрнут, показать
     
     
  • 3.109, kuku (?), 14:53, 20/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошее замечание.

    Отдельный механизм работы с модулями ?

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

     
  • 2.84, Аноним (-), 00:07, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А что, execve(2) у нас уже дорогой стал?

    Дороже просто вызова в либу. Загрузка с диска бинаря, его парсинг, загрузка секций, педалинг релокейшнов и инициализация переменных, вгрузка всех потребных бинарю либ если кого еще нет в памяти, etc. В 100500 раз больше действий. Если в случае опача половина действий скипается т.к. бинарь уже висел в памяти, то всякие там modprobe - не демон, в памяти его никто не держит.

     
  • 2.85, Аноним (-), 00:09, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А то и раньше — заранее readahead положит.

    Вы так говорите как будто на диске оно лежит в виде дампа который достаточно в оперативку вгрузить. Агащаз.

     
     
  • 3.86, Аноним (-), 00:30, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Он в памяти. Если друг за другом запускается, то вся загрузка, разбор бинарника и динамическое связывание пройдет один раз (в первый).
     
     
  • 4.88, Аноним (-), 00:38, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Он в памяти. Если друг за другом запускается, то вся загрузка, разбор
    > бинарника и динамическое связывание пройдет один раз (в первый).

    Только при условии что оно не успеет выгрузиться из памяти во всех копиях. А поскольку это не демон - очень даже успеет и будет каждый раз парситься/догружать + свой конфиг парсить и прочий бред. Так что в целом направление мысли у этих кексов правильное.

     
     
  • 5.89, Аноним (-), 01:17, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Только при условии что оно не успеет выгрузиться из памяти во всех копиях. А поскольку это не демон - очень даже успеет и будет каждый раз парситься/догружать + свой конфиг парсить и прочий бред. Так что в целом направление мысли у этих кексов правильное.

    Убеждаюсь в очередной раз что люди педалируют те идеи которые им понятны. Однако, скорость исполнения, загрузка/выгрузка - это в совокупности лишь второстепенные вещи по отношению к проекту. Вы вдумайтесь насколько часто сегодня в обычной (не загрузка и запуск/перезапуск служб) работе системы этот функионал востребован (случами разработки и отладки/тестирования модулей ядра или ядра можно и вовсе пренебречь).

     
     
  • 6.90, Аноним (-), 02:14, 17/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Я согласен что это не сильно приоритетное занятие и в списке насущных проблем оно хренадцатым номером, но если кому охота это написать - пусть будет :)
     

  • 1.105, Стас (??), 12:04, 18/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мало библиотек, надо ещё добавить. Ну кому интересно, пусть пользуются, чего там. А так библиотека представляет чисто спортивный интерес сделать скорость загрузки linux сравнимой со скоростью загрузки dos. )
     
  • 1.112, Гость (?), 06:33, 12/12/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    и будущим вирусам будет легче жить с kmod
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру