singlepost

Написание драйверов. << На главную или назад  

Товарищи, нужна помощь. Я занимаюсь программированием только лишь первый год. Специализируюсь на программах по обработке звука. Я самоучка. Вот и возник вопрос. С помощью чего и как пишутся драйвера для железа? Заранее спасибо

128 ответов в теме “Написание драйверов.”

  1. 42
    Mihail Прохоров ответил:

    а я занимался программирование дров так: сначала спаял USB устройство на ATmega32 с программным USB, а потом под него дрова делал, ибо, поскольку все, что девайс такой делает ты знаешь досканально, то дрова на него под DDK пишутся довольно быстро. а уж потом я стал разбираться с чужыми устройствами…Москва не сразу строилась…

  2. 41
    Никита Токарчук ответил:

    Евгений Плюшкин Плюша Безымянников
    хорошо сказал

  3. 40
    Никита Токарчук ответил:

    спец защиты информации хорошая специальность. друг там учится. нравится. сам в этом году пойду.

  4. 39
    Евгений Безымянников ответил:

    >Складывается впечатление что Вы представляете програмирование дров чем то экстра-ординартным и недосягаемым…

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

  5. 38
    Алексей Рамашка ответил:

    Блин. Давите только не будем ссорится!

  6. 37
    Андрей Лимаев ответил:

    Ко всему вышесказанному остается добавить, что слово "экстраординарный" пишется слитно и без "т". =)

  7. 36
    Алексей Рамашка ответил:

    Я писал, что первый год этим занимаюсь? Вроде писал… У меня образования специального НЕТУ. Работаю исключительно с newAC КОМПОНЕНТАМИ

  8. 35
    Cyber Max ответил:

    > он написал, что дрова не от хорошей жизни пишет
    Складывается впечатление что Вы представляете програмирование дров чем то экстра-ординартным и недосягаемым…

  9. 34
    Алексей Рамашка ответил:

    Зачем же так резко? Бас я с самого начала не полюбил… Это вообще другая сена была. Мне конкретно нужно знать, как пишутся дрова!

  10. 33
    Евгений Безымянников ответил:

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

  11. 32
    Cyber Max ответил:

    У человека возник вопрос как драйвера пишутся в общем.. а не конкнетно для аудио!

  12. 31
    Евгений Безымянников ответил:

    драйвера, что бы работать со звуком и только от того, что не хватило ума работать через bass …????ужас.
    есть примеры для дельфей на bass.dll
    есть даже bassplayer
    есть форумы, по которым я учился, есть примеры

    удаление гланд ректально – это видимо так теперь учат делать в вузах

  13. 30
    Vitaly Ch ответил:

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

  14. 29
    Андрей Соломонов ответил:

    блин, вы чо, все так хорошо знаете англ что можете читать книжки на англ?)

  15. 28
    Cyber Max ответил:

    Еще… ну так для общего понимания работы ОС советую прочитать:

    - Mark Russinovich: "Inside Windows 2000" – не смотря что 2000 – найдешьмного интересного и нового. //www.sysinternals.com

    - Art Baker, Jerry Lozano "The Windows 2000 Device Driver Book"

    Ну это уже устарело, но книга хорошая.
    - Piter G. Viscarola & W.Anthony Mason "Window NT. Device Driver Development"

  16. 27
    Алексей Рамашка ответил:

    Кто еще чего знает?

  17. 26
    Алексей Рамашка ответил:

    Моё мыло: lexa.r4@mail.ru

  18. 25
    Vitaly Ch ответил:

    > Какой нафиг подробно в ЗНТУ ? Товаришь Солдатов (не путать с автором книги, хотя оба стоят одинаково) – представляют из себя НОЛЬ без палочки!!! А на кафедре радиотехники программирование вообще никто не преподовал – потому как там никто в этом не шарит. Ну это так крик души!

    меня лично учил Денека и еще один. Фамилии не помню. Оба на жизнь зарабатывают программированием и преподавали ради развлечения. вероятно это куда лучше чем ноль без палочки.

    > Ничего сложного в программировании нет – даже намного проще чем писать user-mode приложения. Единственное что ответствености за код больше, т.к. малейшая неточность приводит к BSOD!

    я всетаки склонен считать что ты заблуждаешся. драйвера писать для большинства сущесвенно сложнее поэтму средняя зарплата драйверописателя в разы выше зарплаты прикладника …

  19. 24
    Андрей Лимаев ответил:

    На 230101 "Вычислительные машины, комплексы, системы и сети" программирование драйверов практически не дают (КГТУ-КАИ)

  20. 23
    Олег Савинов ответил:

    2Cyber Max – блин, мне можно сказать, повезло по сравнению с вашей радиотехникой:) У нас в НГТУ на радиотехнике во втором семестре ANSI С, в третьем – С++, в четвертом системное программирование, а потом ЦУМП и асм:) Но всё равно я с этой радиотехники сваливаю на примата:)

    2Алексей Тень }{А|{Е®А Рамашка – если хочешь много железа, то лучше по-моему что-нибудь наподобие 230101 Вычислительные машины, комплексы, системы и сети, а если бы учился, например, у нас в НиНо, то еще и210302 Радиотехника, и парочка смежных. А вот насчет всяких систем безопасности компьютеров, да защиты информации – ох не доверяю я этим специальностям. Где-то слышал, что в провинциях вообще таких быть недолжно, и в России на полных правах, такое существует только в ИТМО в Питере. Не знаю, конечно, как в Беларусии, но у нас от защитничков гонору много, а толку мало.

  21. 22
    Cyber Max ответил:

    > в моем ЗНТУ для тебя были бы оптимальными специальности
    > "радиотехника" или КИСС

    Какой нафиг подробно в ЗНТУ ? Товаришь Солдатов (не путать с автором книги, хотя оба стоят одинаково) – представляют из себя НОЛЬ без палочки!!!А на кафедре радиотехники программирование вообще никто не преподовал – потому как там никто в этом не шарит. Ну это так крик души!

    Современные драйвера пишут в 99% случаях исключительно на С. 1% оставляют для написания ассемблерных вставок или ассемблерных функций, но исключительно для специфического железа (видеокарты), обработчики для всех остальных устройств на С.

    Для программированния под Windows нужен специальнй комплект DDK или WDK. Ничего сложного в программировании нет – даже намного проще чем писать user-mode приложения. Единственное что ответствености за код больше, т.к. малейшая неточность приводит к BSOD!

    Для изучения советую скачать книгу Walter Oney: "Programming The Windows Driver model" – Русские аналоги типа Солдатова "Программирование драйверов" в топку – даже в руки не брать!

  22. 21
    Vitaly Ch ответил:

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

    в моем ЗНТУ для тебя были бы оптимальными специальности "радиотехника" или КИСС. (Другие специальности с углубленным изучением схемотехники тоже подойдут) и те и другие подробно изучали железо и написание дров но с разными подходами к задаче

  23. 20
    Дмитрий Молчанов ответил:

    написал программу, нажал ф5, и морально кончил)

  24. 19
    Misha Rylov ответил:

    чувак, дай мне своё мыло я тебе книг сброшу про написание драйверов под Windows и Linux

  25. 18
    Валентин Тараненко ответил:

    у нас преподы еще у моей мамы преподавали…. крайне весело выслушивать второй год про рекурсию. Даже про наследование ничерта не говорят. То есть даже основ ооп нету. Не говоря уже про работу с железом. Когда я написал движок для портирования 3ds и отрисовки в опенгл препод ошарашено посмотрел и сказал приятно познакомится( видел меня первывй раз на сдаче зачета)

  26. 17
    Андрей Лимаев ответил:

    да-да, особенно если программировать графы какие-нить.=(

  27. 16
    Алексей Сторожев ответил:

    универ с лёгкостью может убить в тебе это наслаждение =) если попадется деревянный препод – ты возненавидишь программирование как предмет в универе =))

  28. 15
    Подмогаев Свят ответил:

    может быть и так, еслитебе интересно тупосидеть часами и тупо писать код и когда ты от этого получаешь удовольствие то может быть это твое, в противном случае скорее всего нет))

  29. 14
    Андрей Лимаев ответил:

    Балда! Нет профессии лучше, чем айтишная! Как админ тебе говорю! =)

  30. 13
    Алексей Рамашка ответил:

    Я кстати люблю сидеть часами кодить чего… Люблю я эту стихию… Это моё… Осталось подать документы

  31. 12
    Алексей Рамашка ответил:

    Бля. Может я не ту профессия выбрал? Может лучше идти в строители или же на газо-нефте? Подскажите…

  32. 11
    Алексей Рамашка ответил:

    Во подстава. Я ж с этим обязательно столкнусь. Пойду на спеца по защите информации. А там точно с железом работать

  33. 10
    Андрей Лимаев ответил:

    По опыту учебы в КГТУ могу сказать, что "защитнечги" тоже разные бывают. У нас из 3 групп по защите 2 получают по окончанию квалификацию манагера и только одна – инженера. Излишне говорить кто из них хоть что-то знает! =) Но железякам не учат практически никого =(

  34. 9
    Дмитрий Бабий ответил:

    Учи С и обязательно Assembler, я сомневаюсь что будешь на нём что-то серьёзное писать, но для понимания он необходим.

  35. 8
    Алексей Рамашка ответил:

    Блин. Придется. А в универе научат? Ну если на программиста. Или всё самому?

  36. 7
    Андрей Лимаев ответил:

    Не научат. Точнее, у нас вот была лаба на третьем курсе, где писали дрова на ассембере для виртуального устройства, при этом дав задание "Напишите дрова и ниипёт". Ничего при этом не объяснили. Так что по манам придется =(

  37. 6
    Алексей Рамашка ответил:

    Ну ты загнул… Но, благо, я разобрался немного. Спасибо большое. Буду искать литературу… Или нафиг забросить это дело…

  38. 5
    Тимур Магомедов ответил:

    Судя по соседней теме //vkontakte.ru/topic-912_21883520 – если нужно просто забирать сигнал с аудиоплаты, тонужна просто библиотека для работы со звуком. А не программа, которая будет работать с одним звуковым чипом через свой драйвер.

  39. 4
    Алексей Рамашка ответил:

    Мыслишь правильно. Я это уже пробовал делать через bass.dll, но не получилось. Получилось только выводить диаграмму с микрофона через waveplayer. Так может подход будет похожим?

  40. 3
    Андрей Лимаев ответил:

    ANSI C, Assembler.

  41. 2
    Алексей Рамашка ответил:

    А чё-нить типа delphi? Я когда-то начинал учись С, но как-то не понравилось…

  42. 1
    Тимур Магомедов ответил:

    В хорошем случае производительжелезки выпускает мануал про неё, что-нибудь типа "somehardware data sheet", где пишет как работать с ней и что она вообще может. Если, например, это PCI-ное устройство, то там описываются регистры PCI (стандартные для всех PCI – устройств), их значение в контексте работы с этим устройством, описание регистров в областях PCI-ной памяти, порядка их программирования, разных режимов работы и т.д. Разобраться в том, как работает/должно работать железо – самое трудное в написании драйвера.

    А дальше зависит от операционной системы. В линуксе это модуль ядра, на эту тему есть отличная книжка "Linux device drivers, 3rd edition". Язык C.
    В винде – WDK

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.