Page 2 of 5

Posted: Sat Jan 27, 2007 1:51 pm
by Serge
Похоже что VESA32 просто не существует.

Перевод из VBE3

"Начиная с VBE3 все функции VESA опционально доступны для 16-ти и 32-х битного защищённого режима через новую "Точку Входа Защищённого Режима". Эта точка входа может быть использована для прямого вызова функций VESA как 16-ти битного защищённого кода. Приложения или ОС не должны вызывать код БИОС непосредственно, но должны сперва сделать копию образа БИОС и вызывать функции в этом перемещённом блоке памяти.
Точка входа находится в особом "Информационном Блоке Защищённого Режима" который должен быть расположен в пределах первых 32-х килобайт образа БИОС. (Если информационный блок не найден то БИОС не поддерживает новый интерфейс)"

Дальше необходимо создать 7 16-ти битных селекторов и два 16-ти битных сегмента для данных и стека. Прежде чем передавать и принимать данные необходимо создать 16-ти битные сегменты для данных потому что 16-ти битный код БИОС не может работать с 32-х битными сегментами и указателями.
Ясно почему эти дополнительные "возможности" никто не использует.

Posted: Sat Jan 27, 2007 7:32 pm
by Ghost
Да, водимо я ошибался, таблици ACPI тоже в низу памяти, так что беру свои слова обратно.

Posted: Sat Jan 27, 2007 8:24 pm
by Wildwest
Я так понимаю, что процесс переделки может занять несколько недель и имеет смысл выпустить некий "последний совместимый с МЕОС" релиз, а затем начать работу над новым релизом 0.7, в котором будут эти изменения и возможно изменения в оконной системе от Майка.
ЗЫ: В принципе сегодняшняя Силлабле тоже несовместима с Atheos, от которой она произошла.

Posted: Sat Jan 27, 2007 8:34 pm
by Serge
Wildwest
Я хотел подождать до июля. За это время подготовить изменения и решить проблему с программами без исходников. Может сделать пробную версию на основе того дистриба что будет.

Posted: Sat Jan 27, 2007 8:50 pm
by Wildwest
>Я хотел подождать до июля
Я никого не тороплю, просто хочется иметь хоть какую-то определенность (план развития), а то у нас каждый месяц какие-то обсуждения и в итоге две трети идей остаются обсужденными, но не реализованными.

Posted: Mon Jan 29, 2007 8:29 am
by Mario79
Wildwest
итоге две трети идей остаются обсужденными, но не реализованными
Ничего не напоминает?

Posted: Mon Jan 29, 2007 3:39 pm
by Wildwest
>Ничего не напоминает?
Легендарный MeFS :)

Posted: Tue Jan 30, 2007 6:12 am
by Mike
и опять проголосовало полтора десятка человек...

Posted: Sat Mar 17, 2007 1:23 am
by Serge
Вот что получилось:

http://infinity-sound.narod.ru/flat.7z

0x00000000 -> 0x7FFFFFFF приложения 2Gb
0x80000000 -> 0xFDBFFFFF ядро и куча ядра
0xFDC00000 -> 0xFDFFFFFF таблицы страниц 4Mb
0xFE000000 -> 0xFFFFFFFF Видеопамять 32Mb

Ядро взлетело вверх так что перекомпилировать программы не надо.

Posted: Sun Mar 18, 2007 11:14 pm
by Nable
Я немного отстал от темы: что конкретно нужно изменять в своих программах, чтоб обеспечить работу в новой модели?
Почему не запустятся старые проги?

Posted: Mon Mar 19, 2007 12:02 am
by Serge
Nable

Программы менять не надо. Просто копируешь файлы в дистрибутив.

Posted: Mon Mar 19, 2007 12:10 am
by Pavia
Serge
Я вот чето не понял почему видео память фиксирована и имеет размер 32МБайта.
Тут вопрос есть ли сервис в колибри для того чтобы закрепить физическии аддреса за собой в своем(или ядра) виртуальном пространстве?

Posted: Mon Mar 19, 2007 1:11 am
by Serge
Pavia

Это должна быть общедоступная часть LFB. В Колибри программы могут писать в видеопамять напрямую через специальный селектор. Его можно вычислить по gdt но надёжнее получить через системный вызов. Когда появилась страничная память он стал не нужен но остался для совместимости. В принципе драйвер должен отображать на эти адреса столько памяти сколько надо для текущего видеорежима а остальные страницы оставлять неприсутствующими. Остальной локальной видеопамятью должен управлять драйвер. Размер взят с запасом на максимальное разрешение 3072*1536*32bpp. Реально сейчас отображается 8 Мб независимо от режима.

Сервисы есть. Две функции map_page и commit_pages (в memory.inc) Отображают страницы по любым адресам. Для приложений они недоступны. Если надо отобразить регистры устройств то можно зарезервировать диапазон адресов через alloc_kernel_space а потом отобразить на него нужные страницы.

Posted: Mon Mar 26, 2007 7:45 pm
by Heavyiron
Плоское ядро уже довольно стабильно, по крайней мере на моей системе. Уже можно имхо сливать его с trunk, чтобы упростить и ускорить разработку и избежать неразберихи с ядрами ;) Или есть еще какие принципиальные недоработки?

Posted: Mon Mar 26, 2007 8:18 pm
by Serge
Heavyiron

Принципиальных нет. Надо поправить отладчик.
И ещё проверить сетевой код.