OSDev
http://osdev.su/

Пакеты
http://osdev.su/viewtopic.php?f=5&t=548
Страница 1 из 1

Автор:  Станислав [ 18 май 2012, 05:37 ]
Заголовок сообщения:  Пакеты

Программируя драйверы я заметил, что все устройства используют пакеты для работы с данными, работают с данными в оперативной памяти не используя процессор. Процессор оформляет пакеты устройствам где указывает в основном размер данных и их адрес, также само устройство. У устройств пакеты по разному оформляются.
Такая система очень ускоряет работу ПК, отсюда и идея создать систему работы с пакетами максимально освобождающую процессор, т.е. данные направлять от устройства к устройству или сразу к конечному потребителю. Все устройства сообщают о готовности пакета прерыванием.
Сами устройства это Флешки, Диски, Сеть, Звук, Видео. Для флешек, дисков и звука драйвер один, а для сети и видео разные.
Для того, чтобы создать систему нужно написать драйвера для этих устройств и организовать работу по направлении данных из пакетов.
Впринципи получится целая система работающая с устройствами на которой и плееры и файловые операции и сетевой обмен, ..., а это как мне кажется 80% функционала ОС, тема очень большая и интересная.
Как вам кажется такое может быть.


Кстати почему у Винды для звука разные драйвера, хотя контроллер для них один, это как писать разные драйвера для флешек с разным производителем(видимо наследственность или хотят запутать, кстати для видео пакеты не доступны из за програмной прослойки DirectХ которая раньше была реализацией 3д функций пока не перешли полностью на 3д ускорители, но система осталась, хотя былобы удачнее пользоваться функциями от драйвер видео карт без DirectХ).

Автор:  grindars [ 18 май 2012, 12:07 ]
Заголовок сообщения:  Re: Пакеты

Станислав писал(а):
Кстати почему у Винды для звука разные драйвера, хотя контроллер для них один


Контроллер интерфейса HDA - один, а кодеки (микросхемы, конвертирующие цифру в аналог и наоборот) - разные и несовместимые.

Автор:  Станислав [ 18 май 2012, 14:44 ]
Заголовок сообщения:  Re: Пакеты

grindars писал(а):
Контроллер интерфейса HDA - один, а кодеки (микросхемы, конвертирующие цифру в аналог и наоборот) - разные и несовместимые.

В спецификациях было сказано о том, что в пространстве PCI производитель делает что хочет, а про кодеки там четкий алгоритм работы для всех моделей, хотя могу ошибаться.
Но в PCI я посмотрел какие BARы забиты, оказался первый и для ATI и для VIA.
Стандартный драйвер в виндовсе нормально со всеми звукавухами работает(я ни когда родной не ставлю) и даже в минуэтеОС один драйвер для HDA работает со всеми звукавухами на этом контроллере.

Придумал несколько применений такой системы, например из сети приходят пакеты со звуком, в первом находится размер звукового файла, и создаётся пространство под файл и он заполняется сетевухой. потом его разбиваем на пакеты для записи на диск и проигрываем плеером, указывая плееру файл в оперативке.
Или также принимаем файл в оперативку с изображением и выводим на экран.
Если это файл размера большого, то он записывается частями на диск, весь он неможет поместиться в оперативку.

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