The OpenNET Project / Index page

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

Представлен LDT, шаблон для упрощения разработки Linux-драйверов

14.11.2012 10:24

Константин Шулюпин, создатель интерактивной карты ядра Linux, автор проекта Super Fast Boot и разработчик драйверов для чипов DaVinci, представил проект LDT (Linux Driver Template), в рамках которого подготовлен универсальный шаблон для быстрого создания драйверов устройств для ядра Linux. LDT может быть полезен для изучения методов написания драйверов начинающими разработчиками или в качестве отправной точки для создания новых драйверов.

Шаблон предоставляет средства для оформления модулей ядра, драйверов для символьных и блочных устройств, аппаратных и программных loopback-устройств, включает примеры использования файловых операций, очередей kfifo, обработки прерываний, tasklet, потоков kthread, таймеров, псевдо ФС configfs, Device Model, трассировщика ftracer и других подсистем ядра.

  1. Главная ссылка к новости (https://lkml.org/lkml/2012/11/...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35325-driver
Ключевые слова: driver, linux, kernel
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 10:33, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    И это хорошо. Особенно если вспомнить Касперски, который говорил, что дизасемблируя драйвера под Виндоус, создается впечатление, что подавляющее большинство из них сделано на основе единственного примера из Windows Driver Kit (WDK)
     
     
  • 2.2, ram_scan (?), 10:36, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Еще был DriverStudio.

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

     
  • 2.3, anonymous (??), 11:02, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А что в этом плохого?
     
     
  • 3.6, Аноним (-), 11:26, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да автор комментария вроде и не говорил, что это плохо. Наоборот привел пример, что при наличии хорошего примера процесс значительно упрощается.
     
  • 3.25, другой аноним (?), 10:31, 16/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А что в этом плохого?

    Прочти внимательно первое предложение поста, на который ты ответил

     

  • 1.4, добрый дядя (?), 11:08, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Лучше бы еще и визард на Qt сделал, чтобы было как в WinDriver - указал параметры, расставил галочки - готово.
     
     
  • 2.17, an. (?), 19:21, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не, лучше мастер создания проекта для Visual Studio!
     
     
  • 3.20, добрый дядя (?), 02:15, 15/11/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    ну что за стереотипы??? я ведь серьезно - должна быть веская причина чтобы быть против моего варианта с GUI-визардом - что? не достаточно красноглазо? ну а зачем?
     
     
  • 4.22, arisu (ok), 07:24, 15/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ну что за стереотипы??? я ведь серьезно — должна быть веская причина
    > чтобы быть против моего варианта с GUI-визардом — что? не достаточно
    > красноглазо? ну а зачем?

    потому что не надо любителей «гуи-визардов» в ядро пускать. а то потом придётся как винде: на каждом углу пояснять, что «система-то у нас стабильная, это драйвера такие плохие…»

     
     
  • 5.26, другой аноним (?), 10:56, 16/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > потому что не надо любителей «гуи-визардов» в ядро пускать. а то потом
    > придётся как винде: на каждом углу пояснять, что «система-то у нас
    > стабильная, это драйвера такие плохие…»

    Глупое утверждение. Конечно сейчас можно получить очередной холивар, но... значит система плохая. Должно быть как в шифровании - решать проблемы не путем сокрытия алгоритма шифрования, а путем его устойчивости к взлому при полной его открытости. Так и с драйверами к ОС и ее устойчивости к ошибкам в оных - решать проблемы не путем всяческого искусственного ограничения доступности для любителей «гуи-визардов» и искусственного повышения уровня вхождения, а путем реализации механизмов устойчивости ядра к ошибкам в драйверах. Намек на микроядра с их драйверами, выполненных в виде сервисов/серверов, выполняющихся в юзерспейсе (про производительность не говорим, есть очень удачные реализации типа QNX, плохо только что народ не захотел развить его до ОС общего назначения). Ведь любитель «гуи-визардов» вероятно не будет писАть критически важный для системы драйвер типа работы с дисковой подсистемой или сетевой картой, а если и возьмется - то значит знаний у него наверное достаточно и это все-таки не новичок-любитель, а если и новичок, то не думаю что его важный, но глючный драйвер вдруг попадет в мейнстрим и все потом будут оправдываться что дескать система хороша но драйвер кривой. Но уже зная arisu по его прошлым постам, представляю сколько дерьма сейчас выльется.

     
     
  • 6.27, arisu (ok), 04:50, 17/11/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    никто не «повышает искусственно уровень вхождения». его просто не надо искусственно понижать: обезьяна с гранатой — это весьма неприятно.
     
     
  • 7.28, Аноним (-), 15:18, 24/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > никто не «повышает искусственно уровень вхождения». его просто не надо искусственно
    > понижать: обезьяна с гранатой — это весьма неприятно.

    Его уже много лет как в айти проваливают ниже плинтуса. Этих обезьян с гранатами - миллионы. Достаточно на дистровотч заглянуть разок.

     

  • 1.5, BIGscrat (?), 11:08, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже давно существует Linux Device Drivers со всеми необходимыми примерами,где разбирается разработка драйверов для символьных, блочных и сетевых устройств. ИXМО,  мешать всё в кучу не есть хороший вариант.
     
     
  • 2.7, Аноним (-), 11:42, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Угу, а те кто по нему реально писали драйверы злобно усмехаются.
    Устарел он, очень сильно устарел. Общие принципы неплохи, но большинство функций изменились, их заменили другими и т.п.

    Сейчас лучший способ написания Linux-драйвера - взять готовый из дерева исходников ядра, который больше всего тебе подходит за шаблон - и вписывать своё. Собственно автор LDT это понял и оформил на все случаи жизни шаблоны.

    Виртуальным драйверописателям посвящаю.

     
     
  • 3.8, Аноним (-), 12:46, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • –7 +/
    а ещё бы загнать в C++ template =))
     
     
  • 4.9, тоже Аноним (ok), 12:58, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    С++ template здесь вообще ни при чем.
    Если делать такую вещь с прицелом на С++, это должен быть набор базовых классов с реализацией общих принципов и возможностью прописывания частностей в наследниках.
    Ну, и общий код, в котором эти базовые классы пристраиваются к делу.
     
  • 4.24, XoRe (ok), 14:55, 15/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > а ещё бы загнать в C++ template =))

    В ядро linux C++ код не пускают категорически.

     

  • 1.10, Ph0zzy (ok), 13:00, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Годно!
     
  • 1.11, ua9oas (ok), 13:23, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    какое количество устройств сейчас линукс-ядро поддерживает (в зависимости от ветки) а какое- нет? И насколько тот шаблон например увеличит количество создаваемых новых драйверов? (а может ли помочь в улучшении драйверов, уже существуюших?)
     
     
  • 2.12, Аноним (-), 14:13, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +12 +/
    Какое количество слов вы знаете (в зависимости от времени сутокк) а какое- нет? И насколько ваше пребывание на этом ресурсе увеличивает количество знакомых слов?
     

  • 1.13, Владимир (??), 14:45, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А чем это лучше самого ядра и его драйверов? Можно взять простейший драйвер из интересуемой секции и его смотреть. К тому же он всегда будет в актуальном состоянии, а LDT это нужно отдельно от ядра поддерживать? Или я не понимаю чего?
     
  • 1.14, Аноним (-), 15:01, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Может кто напишет драйвер для Canon IP1000 (сам не умею). А то столько лет и драйвера нет, который бы работал 100%
     
     
  • 2.15, anonymous (??), 15:47, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это вопрос не к ядерщикам, а к разработчику за спеками. Если есть спеки - можно ваять модуль для CUPS.
     
  • 2.16, pavlinux (ok), 17:45, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > Может кто напишет драйвер для Canon IP1000 (сам не умею)

    1500$, прим. срок 2 недели!

     
     
  • 3.18, cuki (ok), 19:25, 14/11/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    так не пойдет, свобода обесценивается, когда на нее вешают ценник, работайте на нас бесплатно
     
     
  • 4.21, pavlinux (ok), 02:20, 15/11/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > работайте на нас бесплатно

    Согласен, тока подари мне BMW 320i Coupe MT, и путёвку в новогодние праздники на Мальдивы.

     
  • 4.23, dq0s4y71 (??), 13:47, 15/11/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это сарказм, я так понимаю? На самом деле, "свобода" (в понимании Столлмана) не ограничивается когда на нее вешают ценник. Ближайший пример - ядро Линукс, которое уже почти никто не пилит бесплатно, но оно, тем не менее, остаётся "свободным".
     

  • 1.19, frak (ok), 22:29, 14/11/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Константину респект, однозначно!
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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