OberonCore
https://forum.oberoncore.ru/

Создание драйвера для Windows
https://forum.oberoncore.ru/viewtopic.php?f=1&t=304
Страница 1 из 1

Автор:  Калям [ Пятница, 22 Сентябрь, 2006 22:46 ]
Заголовок сообщения:  Создание драйвера для Windows

:arrow:
Требуется написать драйвер.
    Сначала, разумеется, нужно было выбрать язык, на котором оный будет создан - выбор пал на паскалеподобные языки по причине их надёжности.
    Зная язык, нужно подобрать инструментальную среду. Вот с этим как раз и возникла заминка: для С проблем нет - пакет DDK от Microsoft, а вот для нужных мне языков таких готовых пакетов пока не знаю.

Заканчивая с предысторией, задаю вопрос, который уже сам напрашивается: подходит ли BlackBox для написания драйвера :?:

Автор:  Илья Ермаков [ Суббота, 23 Сентябрь, 2006 21:41 ]
Заголовок сообщения: 

Я не специалист в области драйверов, хотя в целом знаком с принципами создания драйверов NT. Мне кажется, что использовать для этого - теоретически - можно любой компилятор, однако на практике может быть очень много проблем. Кроме заголовков API уровня ядра, которые есть в С DDK, еще ведь нужно линковать бинарник особого формата и т.п.

Касатель Оберонов мне видятся два относительно простых варианта:
1 - на каком-либо инструменте из этой серии (XDS Oberon?) генерировать объектные файлы некоторого универсального формата, понятного для Visual Studio, затем писать некоторую прослойку для драйвера на С & DDK, затем линковать это воедино.
2 - использовать некоторую реализацию Оберона, которая компилирует Оберон в код на С. Ну а затем уже собирать в Студии.

...ИМХО...

Автор:  Калям [ Воскресенье, 24 Сентябрь, 2006 21:22 ]
Заголовок сообщения: 

Благодарю за советы.
По поводу заголовочных файлов, поставляемых с DDK: переводить их вручную на Оберон, мягко говоря, занятие долговременное - нужно это дело автоматизировать. Существуют ли конвертеры исходных текстов с С на Оберон? Ведь пользовались же чем-то разработчики BlackBox!
Цитата:
1 - на каком-либо инструменте из этой серии (XDS Oberon?) генерировать объектные файлы некоторого универсального формата, понятного для Visual Studio, затем писать некоторую прослойку для драйвера на С & DDK, затем линковать это воедино.

Вариант с универсальными объектными файлами (наверняка имелся в виду OMF) заманчив, однако здесь есть одна прблема, с которой, в частности, сталкиваешься, когда то же самое пытаешься сделать в Делфи: компилятор добавляет туда информацию (о RTL), которую сборщик из DDK отвергает и отказывается работать дальше. А как обстоят дела с компилятором BlackBox? Он добавляет такую информацию всегда, или же, к примеру, только тогда, когда используются конструкции RECORD?
Цитата:
2 - использовать некоторую реализацию Оберона, которая компилирует Оберон в код на С. Ну а затем уже собирать в Студии.

Здесь, мне видится, может возникнуть та же проблема: а этот С-код будет содержать нестандартную, с точки зрения сборщика DDK, информацию? К тому же, раз в конечном итоге будет компилироваться С-исходник, то как же все те преимущества, из-за которых и использовался Оберон? Хотя, возможно, я просто неверно представляю процесс перевода на С...

Автор:  Илья Ермаков [ Воскресенье, 24 Сентябрь, 2006 21:36 ]
Заголовок сообщения: 

По поводу перевода заголовков на Оберон... Что-то должно быть, но у меня об этом информации нет.

По поводу компилятора ББ - его объектный формат точно не подойдет для DDK, он нестандартный. Именно поэтому я сразу упомянул про другие реализации Оберона.

По поводу трансляции на Си - преимущества Оберона проявятся в той самой надежности при написании кода, о которой Вы сами упомянули, как о важном факторе. Ведь транслятор не вносит опечатков и не может забыть вызвать dispose...

Автор:  Борис Рюмшин [ Воскресенье, 24 Сентябрь, 2006 22:24 ]
Заголовок сообщения: 

В системе XDS для конвертации заголовков есть утилита H2D.

Автор:  Калям [ Понедельник, 25 Сентябрь, 2006 09:16 ]
Заголовок сообщения: 

Борис Рюмшин писал(а):
В системе XDS для конвертации заголовков есть утилита H2D.

Ну что ж, попробуем...

Автор:  Trurl [ Понедельник, 25 Сентябрь, 2006 11:16 ]
Заголовок сообщения: 

Илья Ермаков писал(а):
еще ведь нужно линковать бинарник особого формата

Особый формат требуется для 9x, а для NT -обычный PE.

Автор:  Vlad [ Вторник, 26 Сентябрь, 2006 10:49 ]
Заголовок сообщения:  Re: Создание драйвера для Windows

Калям писал(а):
подходит ли BlackBox для написания драйвера :?:


Нет. Но если очень хочется, то поизвращаться можно. Наиболее реальным в этом случае мне кажется подход, который предложил Илья. Возможно тебе пригодится в этом случае вот этот линкер: ftp://ftp.styx.cabel.net/pub/UniLink (он понимает несколько форматов объектников и умеет их линковать вместе). Однако с чисто практической точки зрения смысла в том, чтобы писать драйвер на обероне еще меньше, чем на дельфях. Все "преимущества паскалевских языков" сойдут на нет при первой же попытке поковыряться руками в памяти.

Автор:  Илья Ермаков [ Вторник, 26 Сентябрь, 2006 20:50 ]
Заголовок сообщения: 

"Поковыряться руками в памяти" - тогда Модула-2 - и вперед :-) Старая, проверенная штука для системных задач. И еще один повод вспомнить об XDS, который ее поддерживает наравне с Обероном...

Автор:  Сергей Оборотов [ Пятница, 29 Сентябрь, 2006 07:26 ]
Заголовок сообщения:  Re: Создание драйвера для Windows

Vlad писал(а):
Калям писал(а):
подходит ли BlackBox для написания драйвера :?:

Однако с чисто практической точки зрения смысла в том, чтобы писать драйвер на обероне еще меньше, чем на дельфях. Все "преимущества паскалевских языков" сойдут на нет при первой же попытке поковыряться руками в памяти.
Для "паскалевских языков" существует пакеты для разработчика драйверов. Насколько я понимаю используются DLL в паре с неким системным драйвером. А что конкретно нужно?

Автор:  Калям [ Пятница, 29 Сентябрь, 2006 16:50 ]
Заголовок сообщения:  Re: Создание драйвера для Windows

GUEST писал(а):
Для "паскалевских языков" существует пакеты для разработчика драйверов.

:shock: Серьёзно? Если это так, то просто замечательно :!: А какие конкретно?
GUEST писал(а):
Насколько я понимаю используются DLL в паре с неким системным драйвером. А что конкретно нужно?

DLL пока не планируется, но если этого требуют пакеты, о которых сказано выше, то без проблем - DLL будет.
Сейчас нужно создать драйвер в виде SYS-файла, т. е. то, что делает линковщик из DDK.

Автор:  Сергей Оборотов [ Пятница, 29 Сентябрь, 2006 18:08 ]
Заголовок сообщения:  Re: Создание драйвера для Windows

Калям писал(а):
GUEST писал(а):
Для "паскалевских языков" существует пакеты для разработчика драйверов.

:shock: Серьёзно? Если это так, то просто замечательно :!: А какие конкретно?

http://www.jungo.com/windriver_usb_pci_driver_development_software.html

Автор:  Vlad [ Понедельник, 02 Октябрь, 2006 08:05 ]
Заголовок сообщения:  Re: Создание драйвера для Windows

GUEST писал(а):


Если я правильно понял, то речь там идет о "User-Mode Device Drivers".

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/