Написание драйверов.

Автор smallNix, 11 ноября 2013, 16:44:48

« назад - далее »

0 Пользователи и 2 гостей просматривают эту тему.

smallNix

 Народ, поделитесь информацией по написанию драйверов Linux. Русский язык приветствуется. Для ядер 2.6 и выше. Я нашёл на linuxcenter статью, на хабре, Linux Device Drivers 3rd edition на аглицком и на ibm статью. Может кто какие книжки подскажет.  :)
Заранее спасибо.
Кто-то же должен что-то делать...

sunny_side

#1
Обычно этот путь выглядит приблизительно так:

Почитать в общих чертах как устроена ос;
Посмотреть исходники уже готовых драйверов;
А дальше вам помогут лишь исходники(или ассемблерный листинг) ос и документация по оборудованию.

По первому пункту советовать довольно сложно так как уже очень давно не читал такую литературу  тем более переводную, кроме того у каждого свой подход к изучению чего-то нового. кому-то подавай факты, кто-то называет это перекомпиляцией доки к ос.
Из заинтересовавшего вспоминается, переводов, вроде, нет :( :
Essential Linux Device Drivers(Venkateswaran),
Professional Linux Kernel Architecture(Wolfgang Mauerer),
Linux Device Drivers(Jonathan Corbet, Alessandro Rubini) - может есть перевод,
вроде когда-то пробегал на каком-то сайте, нужно поискать в сети.
Главное здесь сформировать для себя целостное представление об составляющих ос и их взаимодействии. Можно даже схемку нарисовать.

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

По третему пункту - мне не очень нравятся веб-ориентированные решения для навигации по коду линукс, поэтому могу посоветовать - http://www.scitools.com/. загружаете в него исходники линукс и стараетесь схему созданную в пункте первом наполнить деталями.

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

smallNix

#2
sunny_side, спасибо за ответ, но это не совсем то, что мне требовалось  :) Я не первый год занимаюсь программированием - привык читать datasheet'ы. С английским проблем тоже нет - просто русский язык... Его всегда хочется  ;D
Хотел что бы люди поделились опытом. Может какой фундаментальный труд имеется с чего стоило бы начать. За пару дней я "порыскал" в сети и выяснил следующее: материалов на русском критически мало. А актуальных итого меньше. На сегодняшний день можно воспользоваться Linux Device Drivers 3-е издание (имеется перевод на русский язык), Essential Linux Device Drivers, (на русском нет), Writing Linux Device Drivers: a guide with exercises в паре с Writing Linux Device Drivers: Lab Solutions: a guide with exercises и... Как это непривычно, но, похоже, попался довольно неплохой пример от русского русскоязычного (не уверен к какой народности он себя причисляет) автора Олега Цилюрика (Если вдруг фамилия не склоняется - прошу прощения) . Черновая версия книги на данную тему доступна с сайта автора под лицензией GNU GPL2 и новее: http://mylinuxprog.blogspot.com/2012_11_19_archive.html
Кто-то же должен что-то делать...

qupl

Цитата: smallNix от 12 ноября 2013, 19:26:11попался довольно неплохой пример от русского русскоязычного (не уверен к какой народности он себя причисляет) автора Олега Цилюрика (Если вдруг фамилия не склоняется - прошу прощения) .
Он на форуме, если я не ошибаюсь, зарегистрирован.

smallNix

Цитата: qupl от 12 ноября 2013, 20:02:03Цитата: smallNix от Сегодня в 19:26:11

    попался довольно неплохой пример от русского русскоязычного (не уверен к какой народности он себя причисляет) автора Олега Цилюрика (Если вдруг фамилия не склоняется - прошу прощения) .

Он на форуме, если я не ошибаюсь, зарегистрирован.
Тут хороший форум - я не удивлён  ;)
Кто-то же должен что-то делать...