OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 27 Апрель, 2024 22:20

Часовой пояс: UTC + 3 часа




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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 23 Сентябрь, 2006 21:41 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Я не специалист в области драйверов, хотя в целом знаком с принципами создания драйверов NT. Мне кажется, что использовать для этого - теоретически - можно любой компилятор, однако на практике может быть очень много проблем. Кроме заголовков API уровня ядра, которые есть в С DDK, еще ведь нужно линковать бинарник особого формата и т.п.

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

...ИМХО...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 24 Сентябрь, 2006 21:22 

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 24 Сентябрь, 2006 21:36 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
По поводу перевода заголовков на Оберон... Что-то должно быть, но у меня об этом информации нет.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Воскресенье, 24 Сентябрь, 2006 22:24 
Администратор

Зарегистрирован: Вторник, 15 Ноябрь, 2005 01:14
Сообщения: 4695
Откуда: Россия, Орёл
В системе XDS для конвертации заголовков есть утилита H2D.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 25 Сентябрь, 2006 09:16 

Зарегистрирован: Среда, 30 Август, 2006 23:03
Сообщения: 62
Откуда: Пермь
Борис Рюмшин писал(а):
В системе XDS для конвертации заголовков есть утилита H2D.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 25 Сентябрь, 2006 11:16 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
Илья Ермаков писал(а):
еще ведь нужно линковать бинарник особого формата

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание драйвера для Windows
СообщениеДобавлено: Вторник, 26 Сентябрь, 2006 10:49 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
Калям писал(а):
подходит ли BlackBox для написания драйвера :?:


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вторник, 26 Сентябрь, 2006 20:50 
Модератор
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание драйвера для Windows
СообщениеДобавлено: Пятница, 29 Сентябрь, 2006 07:26 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Vlad писал(а):
Калям писал(а):
подходит ли BlackBox для написания драйвера :?:

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание драйвера для Windows
СообщениеДобавлено: Пятница, 29 Сентябрь, 2006 16:50 

Зарегистрирован: Среда, 30 Август, 2006 23:03
Сообщения: 62
Откуда: Пермь
GUEST писал(а):
Для "паскалевских языков" существует пакеты для разработчика драйверов.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание драйвера для Windows
СообщениеДобавлено: Пятница, 29 Сентябрь, 2006 18:08 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
Калям писал(а):
GUEST писал(а):
Для "паскалевских языков" существует пакеты для разработчика драйверов.

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание драйвера для Windows
СообщениеДобавлено: Понедельник, 02 Октябрь, 2006 08:05 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 18:38
Сообщения: 1857
GUEST писал(а):


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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB