Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Zahar Kiselev                        2:5030/382.1   20 Dec 2004  22:07:18
 To : Victor Wagner
 Subject : Re: драйвер
 -------------------------------------------------------------------------------- 
 
 
 Dec 20 19:02 04, Victor Wagner wrote to Zahar Kiselev:
 
  ZK>>входных каналов там может быть от задействовано от 1 до 32,
  ZK>>это можно выбирать и выбор я "повесил" на отдельный ioctl.
  VW> Hу и сделай 32 символьных устройства. С общим major и разными minor.
  VW> И на каждое из них выдавай данные только из одного канала. Все равно
  VW> больше восьми таких карт одновременно у тебя вряд ли будет.
 
 Технически не вижу проблемы. Однако как такое монстрообразие соотносится с
 идеологией и стилем? Представь сначала драйвер с 32 устройствами, а потом еще и 
 userlevel программу, которая открывает всю эту кучу устройств и их читает?
 Работать наверно будет, но что после этого про меня в этой эхе скажут? :-)
 
  VW> то ли вообще автоматически включать канал при
  VW> открытии соответствующего ему файла устройства.
 
 А вот эта идея мне понравилась в любом случае. Как-то я не подумал, что так
 можно сделать
 
  VW> Можно еще наряду с файлами в /dev завести вход в /proc и управлять
  VW> устройством посредством echo команда >/proc/моя-плата
 
 Учебный пример кода на этот случай я тоже написал, но решил что в моем случае
 это лишнее. Это если бы платой из скриптов на bash управлять - тогда да, а если 
 из программы - то ioctl на файл устройства проще.
  ZK>>работает, а как собрать это в единую конструкцию - я пока
  ZK>>не решил. Hе потому что не умею собрать, а потому что не
  ZK>>знаю как это наиболее правильно сделать. 
  VW> Архитектура - это вообще проблема. Это самое сложное, что бывает в
  VW> программировании.
 
 Вот тут-то я и сел в лужу - сказывается то, что программирование у нас в
 институте было не основным предметом, да и обучали нас максимум - алгоритмизации
 и кодировнию, а не архитектуре.
 Также у меня есть технический вопрос по написанию драйверов.
 В общем виде он звучит так "что я имею право делать из исполняемого в ядре кода,
 а что нет"? Более конкретно - могу ли я из кода драйвера открыть файл на диске и
 его прочитать(конфиг например)? Могу ли я запустить какую-нибудь программу на
 выполнение? Получить адрес точки входа любого системного вызова ядра, находясь в
 нем самом - не так уж и сложно, а вот можно ли его "дергать"?
 И когда можно, а когда нельзя?
 Если помнишь дос и его резидентные программы - то например чтение файла было
 вполне возможно - при условии соблюдения определенных соглашений о том, когда
 это можно делать. И писать в файл на диск тоже получалось.
 И на эту тему была довольно толковая документация.
 А вот в имеющейся у меня линуксовой документации я не нашел освещения вопросов 
 "повторной входимости" кода ядра. Вообще если посмотреть в System.map - то там
 довольно много "интересных" для драйверописателя имен функций - вот только нигде
 не сказано чем из этого можно пользоваться и как. Hу кроме очевидностей
 типа pintk() и тех функций, которые предназначены для регистрации драйвера в
 системе. А так - там и sys_execve например есть, и sys_write и много чего
 другого.
 
 P.S. Можно послать в RTFM, только с точным указанием куда именно:)
 А то в книжке про написание драйверов просто сказано "эти функции доступны", без
 указания "правил пользования". Ту фразу можно понять и просто как указание на
 доступность адресов этих функций в коде ядра - что и так очевидно, потому что из
 кода драйвера куда угодно залезть можно.
 Zahar(@spbdept.rbc.ru) Остров Большой Березовый: http://birch-island.spb.ru
 
 --- Msged/LNX 6.1.1
  * Origin: N:60.17'54" E:28.39'40" (2:5030/382.1)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: CorelDraw   Alex Korchmar   20 Dec 2004 16:17:59 
 Re: CorelDraw   Ilya Anfimov   20 Dec 2004 17:19:29 
 драйвер   Zahar Kiselev   20 Dec 2004 17:44:22 
 Re: драйвер   Victor Wagner   20 Dec 2004 20:02:22 
 Re: драйвер   Ilya Anfimov   20 Dec 2004 21:58:28 
 Re: драйвер   Alex Korchmar   21 Dec 2004 01:09:37 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 00:56:30 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 03:16:00 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 05:25:22 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:32:21 
 Re: драйвер   Zahar Kiselev   22 Dec 2004 00:04:04 
 Re: драйвер   Zahar Kiselev   20 Dec 2004 22:07:18 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 00:53:17 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 02:49:02 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:09:04 
 Re: драйвер   Victor Wagner   21 Dec 2004 01:13:55 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 03:02:16 
 Re: драйвер   Victor Wagner   21 Dec 2004 10:01:58 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:17:59 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 22:31:06 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:15:53 
 Re: драйвер (Offtopic)   Serg Oskin   20 Dec 2004 20:49:09 
 Re:   Zahar Kiselev   20 Dec 2004 22:41:18 
 Re:   Serg Oskin   21 Dec 2004 13:04:20 
 Re:   Zahar Kiselev   22 Dec 2004 00:09:16 
 Re:   Serg Oskin   22 Dec 2004 16:02:11 
 Re: драйвер   Ilya Anfimov   20 Dec 2004 21:20:14 
 Re: драйвер   Zahar Kiselev   20 Dec 2004 22:47:52 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 01:29:02 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 03:34:48 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 12:26:06 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 23:53:24 
 Re: драйвер   Igor Tihonov   20 Dec 2004 22:42:44 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 00:57:51 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 01:11:16 
 Re: драйвер   Igor Tihonov   21 Dec 2004 19:58:59 
 Re: драйвер   Igor Tihonov   21 Dec 2004 20:05:35 
 Re: драйвер   Ilya Anfimov   21 Dec 2004 22:06:43 
 Re: драйвер   Zahar Kiselev   22 Dec 2004 03:46:22 
 Re: драйвер   slava kozyrev   21 Dec 2004 11:34:50 
 Re: драйвер   Zahar Kiselev   21 Dec 2004 22:19:36 
 Re: CorelDraw   Nick Gazaloff   21 Dec 2004 03:00:14 
 Re: CorelDraw   Peter V. Chernikoff   31 Dec 2004 23:29:54 
Архивное /ru.linux/328841c73624.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional