irq 3 и 4 закреплены за портами COM. Если портов нет или они отключены биос может назначить линии другим устройствам. Колибри не умеет определять наличие COM и считает что они есть всегда, поэтому ставит на irq 3 и 4 свои обработчики.
Дравер ac97 может поставить обработчик на irq 5,7,9,10 или 11. Остальные линии обычно заняты другими устройствами. Если биос назначает линию не из этого списка можно резервировать прерывания в настройках биос пока оно не выделит нужную линию.
sound, SB, AC97 и другое
Понятно, спасибо.
А это не есть хорошо. То есть можно сказать, что ядро статично? И вообще кто работает с устройствами? Ядро аппаратно зависимо?Serge wrote:Колибри не умеет определять наличие COM и считает что они есть всегда, поэтому ставит на irq 3 и 4 свои обработчики.
schooler
Зависимо не то слово. Драйверы для многих устройств намертво зашиты в ядро.
Зависимо не то слово. Драйверы для многих устройств намертво зашиты в ядро.
Serge
Теперь спрашиваю как у "Kernel Developer" - можно ли избавиться от устройств в ядре? Т.е. сделать его аппаратно независимым, ведь это сильно мешает разработке (человек может просто написать драйвер, зная как это делать, чем лезть в ядро и что-то менять) или для этого легче переписать ядро?
Мой вопрос может показаться неправельным, я еще плохо ознакомился с подробностями построения ядра Kolibri
Теперь спрашиваю как у "Kernel Developer" - можно ли избавиться от устройств в ядре? Т.е. сделать его аппаратно независимым, ведь это сильно мешает разработке (человек может просто написать драйвер, зная как это делать, чем лезть в ядро и что-то менять) или для этого легче переписать ядро?
Мой вопрос может показаться неправельным, я еще плохо ознакомился с подробностями построения ядра Kolibri
schooler
Можно. В ядре остаются драйверы клавиатуры, fdd, hdd и сетевых устройств. Работа по перемещению последних во внешние модули уже ведётся.
Можно. В ядре остаются драйверы клавиатуры, fdd, hdd и сетевых устройств. Работа по перемещению последних во внешние модули уже ведётся.
Следовательно, должна быть некая драйверная модель.Serge wrote:Работа по перемещению последних во внешние модули уже ведётся
Познакомиться бы.
Не ну понятно, что если "он" есть, то при запуске его подключат.
Но это же далеко не все вопросы...
А если их есть несколько? Можно ли динамически подключить? А отключить и подключить другой? А выстраиваются ли они в некую иерархию? А насколько это "безопасно"?
И т.д., и т.п..
Возможно, что ответов на все вопросы еще и нет физически, но мысли-то какие-то есть ведь.
Last edited by Galkov on Sat May 02, 2009 2:21 pm, edited 1 time in total.
ИМХО нужно сделать ядро полностью аппаратно независимым, убрать вообще из него работу с устройствами, только с помощью функций драйверов, абстрагировать от аппаратной архитектурыSerge wrote:schooler
Можно. В ядре остаются драйверы клавиатуры, fdd, hdd и сетевых устройств. Работа по перемещению последних во внешние модули уже ведётся.
schooler тебе стоит вмотреть в сторону микроядер. А как ты например представляешь себе вынесение драйвера таймера? или смысл в вытаскивании драйвера клавиатуры? Да и самому не смешно, ассемблер и "полностью аппаратно независимое ядро"?
>или смысл в вытаскивании драйвера клавиатуры?
Например, будет у нас usb-клавиатура без Legacy-Mode
>Да и самому не смешно, ассемблер и "полностью аппаратно независимое ядро"?
Нет, совсем не смешно.
>А как ты например представляешь себе вынесение драйвера таймера?
А почему бы и нет? Ядро вызовет функцию инициализации драйвером таймера, в случае прерывания драйвер вызовет некоторую функцию ядра. Своего рода объектно-ориентированный подход. Конечно, это даст проблемы с производительностью из-за постоянных переключений контекста, однако ядро в текущем состоянии приходится переписывать при сколь-нибудь значительном изменении в устройстве компьютера.
Чтобы реализовать работу с новым устройством фактически нужно переписывать ядро, что отпугивает многих разработчиков драйверов.
Например, будет у нас usb-клавиатура без Legacy-Mode
>Да и самому не смешно, ассемблер и "полностью аппаратно независимое ядро"?
Нет, совсем не смешно.
>А как ты например представляешь себе вынесение драйвера таймера?
А почему бы и нет? Ядро вызовет функцию инициализации драйвером таймера, в случае прерывания драйвер вызовет некоторую функцию ядра. Своего рода объектно-ориентированный подход. Конечно, это даст проблемы с производительностью из-за постоянных переключений контекста, однако ядро в текущем состоянии приходится переписывать при сколь-нибудь значительном изменении в устройстве компьютера.
Чтобы реализовать работу с новым устройством фактически нужно переписывать ядро, что отпугивает многих разработчиков драйверов.
Чтобы реализовать работу с новым устройством, вовсе не нужно переписывать ядро, потому что загружаемые драйверы существуют и работают.
Ушёл к умным, знающим и культурным людям.
schooler а когда загружать его? он например нужен драйверу IDE, а дравер тянеш с винта, без драйвера IDE...
>schooler а когда загружать его? он например нужен драйверу IDE, а дравер тянеш с винта, без драйвера IDE...
Загрузчик может, используя средства BIOS, загрузить все необходимое (в том числе и само ядро) в ram-диск и передать ядру информацию. Если я правильно понимаю, сейчас как раз загрузчик и загружает содержимое дискеты в память и передает ядру управление.
В любом случае использование драйвера IDE некорректно до загрузки всей системы, поэтому нужно использовать функции BIOS
Тогда ядро будет полностью аппаратно независимо и сможет работать везде, соответственно определяется четкое разделение между различными компонентами системы. Система Kolibri имеет малую приспосабливаемость к внешним изменениям
Загрузчик может, используя средства BIOS, загрузить все необходимое (в том числе и само ядро) в ram-диск и передать ядру информацию. Если я правильно понимаю, сейчас как раз загрузчик и загружает содержимое дискеты в память и передает ядру управление.
В любом случае использование драйвера IDE некорректно до загрузки всей системы, поэтому нужно использовать функции BIOS
Тогда ядро будет полностью аппаратно независимо и сможет работать везде, соответственно определяется четкое разделение между различными компонентами системы. Система Kolibri имеет малую приспосабливаемость к внешним изменениям
Так это тоже по суте статическое подключение до загрузки... А на ходу как? Да и не все можно до заргузки подключить, например устройства usb или на шине smbus которая на агп видеокарте...
>А на ходу как?
А можно винт на ходу менять?
Если система загрузилась - все необходимое уже лежит в памяти, а если новое устройство - можно прочитать с винта.
>Да и не все можно до заргузки подключить, например устройства usb или на шине smbus которая на агп видеокарте...
Почему нельзя? Загрузить в память можно все, что угодно. Потом можно дать ядру команду на включение этого.
Установка (загрузка) системы как раз и заключается в определении установщиком (загрузчиком) начальной конфигурации компьютера и сохранение всего этого на винт (рамдиск).
Хотя это уже не про Kolibri, действительно нужно смотреть в сторону микроядер.
А можно винт на ходу менять?
Если система загрузилась - все необходимое уже лежит в памяти, а если новое устройство - можно прочитать с винта.
>Да и не все можно до заргузки подключить, например устройства usb или на шине smbus которая на агп видеокарте...
Почему нельзя? Загрузить в память можно все, что угодно. Потом можно дать ядру команду на включение этого.
Установка (загрузка) системы как раз и заключается в определении установщиком (загрузчиком) начальной конфигурации компьютера и сохранение всего этого на винт (рамдиск).
Хотя это уже не про Kolibri, действительно нужно смотреть в сторону микроядер.
Who is online
Users browsing this forum: No registered users and 1 guest