Page 38 of 66

Re: sound, SB, AC97 и другое

Posted: Mon Apr 27, 2009 12:32 pm
by Serge
irq 3 и 4 закреплены за портами COM. Если портов нет или они отключены биос может назначить линии другим устройствам. Колибри не умеет определять наличие COM и считает что они есть всегда, поэтому ставит на irq 3 и 4 свои обработчики.

Дравер ac97 может поставить обработчик на irq 5,7,9,10 или 11. Остальные линии обычно заняты другими устройствами. Если биос назначает линию не из этого списка можно резервировать прерывания в настройках биос пока оно не выделит нужную линию.

Re: sound, SB, AC97 и другое

Posted: Mon Apr 27, 2009 1:05 pm
by elsif
Понятно, спасибо.

Re: sound, SB, AC97 и другое

Posted: Fri May 01, 2009 2:03 pm
by schooler
Serge wrote:Колибри не умеет определять наличие COM и считает что они есть всегда, поэтому ставит на irq 3 и 4 свои обработчики.
А это не есть хорошо. То есть можно сказать, что ядро статично? И вообще кто работает с устройствами? Ядро аппаратно зависимо?

Re: sound, SB, AC97 и другое

Posted: Fri May 01, 2009 2:16 pm
by Serge
schooler

Зависимо не то слово. Драйверы для многих устройств намертво зашиты в ядро.

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 3:01 am
by schooler
Serge
Теперь спрашиваю как у "Kernel Developer" - можно ли избавиться от устройств в ядре? Т.е. сделать его аппаратно независимым, ведь это сильно мешает разработке (человек может просто написать драйвер, зная как это делать, чем лезть в ядро и что-то менять) или для этого легче переписать ядро?
Мой вопрос может показаться неправельным, я еще плохо ознакомился с подробностями построения ядра Kolibri

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 1:25 pm
by Serge
schooler

Можно. В ядре остаются драйверы клавиатуры, fdd, hdd и сетевых устройств. Работа по перемещению последних во внешние модули уже ведётся.

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 1:50 pm
by Galkov
Serge wrote:Работа по перемещению последних во внешние модули уже ведётся
Следовательно, должна быть некая драйверная модель.
Познакомиться бы.
Не ну понятно, что если "он" есть, то при запуске его подключат.
Но это же далеко не все вопросы...
А если их есть несколько? Можно ли динамически подключить? А отключить и подключить другой? А выстраиваются ли они в некую иерархию? А насколько это "безопасно"?
И т.д., и т.п..

Возможно, что ответов на все вопросы еще и нет физически, но мысли-то какие-то есть ведь.

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 2:07 pm
by schooler
Serge wrote:schooler

Можно. В ядре остаются драйверы клавиатуры, fdd, hdd и сетевых устройств. Работа по перемещению последних во внешние модули уже ведётся.
ИМХО нужно сделать ядро полностью аппаратно независимым, убрать вообще из него работу с устройствами, только с помощью функций драйверов, абстрагировать от аппаратной архитектуры

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 3:12 pm
by Ghost
schooler тебе стоит вмотреть в сторону микроядер. А как ты например представляешь себе вынесение драйвера таймера? или смысл в вытаскивании драйвера клавиатуры? Да и самому не смешно, ассемблер и "полностью аппаратно независимое ядро"?

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 4:21 pm
by schooler
>или смысл в вытаскивании драйвера клавиатуры?
Например, будет у нас usb-клавиатура без Legacy-Mode
>Да и самому не смешно, ассемблер и "полностью аппаратно независимое ядро"?
Нет, совсем не смешно.
>А как ты например представляешь себе вынесение драйвера таймера?
А почему бы и нет? Ядро вызовет функцию инициализации драйвером таймера, в случае прерывания драйвер вызовет некоторую функцию ядра. Своего рода объектно-ориентированный подход. Конечно, это даст проблемы с производительностью из-за постоянных переключений контекста, однако ядро в текущем состоянии приходится переписывать при сколь-нибудь значительном изменении в устройстве компьютера.
Чтобы реализовать работу с новым устройством фактически нужно переписывать ядро, что отпугивает многих разработчиков драйверов.

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 4:34 pm
by diamond
Чтобы реализовать работу с новым устройством, вовсе не нужно переписывать ядро, потому что загружаемые драйверы существуют и работают.

Re: sound, SB, AC97 и другое

Posted: Sat May 02, 2009 5:36 pm
by Ghost
schooler а когда загружать его? он например нужен драйверу IDE, а дравер тянеш с винта, без драйвера IDE...

Re: sound, SB, AC97 и другое

Posted: Sun May 03, 2009 7:54 am
by schooler
>schooler а когда загружать его? он например нужен драйверу IDE, а дравер тянеш с винта, без драйвера IDE...
Загрузчик может, используя средства BIOS, загрузить все необходимое (в том числе и само ядро) в ram-диск и передать ядру информацию. Если я правильно понимаю, сейчас как раз загрузчик и загружает содержимое дискеты в память и передает ядру управление.
В любом случае использование драйвера IDE некорректно до загрузки всей системы, поэтому нужно использовать функции BIOS
Тогда ядро будет полностью аппаратно независимо и сможет работать везде, соответственно определяется четкое разделение между различными компонентами системы. Система Kolibri имеет малую приспосабливаемость к внешним изменениям

Re: sound, SB, AC97 и другое

Posted: Sun May 03, 2009 11:03 am
by Ghost
Так это тоже по суте статическое подключение до загрузки... А на ходу как? Да и не все можно до заргузки подключить, например устройства usb или на шине smbus которая на агп видеокарте...

Re: sound, SB, AC97 и другое

Posted: Sun May 03, 2009 11:37 am
by schooler
>А на ходу как?
А можно винт на ходу менять? ;)
Если система загрузилась - все необходимое уже лежит в памяти, а если новое устройство - можно прочитать с винта.

>Да и не все можно до заргузки подключить, например устройства usb или на шине smbus которая на агп видеокарте...
Почему нельзя? Загрузить в память можно все, что угодно. Потом можно дать ядру команду на включение этого.
Установка (загрузка) системы как раз и заключается в определении установщиком (загрузчиком) начальной конфигурации компьютера и сохранение всего этого на винт (рамдиск).

Хотя это уже не про Kolibri, действительно нужно смотреть в сторону микроядер.