Новая модель ядра

Kernel architecture questions
  • Только вот в KFAR-е нет возможности выбирать какой программой будет открываться файл
    А в sysxtree есть эта возможность?
  • Heavyiron, ты непонял идеи моего сообщения.

    Марат,предлагал syxtree альтернативу - KFAR.А я сказал почему он не может быть альтернативой.Но также он упомянул,что скоро появиться новая альтернатива syxtree и KFAR-у.

    >А в sysxtree есть эта возможность?

    Всем кто разбирается в Колибри известно,что возможности выбора запускаемой программы в syxtree нет.
    Но зато syxtree умеет работать в режимах svae_dialog и open_dialog - как диалоговое окно для открытия файлов.

    В общем повнимательнее читайте мои сообщения.
  • Кто-нибудь испытывал функции 68.12 и 68.13?
    Если да, обьясните в чем косяк кода:

    Test.asm

    include 'macros.inc'

    meos_app_start

    code

    mcall 68, 11
    cmp eax, 0
    je exit
    mcall 68, 12, 0x1000
    mov [pBlock], eax
    mcall 68, 13, [pBlock]
    exit:
    mcall -1

    data
    pBlock dd 0

    udata

    meos_app_end

    Функция 68.13 возвращает 0 (неуспех) и в VMware и в реальной системе.
  • Была ошибка в ядре. Один раз её вроде исправляли но видимо ей удалось "выжить". Освобождать память перед выходом необязательно, это сделает ядро. Обнулять выделенную память тоже не надо. Исправленное ядро #266
  • Serge
    Ок, протестирую.
  • Serge
    Теперь все работает.
  • В ревизии 213 она была исправлена, но при следующем же обновлении, очевидно, по ошибке была восстановлена старая версия heap.inc (в которую были внесены исправления в связи с изменением размера элементов массива srv_tab). Кстати, ревизия 213 ещё исправляла повисание на коде типа

    Code: Select all

    a = malloc(0x1000);
    b = malloc(0x1000);
    free(a);
    malloc(0x1000);
    
    Ревизия 270 заново исправляет этот глюк.
  • Сегодня обнаружил один глюк. Есл поизменять несколько раз разрешение экрана при помощи vrr, о получается ерунда:
    http://heavyiron.kolibrios.org/vrr.jpg (80кб). Снимок сделан камерой, т.к. screensoot отказался в таком режиме фотографировать. Нечто подобное было около года назад, но потом баг был исправлен в ревизии112, кажется.
  • Heavyiron
    Попробуй включить и выключить звук на панели. Я когда панель дорабатывал, специально встроил обновление фона. Если ничего не измениться, значит баг более хитрый.
  • PS: забыл сказать, что VRR при этом зависает.
  • ЭТО ВАЖНО!
    Хотелось бы побольше узнавать о последних изменениях в ядре. Мне, например, очень интересно, что означают комментарии к ревизиям наподобие "small heap and malloc/free" или "imports header / kernel objects / segmented sound buffers", насколько они влияют на функционирование программ и ядра, да и вообще зачем это нужно и в какую сторону эти изменения двигают ядро. Нельзя ли где-нибудь выкладывать более-менее подробные описания? Если негде, я могу выделить достаточно места на kolibrios.org для блога или чего-либо подобного.
  • появилась проблема с последними изменениями в ядре в режиме 1280х1024 с отключеным vvr выдает "черный экран смерти" и все больше ничего не реагирует! Удалось загрузиться в режиме 640х480 (проверить нестандартный режим работы). Причем отсутсвовало отображение шрифтов.
  • Не знаю куда движется ядро, я последние дни бегал по кругу:)
    И вот что из этого вышло

    small kernel heap как и написано, маленькая (128 Кб) куча для ядра. В основе упрощённая версия malloc/free от Дага Ли. Из кучи можно выделять блоки памяти размером от 8 байт. Все выделенные блоки выравнены на 8 байт. Объекты ядра пока только курсоры и дескрипторы загруженных драйверов. Возможно к ним добавятся звуковые буферы. Если кто-то сделает дескрипторы файлов будет просто замечательно. Объекты принадлежащие приложению, например курсоры, объединяются в двусвязные списки. Указатели списка хранятся в структуре APPDATA. Если приложение не уничтожит созданныей объект то это должна сделать terminate, вызвав деструктор объекта (пока она этого не делает).
    create_kernel_object создаёт объект указанного размера и помещает его в список текущего приложения.
    destroy_kernel_object удаляет объект из списка и освобождает занимаемую им память.

    imports.inc заголовочный файл для драйверов со всеми импортируемыми функциями. Кто-то давно просил его сделать.

    Плюс оптимизированные ресемплеры и исправленные ошибки в плеере.
    http://infinity-sound.narod.ru/kernel285.7z

    P.S. Если не в курсе. Ядро может загружать программы упакованные kpackом. Это экономит примерно один сектор на каждую сжатую программу.

    Lrz
    Какая именно версия глючит? Я проверял на 1280 всё работало нармально, правда на x1600 сам vrr не работает.
  • Lrz
    Похоже что меня проглючило и я сделал ошибку в загрузчике программ. Исправленная версия #287. Архив по ссылке выше можно качать, там новое ядро.
  • Who is online

    Users browsing this forum: No registered users and 6 guests