Форум программистов, компьютерный форум, киберфорум
Программирование драйверов
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/198: Рейтинг темы: голосов - 198, средняя оценка - 4.62
 Аватар для polimorf96
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
1

На каком языке пишут драйвера?

02.08.2010, 20:39. Показов 39401. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
я знаком с языками программирования turbo pascal,c++ (GCC) (если честно то только начал). на каком языке пишутся драйвера? не думаю что на одном из этих. Может на ассамблере? И как они пишутся? ссылки приветствуются.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2010, 20:39
Ответы с готовыми решениями:

На каком языке нужно писать драйвера?
У меня проблема.Старый принтер и сканер не работают с 8 и 10.Хочу сам написать для них драйвера.Какой язык программирования мне лучше...

На каком именно ассемблере пишут драйверы?
Всем доброго времени суток! Изучал с горем пополам ассемблер. В Linux, компилятор был nasm. Узнал много нового интересного, например я...

На каком языке пишут программы под линукс
На каком языке пишут программы под линукс и в какой среде?

32
PB
Просто прогер
1292 / 1079 / 13
Регистрация: 13.03.2009
Сообщений: 2,502
02.08.2010, 20:47 2
Си и ассемблер

Только это тебе не оконные прожки клепать!
0
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
02.08.2010, 22:53 3
Драйвера можно писать на любом языке - был бы соответствующий компилятор, обычные средства не пойдут, например, для драйверов под Windows существует пакет DDK (сейчас переименовали в WDK), там используется Си.
Майкрософт не гарантирует корректную работу драйвера собранного другими инструментами.
К-стати насчет ассемблера - DDK позволяет полностью обойтись без него.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
02.08.2010, 23:12 4
Цитата Сообщение от tig1818c Посмотреть сообщение
Драйвера можно писать на любом языке - был бы соответствующий компилятор
Интересно будет посмотреть на драйвер, написанный на коболе, алголе или фортране
1
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
02.08.2010, 23:15 5
Ищущий да обрящет... Найди соответствующий компилятор, и смотри сколько влезет. Думаю, ничего нового не увидишь
0
 Аватар для polimorf96
9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
02.08.2010, 23:15  [ТС] 6
или на алмире и на каком-нибудь там "Ралира"
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
02.08.2010, 23:17 7
tig1818c, мне интересно было посмотреть на драйвер (на его исходники, написанные на одном из обозначенных языков). Сколько влезет смотреть на соответствующий компилятор у меня интереса нет
0
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
02.08.2010, 23:17 8
Хоть на русском матерном, повторяю, вся проблема в отсутствии среды компиляции
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
02.08.2010, 23:19 9
Цитата Сообщение от tig1818c Посмотреть сообщение
Хоть на русском матерном, повторяю, вся проблема в отсутствии среды компиляции
Ого, уже и среда появилась. А мне казалось, что в предельном случае для написания драйвера достаточно шестнадцатиричного редактора. Слушай, будь другом, напиши мне драйвер на русском, а то жуть как посмотреть охота
0
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
02.08.2010, 23:24 10
Могу и на русском, если Вы что-нибудь слышали про Эль-76, но повторяю, исходный текст никогда не превратится в машинный код
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
02.08.2010, 23:27 11
Цитата Сообщение от tig1818c Посмотреть сообщение
Могу и на русском
Давай, напиши. Драйвер мыши не сложно будет для начала?

Цитата Сообщение от tig1818c Посмотреть сообщение
если Вы что-нибудь слышали про Эль-76
Допустим, слышал, только не понимаю, как соотносится эль-76 и драйвер?

Цитата Сообщение от tig1818c Посмотреть сообщение
но повторяю, исходный текст никогда не превратится в машинный код
А на русский язык сию великую мысль можешь перевести? А то я так и не могу понять, напишешь ты мне драйвер на фортране или нет
0
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
02.08.2010, 23:45 12
Немного странно звучит вопрос - причем, допустим Си и драйвер? Эль-76 (другое название Автокод Эльбрус) местами даст большую фору С++. Жаль что слишком машинноориентирован, очень сложный компилятор получается для арифмометров Intel-платформы

Добавлено через 4 минуты
Что касается перевода на русский: может, я мыслю древними понятиями, но они мне привычнее: исходный текст (неважно на каком языке) называется ТЕКСТОМ ПРОГРАММЫ, а результат работы транслятора - КОДОМ ПРОГРАММЫ
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
02.08.2010, 23:51 13
> причем, допустим Си и драйвер?
Допустим при том, что на Си, как уже говорилось выше, можно написать драйвер. Потом речь зашла о том, что драйвер вроде бы как можно написать на любом языке. Я высказал желание посмотреть на драйвер, написанный на алголе, коболе или фортране. Мне в ответ было сказано, что можно написать на русском или эль76. На предложение написать драйвер на русском опять конкретного ответа не последовало. Вопрос про "при чём тут эль76" касался впервую очередь того, что были обозначены три вполне конкретных языка и мне непонятно было зачем сюда приплетать ещё один язык, про который кроме дремучих советских академиков никто не знает. Но если ты так хочешь - давай приплетём

Не хотелось бы трогать эльбрусы и эль-76 (для которого, кстати, проще написать конвертор в си, чем компилятор), а хотелось бы услышать внятный ответ на вопрос: будешь ты мне приводить фрагменты драйвера на одном из трёх указанных выше языков (алгол, кобол, фортран), или не будешь? Под внятным ответом подразумевается что-то типа "да", "нет", "пошёл на ..." и т.п., но никак не "в то время как космические корабли бороздят просторы вселенной"

Добавлено через 1 минуту
Цитата Сообщение от tig1818c Посмотреть сообщение
Что касается перевода на русский: может, я мыслю древними понятиями, но они мне привычнее: исходный текст (неважно на каком языке) называется ТЕКСТОМ ПРОГРАММЫ, а результат работы транслятора - КОДОМ ПРОГРАММЫ
Неприниципально. Ни у кого возражений по этому поводу не возникало.
0
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
03.08.2010, 00:00 14
Не хотелось бы трогать эльбрусы и эль-76...

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

Теперь "про драйвер мыши на фортране". Писать его, естественно, никто не собирается. Вы это хотели от меня? Тем более что изначально я утверждал что это "в принципе возможно", и не более.
Вряд-ли кто-то станет добывать огонь трением, когда в кармане зажигалка.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
03.08.2010, 00:10 15
Цитата Сообщение от tig1818c Посмотреть сообщение
Тем более что изначально я утверждал что это "в принципе возможно", и не более. Вряд-ли кто-то станет добывать огонь трением, когда в кармане зажигалка
ВОТ! Наконец-то услышал что-то конкретное. После чего все свои вопросы снимаю. А если честно, то я попросту подумал, что на форуме появился очередной залётный умник, который услыхал умных слов типа "драйвер" или "эль-76" и начал гнуть пальцы. Так что извиняй, обознался

А что касается изначального вопроса polimorf96, то ответить можно следующее. Драйвер - это точка состыковки между аппаратурой и прикладным софтом. Драйвер является частью операционной системы. Работа с аппаратурой как правило состоит в чтении-записи данных из портов ввода-вывода. Это некие специальные адреса памяти, которые ассоциируются с аппаратурой. А потому теоретически драйвер и вправду можно написать на любом языке. Но для нормальной и удобной работы с памятью крайне желательно, чтобы язык обладал такой вещью, как указатель, а потмоу большинство языков просто идут лесом. Язык должен иметь компилятор (а не интерпретатор), потому что драйвер всегда должен работать как native код, а не интерпретироваться, а следовательно другая часть языков так же идёт лесом. На большинстве современных архитектур при работе с аппаратурой требуются специфические операции, которые не выражаются в терминах языка программирования, а потому язык должен уметь работать с ассемблерными вставками. Итого в сухом остатке получается, что для написания драйверов используют либо Си, либо голый ассемблер. Си++ как таковой не подойдёт, потому как многие конструкции языка являются высокоуровневыми (new, exception, конструкторы статических объектов), а потому могут работать только под управлением ОС (а нам нужен код, который бы работал внутри ОС)
2
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
03.08.2010, 00:22 16
К-стати, уважаемый Evg, могли бы вы как-то прокомментировать мою тему "Драйвер карты сопряжения без обработки IRP"? Буду очень признателен. ВК - это не что иное как старый добрый Эльбрус-2.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
03.08.2010, 08:49 17
Я драйверов не писал, тем более под винду. Так что по части конкретной реализации я сказать ничего не могу. По части вне драйвера - постановка задачи не очень хорошо написана. Но для того, кто возьмётся за это, будет проще непосредственно тебе задать конкретные вопросы. Да и все вопросы, кроме той части, которая работает непосредственно с картой, лучше задать в соответствующих разделах (потому что под виндами при работе с IDE конкретная реализация многих вещей зависит от того, на какой IDE работать)

Если никто не ответит, а финансовые дела позволяют, то попробуй сюда закинуть https://www.cyberforum.ru/order-program/
1
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
03.08.2010, 20:05 18
Собственно, никакой постановки задачи нет. Шапка - не более чем уточнение. Интересны только два последних пункта - про каталоги, реализация всего остального достаточно прозрачна. Ну не работает в Кернел-моде связка FindFirstFile-FindNextFile-FindClose! Но все равно спасибо!
0
Фрилансер
 Аватар для Black Fregat
3709 / 2081 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
03.08.2010, 20:40 19
Цитата Сообщение от Evg Посмотреть сообщение
Си++ как таковой не подойдёт, потому как многие конструкции языка являются высокоуровневыми (new, exception, конструкторы статических объектов), а потому могут работать только под управлением ОС (а нам нужен код, который бы работал внутри ОС)
Совсем недавно на RSDN снова эту тему обсасывали. Вполне применим С++, разумеется, с некоторыми ограничениями. Но сама объектная структура очень широко используется.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
03.08.2010, 21:12 20
Black Fregat, это всё-таки кастрированный Си++, которому больше подходит название "C with classes"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.08.2010, 21:12
Помогаю со студенческими работами здесь

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

На каком языке\движке пишут Коллекционные карточные игры?
Коллекционная карточная игра КАК ТО: Magic: The Gathering, Warhammer 40,000, Hearthstone, Берсерк Возможно ли использовать Unity...

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

На каком ЯП в основном пишут вирусы
Добрый день. Как то задался я на днях вопросом, а в основном на каком языке программирования пишут вирусы и взламывают различные сайты и...

На каком движке или платформе пишут простые 2д и 3д игры ?
На каком движке или платформе пишут простые 2д и 3д игры ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной. Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
Формулы поворота
Igor3D 10.03.2025
Добрый день Тема Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости". x' = x * cos(a) - y * sin(a) y' = y * cos(a) + x * sin(a) Как бы Вы их. . .
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view. string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет! Отправлено 19 февраля 2025 года в 17:20:21 UTC Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home. Мы официально. . .
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru