Страница 2 из 4

Re: Язык программирования для драйверов

СообщениеДобавлено: 29 май 2019, 08:22
SkyKuker
Это не троллинг, я хочу написать драйвер для нового железа под старые ОС. Не понимаю я просто, как на Паскале, будучи высокоуровневым языком, можно написать драйвер? Ещё, был бы соответствующий компилятор...
Как я понял, драйвер - это (объясняю сам): Штуковина такая, заставляющая ОС работать и взаимодействовать с железом. :roll: :oops:

Re: Язык программирования для драйверов

СообщениеДобавлено: 29 май 2019, 09:27
Nika
Да походу всё-таки троллиг.
Куча литературы есть на эту тему, в этом треде тоже давали ссылки.
Интересует тема - читайте, разбирайтесь.

И адаптация старого софта под новое "железо" это занятие неблагодарное, на любителя.
Оно не окупается категорически, чисто по деньгам.

Re: Язык программирования для драйверов

СообщениеДобавлено: 29 май 2019, 17:02
KPG
SkyKuker писал(а):Это не троллинг, я хочу написать драйвер для нового железа под старые ОС. Не понимаю я просто, как на Паскале, будучи высокоуровневым языком, можно написать драйвер? Ещё, был бы соответствующий компилятор...
Как я понял, драйвер - это (объясняю сам): Штуковина такая, заставляющая ОС работать и взаимодействовать с железом. :roll: :oops:

Вам нужно посетить группу в Vk ReactOS если не забанят, то 100% объяснят и направят в нужном направлении. :) (и даже скажут спасибо при наличии каких то результатов для проекта)

P.S. ReactOS - старая Windows совместимая Ось на новый лад.

Re: Язык программирования для драйверов

СообщениеДобавлено: 29 май 2019, 22:59
Freeman
SkyKuker писал(а):Не понимаю я просто, как на Паскале, будучи высокоуровневым языком, можно написать драйвер? Ещё, был бы соответствующий компилятор...

В интернетах есть статья "Пишем драйвер на Delphi". Используются dcc32 от Delphi 3 и link от VC++/PlatformSDK. Для более новых версий Delphi можно проштудировать темы по Delphi на форуме KolibriOS, там же выкладывали утилиту, преобразующую объектники Delphi 4 и старше в формат COFF, совместимый с MS link.

Как вариант можно использовать FreePascal (FPC), но для него придется сильно колдовать со стандартной библиотекой и ручной сборкой, чтобы получить драйвер. Какой-то конкретной темы не видел... Хотя на форуме FreePascal.ru была тема о выносе RTL FPC в DLL, полезная инфа может быть в ней.

На форуме KolibriOS также выкладывался компилятор языка Оберон, собирающий PE. Не Паскаль, но близко. Не знаю, сможет ли этот компилятор собрать драйвер. Поизучайте.

И есть еще FASM, конечно же...

Re: Язык программирования для драйверов

СообщениеДобавлено: 30 май 2019, 11:41
SkyKuker
Куча литературы есть на эту тему, в этом треде тоже давали ссылки.

Мне просто название языка нужно :oops: :evil:...
адаптация старого софта под новое "железо" это занятие неблагодарное

Почему неблагодарное? Оно очень как-бы помогает изучить историю (себе и остальным даунгрейдерам), каким оно было раньше...
Оно не окупается категорически, чисто по деньгам.

Что значит "не окупается категорически"?
ReactOS

ReactOS не нужен, он не стартует на новых компах (7B). Тем более, он эмулирует ядро NT (>5.0), а мне такая версия ядра надоела.
Freeman писал(а):
SkyKuker писал(а):Не понимаю я просто, как на Паскале, будучи высокоуровневым языком, можно написать драйвер? Ещё, был бы соответствующий компилятор...

В интернетах есть статья "Пишем драйвер на Delphi"....

Freeman писал(а):Для более новых версий Delphi можно проштудировать темы по Delphi на форуме KolibriOS, там же выкладывали утилиту, преобразующую объектники Delphi 4 и старше в формат COFF, совместимый с MS link.

Freeman писал(а):...на форуме FreePascal была тема о выносе RTL FPC в DLL, полезная инфа может быть в ней.

Freeman писал(а):На форуме KolibriOS также выкладывался компилятор языка Оберон, собирающий PE.

Ссылку приводите, пожалуйста.

Re: Язык программирования для драйверов

СообщениеДобавлено: 30 май 2019, 14:06
uav
SkyKuker, Вам же уже выше написали - для DOS/Win 3.x/Win95 - ассемблер, дальше (98-я и выше) чаще использовали Visual C.
На Delphi тоже можно, но, IMHO, это довольно сомнительно.

Re: Язык программирования для драйверов

СообщениеДобавлено: 30 май 2019, 22:51
SkyKuker
uav, благодарю, учту. Мне просто чтобы очень просто было и под ВСЕ ОС, что <XP. Думаю, что мне Ваши советы пригодятся!
Для ОС, написанных на низко- и высокоуровневых языках, и высокоуровневые сгодятся, я правильно понял?

Re: Язык программирования для драйверов

СообщениеДобавлено: 30 май 2019, 23:12
uav
Тут не имеет значения, на чём написана сама ОС. Скорее имеет значение, на какой язык и средства разработки был рассчитан DDK.
Один язык для всех ОС - сомнительно, но если Вам больше интересны старые операционки (DOS/W95), то изучайте ассемблер.

Re: Язык программирования для драйверов

СообщениеДобавлено: 31 май 2019, 03:19
Freeman
uav писал(а):для DOS/Win 3.x/Win95 - ассемблер

Нет.

Re: Язык программирования для драйверов

СообщениеДобавлено: 31 май 2019, 10:38
uav
Ну и почему, собственно, нет? В принципе, уже тогда иногда использовали и некоторые языки высокого уровня, но ассемблер всё равно хоть местами, но использовали - в виде вставок, к примеру.
Ясно, что для изучения он трудноват, но для работы с аппаратурой на низком уровне знать его желательно.
Под DOS для драйверов использовали почти исключительно ассемблер, в DDK для Windows 3.10, который здесь лежит, тоже примеры драйверов на ассемблере, DDK Windows 95 - опять-таки, почти исключительно ассемблер в примерах, (и там, и там C встречается, но больше для вывода пользовательского интерфейса и т.п.).

Re: Язык программирования для драйверов

СообщениеДобавлено: 05 июн 2019, 14:55
SkyKuker
Ребята, а есть ли способ как-нибудь "сдружить" ОС <Win98 с C, Visual C?
Оффтоп писал(а):Впрочем, а на чём написаны UniATA и VBEMP?

Re: Язык программирования для драйверов

СообщениеДобавлено: 05 июн 2019, 15:36
uav
Ранние версии VC++ и так работают на 95-й и 98-й.

По поводу UniATA, вот же исходники:
http://alter.org.ua/ru/soft/win/uni_ata ... 7a_src.rar

Там, в частности, написано (в building.txt):
environment:
------------

MS VisualC 6.0 with sp5 or higher
Platform SDK 2001 or higher (I'm not sure if it is really required)
NT4 DDK

Re: Язык программирования для драйверов

СообщениеДобавлено: 05 июн 2019, 21:52
SkyKuker
C++

Не C++, а C, это разные языки...

Re: Язык программирования для драйверов

СообщениеДобавлено: 05 июн 2019, 22:02
uav
А Вы где-то видели просто MS Visual C? Я - нет.
Вот из Вики:
https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
Первая версия была именно Visual C++.

Re: Язык программирования для драйверов

СообщениеДобавлено: 05 июн 2019, 22:06
SkyKuker
Получается, что это один и тот же язык?
Хотя я сомневаюсь в этом, ибо в C++ есть высокоуровневые функции, не позволяющие драйверу "рашить" внутри ядра.
на какой язык и средства разработки был рассчитан DDK

Раз только от DDK зависит, то можно и на Pythonе написать?