Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб ноя 18, 2017 7:34 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 6 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Драйверы устройств
СообщениеДобавлено: Пн янв 09, 2006 7:53 pm 
Я тут задумался, каким драйверы устройств должны "общаться" с системой. И вот, что я придумал:
Драйверы работают к кольце 0
1.Ядро загружает файл драйвера и запускает процедуру инициализации
(entry-point)
2. Драйвер перехватывае прерывания от той аппаратуры, которую обслуживает и возможно некоторые программные прерывания.
Таким образом драйвер становится частью системы.
Возможно, я не понятно написал, так что спрашивайте, поясню.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 10, 2006 10:54 am 
Это все не ново. Проблема с "некоторыми программными прерываниями". Нафиг нужен драйвер, который работает с аппаратурой, если ядро представления не имеет как работать (и зачем вообще нужен) этот драйвер? Основная проблема на данный момент - спроектировать интерфейсы взаимодействия с драйверами для всех типов устройств. Следует так же заметить, что нестандартным устройствам (видеокамеры, фотоаппараты, usb-вентиляторы, ...) требуется не только драйвер, но и user-mode программы для взаимодействия с ними.

На данный момент я проектирую интерфейс взаимодействия драйверов файловых систем и дисковых устройств.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт янв 10, 2006 1:00 pm 
Если интересно - посмотри на рабочую версию моего предложения по внедрению драйверов дисковых систем: http://shade.msu.ru/~msu-se/driversystem.html
Предложения/вопросы приветствуются. Если их много - можешь связаться со мной по icq (если, конечно, у тебя инет не повременный).


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 12:22 am 
halyavin
Андрей ты хотел конструктивных предложений? Ну, я попытаюсь не критиковать :-)
1) Я не совсем согласен с концепцией - один драйвер файловой системы на каждый существующий раздел. Представь, насколько раздуется код? Пусть даже и подгружаемые драйвера.
Ты плохо представил ситуацию, на самом деле на каждый накопитель (на каждое IDE устройство) достаточно всего 1 копии драйвера определенной файловой системы, если она присутствует в структуре данных физического устройства. Ведь все равно на одном устройстве мы не можем параллельно обрабатывать 2 запроса, приходится разделять их по времени, причем перемещение головки займет больше времени, чем изменение стека дополнительных 100-1000 байт в которых, будут содержаться данные выбранного раздела.
Другой вопрос если обращение производиться к другому физическому устройству. Вот тут уж действительно нужен отдельный драйвер присутствующих файловых систем. Опять же по 1 копии на одно физическое устройство.
2) В твоей концепции есть один неучтенный момент - параллельная работа 2-х приложений возможна лишь при обращении к двум разным физическим устройствам (я уже не беру в расчет 3 и более приложений ломящихся на одно физическое устройство). Нету разделения по времени доступа. Конечно, ее нету и в существующей системе, поскольку изначально все разрабатывалось с учетом монопольной работы одного приложения. Остальные приложения вынуждены были ждать. Но это очень даже плохо, так как мы видим печальные последствия, например если запустить АС97 плеер и запустить Doom, то в результате либо не загрузиться игра, либо плеер станет нервно заикаться, а потом вообще отключиться.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Чт янв 12, 2006 1:08 pm 
Mario79 писал(а):
...один драйвер файловой системы на каждый существующий раздел.

Один экземпляр драйвера файловой системы - то есть одна структура данных, описывающая раздел и информация об фс на нем. Код драйвера файловой системы будет один, даже если есть 100 разделов на 10 устройствах.

На счет 2 пункта - параллельная работа с винтом является проблемой драйверов, а не концепции. Никто не мешает драйверу устройства или файловой системы позволять обрабатывать несколько запросов параллельно. Изначально все будет работать в последовательном режиме, как сейчас. Потом, возможно, я улучшу драйвера, позволив более параллельно исполнять запросы.


Вернуться к началу
   
 Заголовок сообщения: Re: Драйверы устройств
СообщениеДобавлено: Пт фев 24, 2006 6:32 pm 
Не в сети
Just Flooding
Аватара пользователя

Зарегистрирован: Ср май 18, 2005 10:27 am
Сообщения: 430
Violinier писал(а):
Я тут задумался, каким драйверы устройств должны "общаться" с системой. И вот, что я придумал:
Драйверы работают к кольце 0
1.Ядро загружает файл драйвера и запускает процедуру инициализации
(entry-point).

А можно услышать аргументы в пользу такого выбора?
Кроме того что это проще реализовать плюсы какие?
А вот на счет глюков и убиения ядра так оно прямо таки рядом, т.к. "...запускает процедуру инициализации" и она при критических ошибках делает систему, скажем "конвульсивной". Тогда что? Плюсов маловато будет, пожалуй при таком раскладе.


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

Часовой пояс: UTC+03:00


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

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


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB