![]() 9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
|
|
1 | |
На каком языке пишут драйвера?02.08.2010, 20:39. Показов 39401. Ответов 32
Метки нет Все метки)
(
я знаком с языками программирования turbo pascal,c++ (GCC) (если честно то только начал). на каком языке пишутся драйвера? не думаю что на одном из этих. Может на ассамблере? И как они пишутся? ссылки приветствуются.
0
|
02.08.2010, 20:39 | |
Ответы с готовыми решениями:
32
На каком языке нужно писать драйвера? На каком именно ассемблере пишут драйверы? На каком языке пишут программы под линукс |
Просто прогер
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
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
02.08.2010, 23:15 | 5 |
Ищущий да обрящет... Найди соответствующий компилятор, и смотри сколько влезет. Думаю, ничего нового не увидишь
0
|
![]() 9 / 9 / 1
Регистрация: 02.08.2010
Сообщений: 270
|
|
02.08.2010, 23:15 [ТС] | 6 |
или на алмире и на каком-нибудь там "Ралира"
0
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
02.08.2010, 23:17 | 8 |
Хоть на русском матерном, повторяю, вся проблема в отсутствии среды компиляции
0
|
![]() ![]() ![]() |
|
02.08.2010, 23:19 | 9 |
Ого, уже и среда появилась. А мне казалось, что в предельном случае для написания драйвера достаточно шестнадцатиричного редактора. Слушай, будь другом, напиши мне драйвер на русском, а то жуть как посмотреть охота
0
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
02.08.2010, 23:24 | 10 |
Могу и на русском, если Вы что-нибудь слышали про Эль-76, но повторяю, исходный текст никогда не превратится в машинный код
0
|
![]() ![]() ![]() |
|
02.08.2010, 23:27 | 11 |
Давай, напиши. Драйвер мыши не сложно будет для начала?
Допустим, слышал, только не понимаю, как соотносится эль-76 и драйвер? А на русский язык сию великую мысль можешь перевести? А то я так и не могу понять, напишешь ты мне драйвер на фортране или нет
0
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
02.08.2010, 23:45 | 12 |
Немного странно звучит вопрос - причем, допустим Си и драйвер? Эль-76 (другое название Автокод Эльбрус) местами даст большую фору С++. Жаль что слишком машинноориентирован, очень сложный компилятор получается для арифмометров Intel-платформы
Добавлено через 4 минуты Что касается перевода на русский: может, я мыслю древними понятиями, но они мне привычнее: исходный текст (неважно на каком языке) называется ТЕКСТОМ ПРОГРАММЫ, а результат работы транслятора - КОДОМ ПРОГРАММЫ
0
|
![]() ![]() ![]() |
|
02.08.2010, 23:51 | 13 |
> причем, допустим Си и драйвер?
Допустим при том, что на Си, как уже говорилось выше, можно написать драйвер. Потом речь зашла о том, что драйвер вроде бы как можно написать на любом языке. Я высказал желание посмотреть на драйвер, написанный на алголе, коболе или фортране. Мне в ответ было сказано, что можно написать на русском или эль76. На предложение написать драйвер на русском опять конкретного ответа не последовало. Вопрос про "при чём тут эль76" касался впервую очередь того, что были обозначены три вполне конкретных языка и мне непонятно было зачем сюда приплетать ещё один язык, про который кроме дремучих советских академиков никто не знает. Но если ты так хочешь - давай приплетём Не хотелось бы трогать эльбрусы и эль-76 (для которого, кстати, проще написать конвертор в си, чем компилятор), а хотелось бы услышать внятный ответ на вопрос: будешь ты мне приводить фрагменты драйвера на одном из трёх указанных выше языков (алгол, кобол, фортран), или не будешь? Под внятным ответом подразумевается что-то типа "да", "нет", "пошёл на ..." и т.п., но никак не "в то время как космические корабли бороздят просторы вселенной" Добавлено через 1 минуту Неприниципально. Ни у кого возражений по этому поводу не возникало.
0
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
03.08.2010, 00:00 | 14 |
Не хотелось бы трогать эльбрусы и эль-76...
Ну спасибо, к академикам меня еще не подшивали, вроде не такой дремучий. Теперь "про драйвер мыши на фортране". Писать его, естественно, никто не собирается. Вы это хотели от меня? Тем более что изначально я утверждал что это "в принципе возможно", и не более. Вряд-ли кто-то станет добывать огонь трением, когда в кармане зажигалка.
0
|
![]() ![]() ![]() |
|
03.08.2010, 00:10 | 15 |
ВОТ! Наконец-то услышал что-то конкретное. После чего все свои вопросы снимаю. А если честно, то я попросту подумал, что на форуме появился очередной залётный умник, который услыхал умных слов типа "драйвер" или "эль-76" и начал гнуть пальцы. Так что извиняй, обознался
![]() А что касается изначального вопроса polimorf96, то ответить можно следующее. Драйвер - это точка состыковки между аппаратурой и прикладным софтом. Драйвер является частью операционной системы. Работа с аппаратурой как правило состоит в чтении-записи данных из портов ввода-вывода. Это некие специальные адреса памяти, которые ассоциируются с аппаратурой. А потому теоретически драйвер и вправду можно написать на любом языке. Но для нормальной и удобной работы с памятью крайне желательно, чтобы язык обладал такой вещью, как указатель, а потмоу большинство языков просто идут лесом. Язык должен иметь компилятор (а не интерпретатор), потому что драйвер всегда должен работать как native код, а не интерпретироваться, а следовательно другая часть языков так же идёт лесом. На большинстве современных архитектур при работе с аппаратурой требуются специфические операции, которые не выражаются в терминах языка программирования, а потому язык должен уметь работать с ассемблерными вставками. Итого в сухом остатке получается, что для написания драйверов используют либо Си, либо голый ассемблер. Си++ как таковой не подойдёт, потому как многие конструкции языка являются высокоуровневыми (new, exception, конструкторы статических объектов), а потому могут работать только под управлением ОС (а нам нужен код, который бы работал внутри ОС)
2
|
2 / 2 / 0
Регистрация: 31.07.2010
Сообщений: 20
|
|
03.08.2010, 00:22 | 16 |
К-стати, уважаемый Evg, могли бы вы как-то прокомментировать мою тему "Драйвер карты сопряжения без обработки IRP"? Буду очень признателен. ВК - это не что иное как старый добрый Эльбрус-2.
0
|
![]() ![]() ![]() |
|
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
|
Фрилансер
![]() 3709 / 2081 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
|
03.08.2010, 20:40 | 19 |
Совсем недавно на RSDN снова эту тему обсасывали. Вполне применим С++, разумеется, с некоторыми ограничениями. Но сама объектная структура очень широко используется.
0
|
![]() ![]() ![]() |
|
03.08.2010, 21:12 | 20 |
Black Fregat, это всё-таки кастрированный Си++, которому больше подходит название "C with classes"
0
|
03.08.2010, 21:12 | |
Помогаю со студенческими работами здесь
20
На каком языке пишут браузерные онлайн игры? На каком языке\движке пишут Коллекционные карточные игры? На каком языке пишут ботов для онлайн игр? На каком ЯП в основном пишут вирусы На каком движке или платформе пишут простые 2д и 3д игры ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Что нового в 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, но была исключена на встрече комитета. . .
|